如何使用Python SDK v2为AzureML管道作业传递环境变量?
如何在Azure ML管道中传递环境变量并在脚本中使用
1. 在组件YAML里定义环境变量
编辑组件的YAML配置文件,在environment段添加environment_variables,可预设默认值或留空:
name: data_processing_component display_name: Data Processing Component version: 1 type: command inputs: raw_data: type: uri_folder outputs: processed_data: type: uri_folder environment: image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04 environment_variables: API_KEY: "" ENV_MODE: "dev" command: >- python process_data.py --raw_data ${{inputs.raw_data}} --processed_data ${{outputs.processed_data}}
2. 构建管道时传入自定义环境变量
加载组件后,在管道步骤里通过environment_variables参数覆盖或添加变量:
from azure.ai.ml import load_component from azure.ai.ml.dsl import pipeline from azure.ai.ml import Input # 加载本地组件YAML data_processing = load_component(source="./data_processing.yaml") @pipeline() def data_pipeline(): process_step = data_processing( raw_data=Input(path="./raw_data"), environment_variables={ "API_KEY": "your_actual_api_key", "ENV_MODE": "prod" } )
3. 在执行脚本中读取环境变量
在处理逻辑的Python脚本里,用os.environ获取变量值:
import os import argparse import pandas as pd def main(): parser = argparse.ArgumentParser() parser.add_argument("--raw_data", type=str) parser.add_argument("--processed_data", type=str) args = parser.parse_args() # 读取环境变量 api_key = os.environ.get("API_KEY") env_mode = os.environ.get("ENV_MODE") # 使用变量执行逻辑,比如调用外部API print(f"Running in {env_mode} mode, using API key: {api_key[:4]}...") # 数据处理示例 df = pd.read_csv(f"{args.raw_data}/data.csv") df["processed"] = True df.to_csv(f"{args.processed_data}/processed_data.csv", index=False) if __name__ == "__main__": main()
内容的提问来源于stack exchange,提问作者Bharath Kumar L
相关产品推荐
相关产品推荐

