绑定管道任务意味着将在管道运行时为任务创建依赖关系。您可以通过多种方式为管道任务创建绑定。您可以将任务绑定到其他任务,绑定到变量和表达式,或绑定到条件。

如何在云模板任务中将美元绑定应用于云模板变量

可以在 Code Stream 管道云模板任务中将美元绑定应用于云模板变量。在 Code Stream 中修改变量的方式取决于变量属性在云模板中的编码。

如果必须在云模板任务中使用美元绑定,但在云模板任务中使用的当前云模板版本不允许使用美元绑定,请在 Cloud Assembly 中修改云模板并部署新版本。然后,在云模板任务中使用新的云模板版本,并根据需要添加美元绑定。

要对 Cloud Assembly 云模板提供的属性类型应用美元绑定,您必须具有正确的权限。

  • 您必须与在 Cloud Assembly 中创建云模板部署的人员具有相同的角色。
  • 对管道进行建模的人员和运行管道的人员可能是两个不同的用户,并且可能具有不同的角色。
  • 如果开发人员具有 Code Stream 执行者角色并对管道进行建模,则该开发人员还必须具有部署云模板的人员的相同 Cloud Assembly 角色。例如,所需角色可能是 Cloud Assembly 管理员。
  • 只有对管道进行建模的人员才可以创建管道并创建部署,因为他们具有权限。

要在云模板任务中使用 API 令牌,请执行以下操作:

  • 对管道进行建模的人员可以为具有 Code Stream 执行者角色的其他用户提供 API 令牌。之后,当执行者运行管道时,将使用 API 令牌和 API 令牌创建的凭据。
  • 当用户在云模板任务中输入 API 令牌时,会创建管道所需的凭据。
  • 要对 API 令牌值进行加密,请单击创建变量
  • 如果没有为 API 令牌创建变量,并在云模板任务中使用该令牌,则 API 令牌值将以纯文本形式显示。

要在云模板任务中将美元绑定应用于云模板变量,请执行以下步骤。

首先,在云模板中定义输入变量属性,例如 integerVarstringVarflavorVarBooleanVarobjectVararrayVar。可以在 resources 部分中找到定义的映像属性。云模板代码中的属性可能如下所示:

formatVersion: 1
inputs:
  integerVar:
    type: integer
    encrypted: false
    default: 1
  stringVar:
    type: string
    encrypted: false
    default: bkix
  flavorVar:
    type: string
    encrypted: false
    default: medium
  BooleanVar:
    type: boolean
    encrypted: false
    default: true
  objectVar:
    type: object
    encrypted: false
    default:
      bkix2: bkix2
  arrayVar:
    type: array
    encrypted: false
    default:
      - '1'
      - '2'
resources:
  Cloud_Machine_1:
    type: Cloud.Machine
    properties:
      image: ubuntu
      flavor: micro
      count: '${input.integerVar}'

可以对 imageflavor 使用美元符号变量 ($)。例如:

resources:
  Cloud_Machine_1:
    type: Cloud.Machine
    properties:
      input: '${input.image}'
      flavor: '${input.flavor}'

要在 Code Stream 管道中使用云模板并将美元绑定添加到其中,请执行以下步骤。

  1. Code Stream 中,单击管道 > 空白画布
  2. 在管道中添加云模板任务。
  3. 在云模板任务中,对于云模板源,选择 Cloud Assembly 云模板,输入云模板名称,然后选择云模板版本。
  4. 请注意,可以输入为管道提供凭据的 API 令牌。要在云模板任务中创建加密 API 令牌的变量,请单击创建变量
  5. 在显示的参数和值表中,请注意参数值。flavor 的默认值为 smallimage 的默认值为 ubuntu
  6. 假设您必须在 Cloud Assembly 中更改云模板。例如:
    1. flavor 设置为使用 array 类型的属性。当类型为 array 时,Cloud Assembly 允许对 Flavor 使用逗号分隔值。
    2. 单击部署
    3. 在“部署类型”页面上,输入部署名称,然后选择云模板的版本。
    4. 在“部署输入”页面上,可以为 Flavor 定义一个或多个值。
    5. 请注意,“部署输入”包括在云模板代码中定义的所有变量,并在云模板代码中显示为已定义。例如:Integer VarString VarFlavor VarBoolean VarObject VarArray VarString VarFlavor Var 是字符串值,Boolean Var 是一个复选框。
    6. 单击部署
  7. Code Stream 中,选择新版本的云模板,然后在参数和值表中输入值。云模板支持以下类型的参数,这些参数支持使用美元符号变量实现 Code Stream 绑定。 Code Stream 云模板任务的用户界面与 Cloud Assembly 云模板的用户界面之间存在细微差异。根据 Cloud Assembly 中云模板的编码,可能不允许在 Code Stream 的云模板任务中输入值。
    1. 对于 flavorVar,如果云模板将类型定义为字符串或数组,请输入字符串或逗号分隔值数组。例如,数组类似于 test, test
    2. 对于 BooleanVar,在下拉菜单中选择 truefalse。或者,要使用变量绑定,请输入 $,然后从列表中选择变量绑定。通过在 BooleanVar 文本区域中输入美元符号添加绑定变量时,将显示可用的布尔变量以供选择。
    3. 对于 objectVar,按照以下格式输入用大括号和引号括起来的值:{"bkix":"bkix":}
    4. objectVar 将传递到云模板,并且可以通过不同的方式使用,具体取决于云模板。允许 JSON 对象使用字符串格式,您可以在键-值表中以逗号分隔值的形式添加键-值对。可以为 JSON 对象输入纯文本,也可以输入键-值对作为 JSON 的常规 stringified 格式。
    5. 对于 arrayVar,按照以下格式将逗号分隔输入值作为数组输入:["1","2"]
  8. 在管道中,可以将输入参数绑定到数组。
    1. 单击输入选项卡。
    2. 输入输入的名称。例如,arrayInput
    3. 参数和值表中,单击 arrayVar,然后输入 ${input.arrayInput}
    4. 保存并启用管道后,当管道运行时,必须提供一个数组输入值。例如,输入 ["1","2"],然后单击运行

现在,您已了解如何在 Code Stream 管道云模板任务的云模板中使用美元符号 ($) 变量绑定。

如何在管道运行时将参数传递到管道

您可以将输入参数添加到管道,使 Code Stream 将其传递到管道。当管道运行时,用户必须键入输入参数的值。将输出参数添加到管道中,管道任务可以使用任务中的输出值。 Code Stream 支持通过多种方式使用参数,以满足您的管道需求。

例如,要在管道运行 REST 任务时提示用户输入其 Git 服务器的 URL,您可以将 REST 任务绑定到 Git 服务器 URL。

要创建变量绑定,请将 URL 绑定变量添加到 REST 任务。当管道运行并到达 REST 任务时,用户必须输入 Git 服务器的 URL。下面介绍了如何创建绑定:

  1. 在管道中,单击输入选项卡。
  2. 要设置参数,请对自动插入参数单击 Git

    此时将显示 Git 参数列表,其中包括 GIT_SERVER_URL。如果必须使用 Git 服务器 URL 的默认值,请编辑此参数。

  3. 单击型号,然后单击 REST 任务。
  4. 任务选项卡的 URL 区域中输入 $,然后选择输入GIT_SERVER_URL

    通过在 URL 文本区域中输入美元符号添加绑定变量并选择输入时,将显示可用的 Git 输入参数以供选择。

    条目类似于:${input.GIT_SERVER_URL}

  5. 要验证任务的变量绑定完整性,请单击验证任务

    Code Stream 指示任务验证成功。

  6. 当管道运行 REST 任务时,用户必须输入 Git 服务器的 URL。否则,任务将无法结束运行。

如何通过创建输入参数和输出参数来绑定两个管道任务

将两个任务绑定在一起时,必须将绑定变量添加到接收任务的输入配置中。然后,当管道运行时,用户将绑定变量替换为所需的输入。

要将管道任务绑定在一起,请在输入参数和输出参数中使用美元符号变量 ($)。以下示例展示了如何执行此操作。

假设您需要管道在 REST 任务中调用 URL 并输出响应。要调用 URL 并输出响应,需要在 REST 任务中同时包括输入参数和输出参数。此外,还需要可以批准该任务的用户,并包括用户操作任务,以便其他用户可以在管道运行时进行批准。此示例显示了如何在输入和输出参数中使用表达式,并使管道等待任务的批准。

  1. 在管道中,单击输入选项卡。

    管道上的输入选项卡显示 Gerrit、Git 和 Docker 输入参数选项,并列出每种选项的可用参数。

  2. 自动插入参数保留为
  3. 单击添加,然后输入参数名称、值和说明,然后单击确定。例如:
    1. 输入 URL 名称。
    2. 输入值:{Stage0.Task3.input.http://www.docs.vmware.com}
    3. 输入说明。
  4. 单击输出选项卡和添加,然后输入输出参数的名称和映射。

    在管道上的输出选项卡上,可以添加输出参数,并从显示的列表中选择 REST 响应参数。

    1. 输入唯一的输出参数名称。
    2. 单击引用区域,然后输入 $
    3. 在选项弹出时选择相应的选项,以输入任务输出映射。依次选择 Stage0Task3输出,再选择 responseCode。然后单击确定

      添加输出参数后,输出选项卡显示添加的参数的名称及其在管道阶段和任务中的引用。

  5. 保存管道。
  6. 操作菜单中,单击运行
  7. 单击操作 > 查看执行
  8. 单击管道执行,然后查看您定义的输入参数和输出参数。

    管道执行显示 URL 输入参数以及输入的 URL、响应输出参数以及所选择的响应代码。

  9. 要批准管道,请单击用户操作,然后在活动项选项卡上查看批准列表。或者,留在“执行”中,单击任务,然后单击批准
  10. 要启用批准拒绝按钮,请单击执行旁边的复选框。
  11. 要查看详细信息,请展开下拉箭头。
  12. 要批准任务,请单击批准,输入原因,然后单击确定

    有关用户操作的详细信息显示批准请求者和请求时间、要求的审批者以及批准过期时间。

  13. 单击执行并观察管道是否继续运行。

    批准用户操作后,管道将继续运行,并且管道执行上的状态指示“正在运行”。

  14. 如果管道失败,请更正所有错误,然后保存管道并再次运行。

    管道完成时,管道执行上的状态会指示“已完成”。

如何了解有关变量和表达式的更多信息

要查看有关在绑定管道任务时使用变量和表达式的详细信息,请参见在 Code Stream 中绑定管道任务时可以使用哪些变量和表达式

要了解如何将管道任务输出与条件变量绑定结合使用,请参见如何在条件任务中使用变量绑定来运行或停止 Code Stream 中的管道