

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 依排程啟動管道
<a name="pipelines-trigger-source-schedule"></a>

您可以在 EventBridge 中設定規則，以排程啟動管道。

## 建立排程管道啟動的 EventBridge 規則 （主控台）
<a name="pipelines-trigger-source-schedule-console"></a>

**以排程做為事件來源來建立 EventBridge 規則**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**規則**。

1. 選擇**建立規則**，然後在**規則詳細資訊**下，選擇**排程**。

1. 使用固定頻率或運算式來設定排程。如需詳細資訊，請參閱[適用於規則的排程運算式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html)。

1. 在 **Targets (目標)** 中，選擇 **CodePipeline**。

1. 輸入此排程管道執行的管道 ARN。
**注意**  
您可以在 主控台**的設定**下找到管道 ARN。請參閱 [檢視管道 ARN 和服務角色 ARN （主控台）](pipelines-settings-console.md)。

1. 選擇下列其中一項來建立或指定 IAM 服務角色，讓 EventBridge 有權叫用與 EventBridge 規則相關聯的目標 （在此情況下，目標是 CodePipeline)。
   + 選擇**為此特定資源建立新角色**，以建立授予 EventBridge 啟動管道執行許可的服務角色。
   + 選擇**使用現有角色**來輸入服務角色，以授予 EventBridge 啟動管道執行的許可。

1. 選擇**設定詳細資訊**。

1. 在 **Configure rule details (設定規則詳細資訊)** 頁面上，輸入規則的名稱和描述，然後選擇 **State (狀態)** 啟用規則。

1. 如果您對此規則感到滿意，請選擇 **Create rule (建立規則)**。

## 建立排程管道啟動的 EventBridge 規則 (CLI)
<a name="pipelines-trigger-source-schedule-cli"></a>

 

若要使用 AWS CLI 建立規則，請呼叫 **put-rule**命令，並指定：
+ 可唯一識別您所建立規則的名稱。此名稱在您使用與 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
      ```