【问题标题】:Unable to configure the PATH environment variable in Kudu shell via XDT无法通过 XDT 在 Kudu shell 中配置 PATH 环境变量
【发布时间】:2021-09-29 14:13:46
【问题描述】:

我正在尝试为我在 Azure 中使用 python 构建的 Web 应用程序设置 PATH 环境变量。我尝试在本地使用os.environ.setdefault('PATH', 'pandoc-2.14.1-1-amd64.deb') 之类的东西,但是一旦上传,这似乎不起作用。我也尝试在天蓝色门户的配置部分设置路径,但出现以下错误:

我看过类似的帖子 setting the webapp %PATH% environment variable in azure。 该帖子建议将名为 applicationHost.xdt 的文件添加到主/站点目录,该文件应自动设置 PATH 变量。但是,我无法将 applicationHost.xdt 上传到目录中的文件。这要么是因为文件 UI 界面不再存在,要么是我无法访问它。通过 UI 上传的功能是否已停用?

我能想到的唯一其他解决方法是在 Kudu bash shell 中使用 echo/cat 手动创建 applicationHost.xdt。这是非常棘手的。是否有任何在线工具可以在输入文件内容的情况下创建 bash 脚本以从头开始生成该文件?

【问题讨论】:

  • 另一种简单且最佳的方法是通过更改 .bashrc 或 .profile 文件来设置环境变量。添加到 .bashrc 或 .profile 文件的变量对所有进程都是可见的。如果您的环境变量正在多个应用程序中使用,那么您可以使用这种方法。

标签: bash azure azure-web-app-service kudu xdt


【解决方案1】:

您可以为您的网络应用添加应用设置,如下所示:

然后,重启你的 web 应用,在 Kudu 控制台中,你可以检查它。

注意:应用设置名称必须是唯一的,因此当您使用 PATH 作为密钥时,它已在部署时配置,因此在从门户网站的应用设置中使用时使用不同的密钥名称。

作为一种解决方法,您可以通过 XDT 转换(XML 文档转换)来实现。

是的,您可以使用echo 创建相同的。简单复制粘贴文件内容到单引号 ' 内,并将其流式传输到已使用 echo 命令创建的文件中。

/home>echo '<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
  <system.webServer> 
    <runtime xdt:Transform="InsertIfMissing">
      <environmentVariables xdt:Transform="InsertIfMissing">
        <add name="FOO" value="BAR" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />    
        <add name="PATH" value="%PATH%;%HOME%\BAR" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />    
      </environmentVariables>
    </runtime> 
  </system.webServer> 
</configuration>' > applicationHost.xdt

使用cat命令验证内容

【讨论】:

    猜你喜欢
    • 2012-10-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 2021-09-02
    • 2017-08-16
    • 2016-11-29
    相关资源
    最近更新 更多