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

AzureML中无需Python脚本,如何用Key Vault密钥填充环境变量?

在AzureML管道的CommandStep中直接从Key Vault注入环境变量(无需Python脚本)

完全可以不用Python脚本做中间层,直接通过AzureML的原生配置实现Key Vault密钥到环境变量的映射,步骤如下:

前提准备

  • 你的AzureML工作区已关联对应的Key Vault(新建工作区时默认会创建并关联,若未关联需手动绑定)
  • 你拥有Key Vault的Secrets User权限,且运行CommandStep的计算目标(如计算集群)也被授予了Key Vault的Secrets User角色(通过Azure门户的IAM配置)

具体实现

在定义CommandStep时,直接在environment_variables参数中使用Key Vault的引用格式,AzureML会自动在运行时拉取密钥并注入为环境变量:

示例代码

from azureml.pipeline.steps import CommandStep
from azureml.core import Workspace

ws = Workspace.from_config()

# 定义CommandStep,直接引用Key Vault密钥作为环境变量
command_step = CommandStep(
    name="run_cli_app",
    command="your-cli-app --param1 ${{env.CREDENTIAL}}",  # 命令行应用读取环境变量
    environment_variables={
        # 格式1:通过密钥URI引用(推荐,避免同名密钥冲突)
        "CREDENTIAL": "@Microsoft.KeyVault(SecretUri=https://your-vault-name.vault.azure.net/secrets/your-secret-name/)",
        # 格式2:通过密钥库名称+密钥名称引用
        # "CREDENTIAL": "@Microsoft.KeyVault(VaultName=your-vault-name;SecretName=your-secret-name)"
    },
    compute_target=ws.compute_targets["your-compute-cluster"],
    workspace=ws
)

关键说明

  • 命令行应用中直接通过环境变量名(比如CREDENTIAL)读取即可,无需额外处理
  • AzureML会自动处理密钥的拉取和注入,全程不需要Python脚本介入
  • 确保计算目标的身份(如系统分配的托管身份)拥有Key Vault的密钥读取权限,否则会出现权限错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:30:18