【问题标题】:How do i use azure app service env variables inside my application?如何在我的应用程序中使用 azure app service env 变量?
【发布时间】:2019-07-09 09:17:06
【问题描述】:

我正在尝试在 azure 中设置我的项目。为此,我创建了一个应用程序服务,并在设置/配置下添加了一些“应用程序设置”,在我的理解中是环境变量。但是,我部署了我的 docker 映像,其中包含 azure 管道并且一切正常,但是当我通过 ssh 连接到实例并调用“env”时,我看不到任何环境变量。

从文档中,我应该能够在 php 中将它们作为其他所有 env 变量 (getenv..) 调用。也许我错过了什么,或者我对这个应用程序设置的理解不正确。

如果有人知道出了什么问题,那就太好了,如果您需要更多信息,请联系我。

【问题讨论】:

    标签: azure azure-devops environment-variables


    【解决方案1】:

    部分原因是您在访问设置为环境变量setting/configuration的方式上没有出错。 getenv() 是正确的。

    当我通过 ssh 连接到实例并调用“env”时,我看不到 我的任何环境变量

    我认为这个问题可能是由您的脚本引起的。当您访问这些设置键时,请不要丢失Prefixed。这是访问和获取这些环境变量的重要途径。例如,如果您要访问app settings,则相应的环境变量的名称应以APPSETTING_ 开头。

    此时,PHP 脚本的示例脚本应该是:

    <?php 
      $appsetting = getenv('APPSETTING_{Key}'); echo $appsetting;
    ?>
    

    注意:{key} 是您在 Azure 应用服务中配置的键名。

    对于Connection Strings下的配置,要加上​​其他前缀。如您所知,当您创建这些连接字符串时,您需要选择Type

    对于这些设置,连接字符串可用作环境 变量,前缀为以下连接类型:

    SQL 服务器:SQLCONNSTR_

    MySQL:MYSQLCONNSTR_

    SQL 数据库:SQLAZURECONNSTR_

    自定义:CUSTOMCONNSTR_

    欲了解更多详情,请查看此文档:https://docs.microsoft.com/en-us/azure/app-service/configure-common#configure-connection-strings

    【讨论】:

    • 这仍然给我null。调用 env 作为系统上的命令应该返回我设置的每个环境变量。由于也没有 APPSETTING 前缀变量,我认为问题有所不同。 docs.microsoft.com/en-us/azure/app-service/containers/…也和这篇文章相关,前缀不是必须的
    • @Zero 变量是否在应用程序设置下配置?您是否在通用设置下设置了PHP版本?参考这个文档:github.com/uglide/azure-content/blob/master/articles/…
    • 是的,它在应用程序设置下配置。在一般设置下,我看不到任何设置 php 版本的选项
    【解决方案2】:

    我发现这篇文章更详细地解释了整个东西的工作原理。

    https://omgdebugging.com/2018/10/05/how-to-export-environment-variables-in-azure-web-app-for-containers/

    但是我坚持使用这篇文章并使用提供的解决方法。如果有人知道更好的解决方案,请告诉我

    【讨论】:

    • 您最终找到了更多相关信息吗?我想我目前面临着类似的问题。无法显示 SSH 容器中的环境变量,它们似乎被我的应用程序忽略了
    • 跟进我之前的评论:环境变量被忽略了,因为它是一个 Laravel 应用程序,除非运行 cache:config,否则它不会读取服务器级变量。
    猜你喜欢
    • 1970-01-01
    • 2022-10-15
    • 2016-06-12
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 2018-09-13
    • 2022-07-31
    相关资源
    最近更新 更多