繁体   English   中英

Azure容器应用中如何引用secret?

[英]How to reference secrets in Azure Container Apps?

我通过从门户添加秘密为我的 Azure 容器应用程序创建了秘密。

但是我如何在我的代码中引用它,例如数据库连接字符串?

关于使用秘密的部分只说:

应用程序机密通过secretref属性引用。 秘密值映射到应用程序级秘密,其中secretref值与在应用程序级别声明的秘密名称相匹配。

我应该提到我的容器应用程序不是 .NET 应用程序——它是一个 Node.js 服务。 在哪里可以找到这个secretref属性? 我已经检查了正在运行的容器中的环境变量,但没有看到那里的秘密。

机密作为环境变量提供。

假设您在 Azure 控制台中输入了一个名为db_password的机密并部署了您的容器。 然后你的

az containerapp update --name myapp --resource-group myresgroup --set-env-vars "DB_PASSWORD=secretref:db_password"

在 node.js 中,您现在可以像这样访问值:

let db_password = process.env.DB_PASSWORD;

az containerapp命令只需要一次。 下次容器部署后仍然有效。

自然,我发布了这个并想通了。 秘密由环境变量公开。 我错过了 azure CLI 示例中确实引用了secretref的语法,并且 Codo 通过下面的 CLI 阐明了如何执行此操作 - 但如果您碰巧通过门户配置机密:

  1. 在左侧导航中,单击秘密并在门户中创建秘密。
  2. 在左侧导航中,单击“修订”部分下的“容器”。
  3. 选择要在其中发布机密的容器。
  4. 在顶部,单击“编辑和部署”
  5. 在“容器映像”部分 select 您的映像。
  6. 在“编辑容器”中跳到环境变量并单击“添加”
  7. 输入环境变量的名称。
  8. 在“来源”下,单击“引用秘密”,然后选择您的秘密。

创建修订版,您应该对 go 很好。 应用程序代码可以引用环境变量来访问密钥。

使用 CLI 中的环境变量“CosmosAccountName=secretref:cosmos-account”在 Azure 门户中显示“CosmosAccountName”的“容器应用程序”名称。

我正在使用 Pulumi(IaC) 创建容器应用程序和机密,并使用 CLI 使用环境变量(包含机密)部署映像。 (不想在Azure传送门上配置)

您是否尝试使用带有符号“&”的秘密或环境变量,即someSecretURL?param1=value1&param2=value2看起来 az containerapp 命令会剪切符号“&”之后的所有内容,您会得到秘密或环境变量,例如someSecretURL?param1=value1

想法?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM