View a markdown version of this page

依排程啟動管道 - AWS CodePipeline

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

依排程啟動管道

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

建立排程管道啟動的 EventBridge 規則 (主控台)

以排程做為事件來源來建立 EventBridge 規則
  1. 前往 https://console.aws.amazon.com/events/ 開啟 Amazon EventBridge 主控台。

  2. 在導覽窗格中,選擇規則。

  3. 選擇建立規則,然後在規則詳細資訊下,選擇排程。

  4. 使用固定頻率或運算式來設定排程。如需詳細資訊,請參閱適用於規則的排程運算式。

  5. 在 Targets (目標) 中,選擇 CodePipeline。

  6. 輸入此排程管道執行的管道 ARN。

    注意

    您可以在 主控台的設定下找到管道 ARN。請參閱 檢視管道 ARN 和服務角色 ARN (主控台)。

  7. 選擇下列其中一項來建立或指定 IAM 服務角色,讓 EventBridge 有權叫用與 EventBridge 規則相關聯的目標 (在此情況下,目標是 CodePipeline)。

    • 選擇為此特定資源建立新角色,以建立授予 EventBridge 啟動管道執行許可的服務角色。

    • 選擇使用現有角色來輸入服務角色,以授予 EventBridge 啟動管道執行的許可。

  8. 選擇設定詳細資訊。

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

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

建立排程管道啟動的 EventBridge 規則 (CLI)

若要使用 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
  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。

      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。

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:111122223333: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