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

如何在Azure ML SDK v2中通过jobs.create_or_update()为管道设置环境变量?

Azure ML SDK v2 管道组件设置环境变量解决方案

在SDK v2中,管道作业不再依赖RunConfig来配置环境变量,而是直接在步骤级别、管道全局级别或组件定义文件中设置,以下是具体实现方式:

1. 给单个管道步骤设置环境变量

在定义管道步骤后,直接为步骤对象添加environment_variables属性:

preprocessing_component = load_component(
    source=Path(__file__).parent / "preprocessing_component.yaml"
)

@pipeline()
def example_train_pipeline(input_data_path):
    preprocess_step = preprocessing_component(
        input_data_path=input_data_path
    )
    # 为当前步骤设置专属环境变量
    preprocess_step.environment_variables = {"API_KEY": "your_secret_key", "DEBUG": "True"}
    return preprocess_step.outputs.processed_data  # 根据组件实际输出调整

pipeline_job = example_train_pipeline(
    input_data_path=Input(
        type=AssetTypes.URI_FILE,
        path="xxx",
    )
)

pipeline_job.settings.default_compute = e.cluster_name
pipeline_job = ml_client.jobs.create_or_update(
    pipeline_job, experiment_name=experiment_name
)

2. 给整个管道设置全局环境变量

如果需要所有步骤共享相同的环境变量,可在管道作业对象的settings中配置:

pipeline_job = example_train_pipeline(
    input_data_path=Input(
        type=AssetTypes.URI_FILE,
        path="xxx",
    )
)

pipeline_job.settings.default_compute = e.cluster_name
# 全局环境变量,所有步骤都会继承
pipeline_job.settings.environment_variables = {"LOG_LEVEL": "INFO", "REGION": "eastus"}

pipeline_job = ml_client.jobs.create_or_update(
    pipeline_job, experiment_name=experiment_name
)

3. 在组件YAML文件中定义固定环境变量

若组件本身需要固定的环境变量,可直接在组件定义的YAML中添加environment_variables字段:

name: preprocessing_component
display_name: Data Preprocessing
version: 1
type: command
environment: azureml:your-environment-name:1
# 组件固定环境变量
environment_variables:
  DEFAULT_THRESHOLD: "0.8"
  DATA_FORMAT: "csv"
command: >-
  python preprocess.py --input ${{inputs.input_data_path}} --output ${{outputs.processed_data}}
inputs:
  input_data_path:
    type: uri_file
outputs:
  processed_data:
    type: uri_folder

注意事项

  • SDK v2中,环境对象的.env_variables参数已弃用,环境变量不再绑定到环境资源,而是绑定到作业/步骤/组件的运行上下文。
  • 组件代码中可通过os.environ.get("ENV_VAR_NAME")读取设置的环境变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 10:00:10