在流水线中使用环境变量

如何在 Kubeflow 流水线中设置和使用环境变量

本页面介绍了如何向 Kubeflow 流水线组件传递环境变量。

开始之前

设置环境

使用环境变量

在本例中,您将一个环境变量传递给一个轻量级 Python 组件,该组件会将该变量的值写入日志。

了解更多关于轻量级 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)