按计划启动管道 - AWS CodePipeline

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

按计划启动管道

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

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

创建以时间表作为事件源的 EventBridge 规则
  1. 打开亚马逊 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命令,指定: AWS CLI

  • 唯一地标识创建的规则的名称。在您创建的与 AWS 账户 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. 授 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