You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Terraform创建ACE后,如何用AzureContainerApps@1部署ACA并集成Key Vault密钥?

解答

一、方案可行性

你的方案完全可行。Terraform专注创建Azure Container App Environment(ACE)这类基础设施资源,Azure DevOps的AzureContainerApps@1任务负责部署Container App实例,完美契合"基础设施即代码"与"应用部署分离"的思路,不需要用Terraform定义ACA实例。

二、通过ADO任务导入Key Vault密钥到ACA的实现方法

你可以通过两步ADO任务完成密钥注入,无需手动操作:

  1. 拉取Key Vault密钥到流水线变量
    使用AzureKeyVault@2任务从Key Vault中读取所需密钥,将其转为流水线可用变量:
    - task: AzureKeyVault@2
      inputs:
        azureSubscription: '<你的Azure服务连接名称>'
        KeyVaultName: '<目标Key Vault名称>'
        SecretsFilter: 'DB_PASSWORD,API_KEY' # 用逗号分隔多个密钥名
        RunAsPreJob: false
    
  2. 部署ACA时注入密钥
    在AzureContainerApps@1任务中,通过secrets参数以JSON格式配置密钥,直接引用第一步拉取的变量:
    - task: AzureContainerApps@1
      inputs:
        azureSubscription: '<你的Azure服务连接名称>'
        containerAppName: '<要部署的ACA实例名称>'
        resourceGroup: '<资源组名称>'
        imageToDeploy: '<你的容器镜像地址,比如acr-name.azurecr.io/image:tag>'
        secrets: |
          [
            {
              "name": "db-password", # ACA中使用的密钥名称
              "value": "$(DB_PASSWORD)" # 引用从Key Vault拉取的变量
            },
            {
              "name": "api-key",
              "value": "$(API_KEY)"
            }
          ]
    

进阶:动态引用Key Vault密钥(推荐)

如果希望ACA实时读取Key Vault的最新密钥值(无需重新部署ACA),可以配置密钥引用而非直接导入值:

  • 先给ACA的系统分配身份(或用户分配身份)授予Key Vault的Secret Get权限;
  • 在AzureContainerApps@1任务的secrets参数中使用secretUrl字段:
    secrets: |
      [
        {
          "name": "db-password-ref",
          "secretUrl": "https://<keyvault-name>.vault.azure.net/secrets/DB_PASSWORD"
        }
      ]
    
    后续在ACA的环境变量中,通过@Microsoft.KeyVault(SecretUri=<密钥URL>)格式引用即可。

三、相关文档参考要点

  • Azure DevOps官方对AzureContainerApps@1任务的说明中,明确secrets参数支持JSON数组格式,可直接引用流水线变量(包括Key Vault拉取的变量);
  • Azure Container Apps官方文档中,关于密钥管理的章节详细说明了静态导入与动态引用Key Vault密钥的两种模式,以及对应的权限配置要求。

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:05:17