按计划启动管道 - Amazon CodePipeline
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

按计划启动管道

您可以在中设置规则 EventBridge 以按计划启动管道。

创建安排管道启动的 EventBridge 规则(控制台)

创建以时间表作为事件源的 EventBridge 规则
  1. 打开 Amazon EventBridge 控制台,网址为https://console.aws.amazon.com/events/

  2. 在导航窗格中,选择规则

  3. 选择创建规则,然后在规则详细信息下面选择计划

  4. 使用固定速率或表达式设置计划。有关更多信息,请参阅规则的计划表达式

  5. 在 “目标” 中,选择CodePipeline

  6. 为该计划输入管道执行的管道 ARN。

    注意

    您可以在控制台的设置下找到管道 ARN。请参阅 查看管道 ARN 和服务角色 ARN(控制台)

  7. 选择以下选项之一来创建或指定一个 IAM 服务角色,该角色 EventBridge 授予调用与您的 EventBridge 规则关联的目标的权限(在本例中,目标是 CodePipeline)。

    • 选择 “为此特定资源创建新角色”,创建一个服务角色来授予启动管道执行的 EventBridge权限。

    • 选择 “使用现有角色” 以输入服务角色,该角色授予启动管道执行的 EventBridge 权限。

  8. 选择 Configure details(配置详细信息)

  9. 配置规则详细信息页上,输入规则的名称和描述,然后选择状态以启用该规则。

  10. 如果您对规则满意,请选择 Create rule

创建安排管道启动的 EventBridge 规则 (CLI)

要使用创建规则,请调用put-rule命令,指定: Amazon CLI

  • 唯一地标识创建的规则的名称。在您创建的与 Amazon 账户 CodePipeline 关联的所有管道中,此名称必须是唯一的。

  • 规则的计划表达式。

创建以时间表作为事件源的 EventBridge 规则
  1. 调用 put-rule 命令并包含 --name --schedule-expression 参数。

    示例:

    以下示例命令用于--schedule-expression创建名为按计划MyRule2 EventBridge 进行筛选的规则。

    aws events put-rule --schedule-expression 'cron(15 10 ? * 6L 2002-2005)' --name MyRule2
  2. 要添加 CodePipeline 为目标,请调用put-targets命令并添加以下参数:

    • --rule 参数与您使用 put-rule 创建的 rule_name 结合使用。

    • --targets 参数与目标列表中该目标的列表 Id 以及目标管道的 ARN 结合使用。

    以下示例命令为名为 MyCodeCommitRepoRule 的规则指定此内容,目标 Id 由数字 1 组成,这指示此内容位于规则的目标列表中,而这是目标 1。示例命令还为管道指定一个示例 ARN。管道在存储库中发生更改时启动。

    aws events put-targets --rule MyCodeCommitRepoRule --targets Id=1,Arn=arn:aws:codepipeline:us-west-2:80398EXAMPLE:TestPipeline
  3. 授 EventBridge 予使用调 CodePipeline 用规则的权限。有关更多信息,请参阅使用适用于 Amazon EventBridge 的基于资源的政策。

    1. 使用以下示例创建信任策略以允许 EventBridge 代入服务角色。将它命名为 trustpolicyforEB.json

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 使用以下命令创建 Role-for-MyRule 角色并附加信任策略。

      aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json
    3. 为名为 MyFirstPipeline 的管道创建权限策略 JSON,如此示例中所示。将权限策略命名为 permissionspolicyforEB.json

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:80398EXAMPLE:MyFirstPipeline" ] } ] }
    4. 使用以下命令将新的 CodePipeline-Permissions-Policy-for-EB 权限策略附加到您创建的 Role-for-MyRule 角色。

      aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforCWE.json