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

如何在GitHub Actions中用Azure CLI传递Key Vault密钥至后续步骤?

在GitHub Actions中使用Azure CLI获取Key Vault密钥并传递到后续步骤

单密钥传递示例

如果只需要获取单个密钥,可在Azure CLI步骤中通过$GITHUB_OUTPUT设置输出变量,后续步骤直接引用:

- name: 获取Key Vault密钥
  id: get-secret
  uses: azure/CLI@v1
  with:
    inlineScript: |
      # 获取密钥值并去除引号
      SECRET_VALUE=$(az keyvault secret show --vault-name MyVaultName --name MySecret --query value -o tsv)
      # 将密钥写入GitHub Actions输出变量
      echo "my-secret=$SECRET_VALUE" >> $GITHUB_OUTPUT

# 后续步骤引用密钥
- name: 使用密钥
  run: |
    echo "获取到的密钥是: ${{ steps.get-secret.outputs.my-secret }}"

多密钥传递示例(对应原弃用Action的场景)

如果需要同时获取多个密钥(比如容器用户名和密码),可以依次获取并设置多个输出变量:

- name: 获取多个Key Vault密钥
  id: get-secrets
  uses: azure/CLI@v1
  with:
    inlineScript: |
      # 获取容器用户名
      USERNAME=$(az keyvault secret show --vault-name containervault --name containerUsername --query value -o tsv)
      # 获取容器密码
      PASSWORD=$(az keyvault secret show --vault-name containervault --name containerPassword --query value -o tsv)
      # 将两个密钥写入输出变量
      echo "containerUsername=$USERNAME" >> $GITHUB_OUTPUT
      echo "containerPassword=$PASSWORD" >> $GITHUB_OUTPUT

# 后续Docker登录步骤引用密钥
- uses: azure/docker-login@v1
  with:
    login-server: myregistry.azurecr.io
    username: ${{ steps.get-secrets.outputs.containerUsername }}
    password: ${{ steps.get-secrets.outputs.containerPassword }}

关键说明

  • 使用-o tsv参数可以让Azure CLI输出不带引号的纯文本值,避免后续引用时处理引号问题。
  • 必须给Azure CLI步骤设置id,后续步骤才能通过steps.<步骤id>.outputs.<变量名>引用输出的密钥。
  • $GITHUB_OUTPUT是GitHub Actions官方推荐的设置输出变量的方式,替代了旧的::set-output命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 13:35:25