

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

# 按计划启动管道
<a name="pipelines-trigger-source-schedule"></a>

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

## 创建安排管道启动的 EventBridge 规则（控制台）
<a name="pipelines-trigger-source-schedule-console"></a>

**创建以时间表作为事件源的 EventBridge 规则**

1. 打开 Amazon EventBridge 控制台，网址为[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)。

1. 在导航窗格中，选择**规则**。

1. 选择**创建规则**，然后在**规则详细信息**下面选择**计划**。

1. 使用固定速率或表达式设置计划。有关更多信息，请参阅[规则的计划表达式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html)。

1. 在**目标**中，选择**CodePipeline**。

1. 为该计划输入管道执行的管道 ARN。
**注意**  
您可以在控制台的**设置**下找到管道 ARN。请参阅[查看管道 ARN 和服务角色 ARN（控制台）](pipelines-settings-console.md)。

1. 选择以下选项之一来创建或指定一个 IAM 服务角色，该角色 EventBridge 授予调用与您的 EventBridge 规则关联的目标的权限（在本例中，目标是 CodePipeline）。
   + 选择 “**为此特定资源创建新角色**”，创建一个服务角色来授予启动管道执行的 EventBridge权限。
   + 选择**使用现有角色**输入服务角色，该角色授予启动管道执行的 EventBridge 权限。

1. 选择 **Configure details（配置详细信息）**。

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

1. 如果您对规则满意，请选择 **Create rule**。

## 创建安排管道启动的 EventBridge 规则 (CLI)
<a name="pipelines-trigger-source-schedule-cli"></a>

 

要使用创建规则，请调用**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
   ```

1. 要添加 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
   ```

1. 授 EventBridge 予使用调 CodePipeline 用规则的权限。有关更多信息，请参阅[使用适用于 Amazon EventBridge 的基于资源的政策。](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html)

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

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "events.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. 使用以下命令创建 `Role-for-MyRule` 角色并附加信任策略。

      ```
      aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json
      ```

   1. 为名为 `MyFirstPipeline` 的管道创建权限策略 JSON，如此示例中所示。将权限策略命名为 `permissionspolicyforEB.json`。

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "codepipeline:StartPipelineExecution"
                  ],
                  "Resource": [
                      "arn:aws:codepipeline:us-west-2:111122223333:MyFirstPipeline"
                  ]
              }
          ]
      }
      ```

------

   1. 使用以下命令将新的 `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
      ```