配置任务

本文档介绍了如何在 Cloud Deploy 中配置任务。任务是一种工作单元,可用作部署钩子,用于部署验证部署分析,或用于自定义目标类型中的自定义渲染或自定义部署。

您可以配置交付流水线上的任务(作为策略的一部分)或自定义目标类型的呈现或部署。

借助任务,您可以通过将系统参数纳入任务配置中来使用这些参数。

定义任务

您可以在交付流水线配置中定义任务,也可以将其定义为自定义目标类型定义的一部分。以下 YAML 显示了这两种情况下使用的 task stanza:

  task:
    type: container
    image: IMAGE
    command: [COMMANDS_TO_RUN]
    args: [LIST_OF_ARGS]
    env:
    - KEY1:VAL1
    - KEY2:VAL2
    ...

对于 task 配置:

  • type

    指定正在配置的任务类型。仅支持 container

  • image

    是容器映像的路径。

  • command

    是要在容器上运行的命令。

  • args

    command 的实参集合。

  • env

    是要提供给正在运行的容器的环境变量的集合。

作为任务环境变量的系统参数

Cloud Deploy 提供了一些系统生成的参数,您可以使用 container 任务中的 env 字段将这些参数用作任务中的环境变量。模板化参数可以出现在 env 映射条目的键或值字段中。

以下是几个示例用例:

  • 以环境变量的形式传入 Cloud Run 服务名称、服务网址和修订版本名称。

    task:
      type: container
      image: my-image
      command: ["/bin/bash"]
      env:
      - RUN_SERVICE_NAME : "${{ render.metadata.cloud_run.service.name }}"
      - RUN_SERVICE_URL: "${{ rollout.metadata.cloud_run.service_url }}"
      - RUN_REVISION_NAME: "${{ render.metadata.cloud_run.revision.name }}"
    
  • 在单个条目中使用多个参数。

    task:
      type: container
      image: my-image
      command: ["/bin/bash"]
      env:
      - DEPLOY_PARAMS_KEY : "${{ deploy_params['FOO'] }}-with-${{ deploy_params['BAR'] }}"
      - "${{ project.id }}_${{ location }}" : "${{