我如何在应用程序内部使用azure应用程序服务环境变量?

时间:2019-07-09 09:17:06

标签: azure azure-devops environment-variables

我正在尝试以天蓝色设置我的项目。为此,我创建了一个应用程序服务,并在设置/配置下添加了一些“应用程序设置”,据我所知是环境变量。但是,我部署了docker镜像,该镜像可以使流水线变得蔚蓝,并且一切正常,但是当我通过ssh连接到实例并调用“ env”时,我看不到任何环境变量。

从文档中,我应该能够在php中像其他每个env变量(getenv ..)一样调用它们。也许我错过了一些事情,或者我对此应用程序设置的理解不正确。

如果有人对哪里出了问题有个好主意,那真是太棒了,如果您需要更多信息,请打我。

2 个答案:

答案 0 :(得分:1)

部分地,您在访问设置/配置(设置为环境变量)的方式上没有犯错。 getenv()是正确的。

  

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

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

这时,PHP脚本的示例脚本应为:

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

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

对于连接字符串下的配置,应添加其他前缀。如您所知,在创建这些连接字符串时,您需要选择类型

enter image description here

  

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

     

SQL Server:SQLCONNSTR _

     

MySQL:MYSQLCONNSTR _

     

SQL数据库:SQLAZURECONNSTR _

     

自定义:CUSTOMCONNSTR _

有关更多详细信息,请查看以下文档:https://docs.microsoft.com/en-us/azure/app-service/configure-common#configure-connection-strings

答案 1 :(得分:0)

我找到了这篇文章,它解释了整个过程的原理。

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

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