在流水线中使用环境变量
如何在 Kubeflow 流水线中设置和使用环境变量
旧版本
本页面介绍的是 Kubeflow Pipelines V1,有关最新信息,请参阅 V2 文档。
请注意,虽然 V2 后端能够运行由 V1 SDK 提交的流水线,但我们强烈建议迁移到 V2 SDK。作为参考,V1 SDK 的最终版本是 kfp==1.8.22
,其参考文档可在此处获取。
本页面介绍了如何向 Kubeflow 流水线组件传递环境变量。
开始之前
设置环境
使用环境变量
在本例中,您将一个环境变量传递给一个轻量级 Python 组件,该组件会将该变量的值写入日志。
要构建一个组件,需要定义一个独立的 Python 函数,然后调用 kfp.components.func_to_container_op(func) 将该函数转换为可在流水线中使用的组件。以下函数获取一个环境变量并将其写入日志。
def logg_env_function():
import os
import logging
logging.basicConfig(level=logging.INFO)
env_variable = os.getenv('example_env')
logging.info('The environment variable is: {}'.format(env_variable))
使用 kfp.components.func_to_container_op(func) 将函数转换为组件。
image_name = 'tensorflow/tensorflow:1.11.0-py3'
logg_env_function_op = comp.func_to_container_op(logg_env_function,
base_image=image_name)
将此组件添加到流水线。使用 add_env_variable 将环境变量传递到组件中。无论是使用 Python 轻量级组件还是容器操作,此代码都相同。
import kfp.dsl as dsl
from kubernetes.client.models import V1EnvVar
@dsl.pipeline(
name='Env example',
description='A pipeline showing how to use environment variables'
)
def environment_pipeline():
env_var = V1EnvVar(name='example_env', value='env_variable')
#Returns a dsl.ContainerOp class instance.
container_op = logg_env_function_op().add_env_variable(env_var)
要向组件传递更多环境变量,请添加更多 add_env_variable() 实例。使用以下命令通过 Kubeflow Pipelines SDK 运行此流水线。
#Specify pipeline argument values
arguments = {}
#Submit a pipeline run
kfp.Client().create_run_from_pipeline_func(environment_pipeline,
arguments=arguments)
最后修改时间:2024年7月31日:修复 Pipelines 中的损坏链接 (#3807) (17e27bf)