如何在Azure容器应用内部程序中读取--env-vars配置的环境变量
读取方法
不管是--env-vars直接赋值的普通环境变量,还是通过secretref关联密钥的引用型环境变量,Azure容器应用都会在容器启动阶段自动把它们注入到容器运行时环境中,引用型变量会自动解析为密钥明文,不需要额外调用Azure接口做解密操作,直接用编程语言原生的环境变量读取逻辑就能获取。
以你给出的创建命令为例,配置的QueueName、ConnectionString两个参数,在容器内部就是同名的标准环境变量,直接按变量名读取即可。
常见语言读取示例
- Node.js
// 读取直接赋值的普通环境变量 const queueName = process.env.QueueName; // 读取secretref关联的密钥类环境变量,拿到的是解密后的明文 const connectionString = process.env.ConnectionString;
- Python
import os queue_name = os.getenv("QueueName") connection_string = os.getenv("ConnectionString")
- C# (.NET)
var queueName = Environment.GetEnvironmentVariable("QueueName"); var connectionString = Environment.GetEnvironmentVariable("ConnectionString");
- Java
String queueName = System.getenv("QueueName"); String connectionString = System.getenv("ConnectionString");
- Shell
# 直接打印变量值验证 echo $QueueName echo $ConnectionString
排查验证方式
如果遇到读取不到的问题,可以先进入容器执行环境变量查看命令,确认注入是否正常:
az containerapp exec --resource-group "my-resource-group" --name myQueueApp --command "printenv"
在输出结果里查找对应变量名即可。
注意事项:通过secretref关联的环境变量只会在容器副本启动时注入一次,如果后续更新了对应密钥的值,需要重启容器应用的副本,新的密钥值才会生效。
内容的提问来源于stack exchange,提问作者thiago.adriano26
相关产品推荐
相关产品推荐

