为 Orchestration Pipelines 配置全局对象

使用全局对象来创建可配置常量,以在运行时配置管道。 使用管道中的参数或用户变量在运行时指定值,而不是对值进行硬编码。 与管道参数不同,可以在流期间动态设置用户变量。

了解有关创建的信息:

管道参数

使用管道参数在管道运行时指定值。 例如,如果您希望用户输入用于管道输出的部署空间,请使用参数提示输入管道运行时要使用的空间名称。 每次运行作业时指定参数值可帮助您使用正确的资源。

关于管道参数:

  • 可指定为节点值或为管道作业指定节点值。
  • 可以分配给任何节点,并且状态指示符会向您发出警报。
  • 可用于多个节点。

定义管道参数

  1. 从工具栏中的节点配置面板创建管道参数。
  2. 输入名称和可选描述。 名称必须是小写字母,数字和下划线的小写 大小写。 例如, lower_snake_case_with_numbers_123 是有效名称。 名称必须以字母开头。 如果名称不符合要求,那么在尝试运行管道时将发生 404 错误。
  3. 指定参数类型。 根据参数类型,您可能需要提供更多详细信息或指定缺省值。
  4. 单击 添加到列表 以保存管道参数。
注:


-您可以定义单个参数,也可以创建 参数集。 您单独定义的参数也可以添加到集合中。
-可以通过在管道中生成不受支持的结果的方式使用管道参数。 如果分配具有通用资产作为其值的参数,那么可以选择资产作为 复制资产 节点不支持的参数值。

参数类型

参数类型分类为:

  • 基本: 包括用于构造管道输入的数据类型或用于处理创建重复空间或资产的选项。
  • 资源: 用于选择项目,目录,空间或资产。
  • 实例: 用于选择机器学习实例或 Cloud Object Storage 实例。
  • 其他: 用于指定详细信息,例如创建方式或错误策略。

使用管道类型的示例

要创建类型为 Path的参数:

  1. 创建名为 MASTER_PARAMETER_SET的参数集。
  2. 创建名为 file_path 的参数,并将类型设置为 Path
  3. file_path 的值设置为 mnts/workspace/masterdir。 可以通过多种方法来设置值:
    • 选择资源: 使用 UI 浏览作用域中的文件。
    • 输入值: 文件相对路径的有效文本,例如 /mnts/sender.txt
  4. 将节点 等待文件 拖到画布上,并将 文件位置 值设置为 MASTER_PARAMETER_SET.file_path
  5. 等待文件运行 Bash 脚本 节点连接,以便后一个节点在前一个节点之后运行。
  6. 可选: 测试参数变量:
    1. 将环境变量参数添加到 MASTER_PARAMETER_SET 参数集,例如 FILE_PATH
    2. 将以下命令粘贴到 运行 Bash 脚本脚本代码 中:
      echo File: $FILE_PATH
      cat $FILE_PATH
      
  7. 运行管道。 路径 mnts/workspace/masterdir 位于两个节点的执行日志中,以查看它们是否成功传递。

加密参数

您可能希望向作业参数提供私钥值,以确保数据的隐私和安全。 通过使用加密的参数类型,您可以在本地提供参数值,并且参数值从不公开或写入外部源。

计划使用加密数据

加密数据类型作为参数保留在内部。 将其作为环境变量传递时,会将其存储为临时安装的文件。

在计划使用加密数据类型时,请考虑该加密数据类型:

  • 仅可用于管道参数,参数集值和环境变量。
  • 必须是单个值 (无加密列表)。

使用加密数据的最佳实践

  • 请勿将缺省值用于加密数据类型,因为这些值以加密形式存储。
  • 因此,请在表达式构建器中使用数据输入和输出类型。 作为生成字符串字面值 (例如, "my secret value") 的表达式提供的加密值将用作纯文本。

使用加密参数的示例

  1. 创建名为 MASTER_PARAMETER_SET的参数集。
  2. 创建名为 dummy_pass 的参数,并将类型设置为 加密
  3. dummy_pass 的值设置为任意值。
  4. 运行 Bash 脚本 节点拖到画布上。
  5. 添加名为 DB2PASSWORD 的环境变量,并将其值分配给 MASTER_PARAMETER_SET.dummy_pass
  6. 可选: 测试参数变量:
    1. 将以下命令粘贴到 运行 Bash 脚本脚本代码 中:
      PARAM_VAL=$(<"$DB2PASSWORD")
      echo $PARAM_VAL
      
  7. 运行管道。 请参阅 运行 Bash 脚本 节点日志中的哑元密码,现在为 PARAM_VAL 分配了 $DB2PASSWORD的值。

使用管道参数配置节点

使用管道参数配置节点时,可以选择现有管道参数或在配置节点过程中创建新的管道参数。

例如:

  1. 创建名为 creationmode 的管道参数,并将其保存到参数列表中。
  2. 配置 创建部署空间 节点,然后单击以打开配置面板。
  3. 选择 管道参数 作为 创建方式 选项的输入。
  4. 选择 creationmode 管道参数并保存配置。

运行流时,将在创建空间时分配管道参数。

参数集

参数集是要在管道中使用的一组相关参数。 例如,您可以创建一组要在测试环境中使用的参数,而创建另一组要在生产环境中使用的参数。

可以将参数集创建为项目资产。 然后,在该项目中创建的参数集可以在该项目中的管道中使用。

创建参数集作为项目资产

您可以创建参数集作为要在管道中使用的可复用项目资产。

  1. 打开现有项目或创建项目。
  2. 单击 “新建资产”>“定义可重用参数集 ”。
  3. 指定集合的名称,并指定集合中每个参数的详细信息,包括:
    • 参数的名称
    • 数据类型
    • 提示
    • 缺省值
  4. (可选) 为参数集中的参数创建值集。 值集可以是不同上下文的不同值。 例如,您可以使用测试环境的值和生产值的生产集来创建测试值集。
  5. 在创建所有参数 s 后保存参数集。 它可供在该项目中创建的管道中使用。

添加要在管道中使用的参数集

要从项目添加参数集,请执行以下操作:

  1. 单击全局对象图标,然后切换到 "参数集" 选项卡
  2. 单击 添加参数集 以添加要在管道中使用的项目中的参数集。
  3. 您可以在列表中添加或除去参数集。 当您将参数指定为管道中的输入时,您指定在管道中使用的参数集将变为可用。

从管道中的参数列表创建参数集

您可以从管道的参数列表中创建参数集

  1. 单击 "全局对象" 图标并打开 "管道参数"。
  2. 选择要在集合中使用的参数,然后单击 另存为参数集 图标。
  3. 输入集合的名称和可选描述。
  4. 保存以添加要在管道中使用的参数集。

使用管道中的参数集

要使用参数集:

  1. 从节点属性表中选择 分配管道参数 作为输入类型。
  2. 选择要分配的参数。 列表将显示该输入的类型的所有可用参数。 可用参数可以是单个参数,也可以是定义为集合一部分的参数。 参数集名称在参数名称之前。 例如, Parameter_set_name.Parameter_name
  3. 运行管道并为相应的值 (如果可用) 选择值集,为参数指定值或接受缺省值。
注: 您可以使用 ` param_sets 格式在表达式构建器中使用参数集。`。如果参数集值包含环境变量,则必须在表达式生成器中使用此语法: `param_sets.MyParamSet["$ICU_DATA"]`。

使用项目缺省参数集

项目可以具有名为 PROJDEF 的参数集。 此参数集包含用于管道作业或作业运行的参数和环境变量值。 因为它是参数集,所以您可以使用现有参数集 UI 来管理这些变量。 可以将参数集导入到其他项目中。

请警惕 PROJDEF:

  • 可以使用管道参数的值 PROJDEF 来引用 PROJDEF 参数集值。
  • 所有类型的参数都支持值 PROJDEF ,但仅支持字符串和加密的 PROJDEF 用户定义的环境变量。
  • PROJDEF 参数集的参数必须使用与具有 PROJDEF 值的管道参数相同的名称。

要在项目中使用 PROJDEF:

  1. 创建参数集 PROJDEF。

  2. 将参数添加到 PROJDEF 参数集中,例如 $DB2_USERID

  3. 在 Pipeline 流中添加同名的用户定义变量。

  4. 在 Pipeline 流中添加同名的用户定义变量。

  5. 单击 编辑本地参数编辑为此作业设置的参数 ,这取决于变量的创建位置。

  6. 从变量的 值源自 下拉菜单中单击 分配 PROJDEF如果 PROJDEF 不可用,那么不会显示菜单选项。

  7. 可选: 要从备用方法输入变量值,请单击 "断开连接" 图标。

要将 PROJDEF 分配给集合中的所有参数,请执行以下操作:

  1. 通过单击 编辑此作业的值 或类似内容来编辑值集。
  2. 单击 源参数集 下拉列表。
  3. 选择 PROJDEF。
注意: 如果删除参数,请确保从作业设计中除去对参数的引用。 如果未除去引用,那么您的作业可能会失败。

编辑作业中的参数集

如果在定义作业时使用参数集,那么可以选择值集以使用该集合中的值填充变量。 如果更改并保存值,然后编辑作业并保存更改,那么参数集值将重置为缺省值。

用户变量

创建用户变量以在流运行时指定值。 与管道参数不同,可以在处理期间修改用户变量。

定义用户变量

您可以创建用户变量以在管道中使用。 用户变量 (如参数) 是在全局级别定义的,并非特定于任何节点。 用户变量的初始值必须在您定义时设置,并且不能作为任何节点输出的结果动态设置。 定义用户变量时,可以使用 设置用户变量 节点以使用节点输出对其进行更新。

要创建用户变量:

  1. 更新变量 节点配置面板或工具栏创建变量。
  2. 输入名称和可选描述。 名称必须是小写字母,数字和下划线的小写 大小写。 例如, lower_snake_case_with_numbers_123 是有效名称。 名称必须以字母开头。 如果名称不符合要求,那么在尝试运行管道时将发生 404 错误。
  3. 完成变量的定义,包括选择变量类型和输入类型。
  4. 选中 使用户变量值作为管道结果可用选项。 该选项允许将该值用作在此管道中运行的任何 运行管道作业 节点的输出。 有关使用情况详细信息,请参阅 管道结果中的用户变量
  5. 单击 添加 以将变量添加到列表中。 现在可供在节点中使用。

管道结果中的用户变量

如果用户变量可用作结果,那么它将作为与此管道关联的任何作业中的输出可用。

常见用例是能够使用在运行该用例的另一个管道的一个管道中计算的值。 您可以将文件名存储在用户变量中,然后从另一个管道运行该管道,并将该文件名作为 Bash 脚本的输入。

配置地图功能

以下是通过更新配置地图设置启用的管道功能。

配置用户变量的大小限制


您可以在管道配置映射中更改用户变量的大小。
  1. 通过运行命令 kubectl edit -n <namespace> configmap watson-pipelines-config 打开 configmap ,其中 namespace 是 Cloud Pak for Data 实例名称空间。
  2. 使用 Kubernetes 数量格式的值设置 user_variables_size_limit 的值。
  3. 通过运行命令 kubectl -n <namespace> delete pod -l 'app=tekton-extensions-controller'来重新启动 Tekton pod。

设置时区

您可以在 configmap 中设置时区。

  1. 通过运行命令 kubectl edit -n <namespace> configmap watson-pipelines-config 打开 configmap ,其中 namespace 是 Cloud Pak for Data 实例名称空间。
  2. 使用以下代码示例设置时区的值:
    apiVersion: v1
    kind: ConfigMap
    metadata:
       name: watson-pipelines-config
       namespace: zen
    data:
       default_container_env: |
          - name: TZ
            value: America/New_York
    
  3. 在 Pipelines CR 中设置时区值:
    oc patch wspipelines wspipelines-cr -p '{"spec":{"timezone":"America/New_York"}}' --type=merge
    
  4. 等待协调完成:
    oc get wspipelines wspipelines-cr