按计划启动管道
您可以在 EventBridge 中设置一个规则以按计划启动管道。
创建用于按计划启动管道的 EventBridge 规则(控制台)
创建 EventBridge 规则并将计划作为事件源
打开位于 https://console.aws.amazon.com/events/
的 Amazon EventBridge 控制台。 -
在导航窗格中,选择规则。
-
选择创建规则,然后在规则详细信息下面选择计划。
-
使用固定速率或表达式设置计划。有关更多信息,请参阅规则的计划表达式。
-
在目标中,选择 CodePipeline。
-
为该计划输入管道执行的管道 ARN。
注意
您可以在控制台的设置下找到管道 ARN。请参阅查看管道 ARN 和服务角色 ARN(控制台)。
-
选择以下选项之一以创建或指定一个 IAM 服务角色,该角色向 EventBridge 授予权限以调用与 EventBridge 规则关联的目标(在此示例中,目标为 CodePipeline)。
-
选择为此特定资源创建新角色以创建一个服务角色,该角色为 EventBridge 授予权限以启动管道执行。
-
选择使用现有角色以输入一个服务角色,该角色为 EventBridge 授予权限以启动管道执行。
-
-
选择 Configure details(配置详细信息)。
-
在配置规则详细信息页上,输入规则的名称和描述,然后选择状态以启用该规则。
-
如果您对规则满意,请选择 Create rule。
创建用于按计划启动管道的 EventBridge 规则 (CLI)
要使用 AWS CLI 创建规则,请调用 put-rule 命令,并指定:
-
唯一地标识创建的规则的名称。在使用 CodePipeline 创建的与您的 AWS 账户关联的所有管道中,该名称必须是唯一的。
-
规则的计划表达式。
创建 EventBridge 规则并将计划作为事件源
-
调用 put-rule 命令并包含
--name和--schedule-expression参数。示例:
以下示例命令使用 --schedule-expression 创建名为
MyRule2的规则以按计划筛选 EventBridge。aws events put-rule --schedule-expression 'cron(15 10 ? * 6L 2002-2005)' --name MyRule2 -
要将 CodePipeline 添加为目标,请调用 put-targets 命令并包含以下参数:
-
--rule参数与您使用rule_name创建的 put-rule 结合使用。 -
--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 -
-
为 EventBridge 授予权限以使用 CodePipeline 调用规则。有关更多信息,请参阅针对 Amazon EventBridge 使用基于资源的策略。
-
使用以下示例创建信任策略以允许 EventBridge 代入服务角色。将它命名为
trustpolicyforEB.json。 -
使用以下命令创建
Role-for-MyRule角色并附加信任策略。aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json -
为名为
MyFirstPipeline的管道创建权限策略 JSON,如此示例中所示。将权限策略命名为permissionspolicyforEB.json。 -
使用以下命令将新的
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
-