スケジュールに基づいたパイプラインの開始 - AWS CodePipeline

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

スケジュールに基づいたパイプラインの開始

EventBridge でルールを設定して、スケジュールに基づいてパイプラインを開始することができます。

パイプラインを開始するスケジュールの EventBridge ルールを作成する (コンソール)

スケジュールをイベントソースとする EventBridge ルールを作成するには
  1. Amazon EventBridge コンソール (https://console.aws.amazon.com/events/) を開きます。

  2. ナビゲーションペインで ルール] を選択します。

  3. [ルールの作成] を選択してから、[ルールの詳細] で [スケジュール] を選択します。

  4. 一定間隔または式を使用してスケジュールを設定します。詳細については、「ルールのスケジュール式」を参照してください。

  5. [ターゲット] で、[CodePipeline] を選択します。

  6. このスケジュールのパイプラインを実行するには、パイプライン ARN を入力します。

    注記

    パイプライン ARN は、コンソールの [設定] に表示されます。「パイプラインの ARN とサービスロール ARN (コンソール) を表示します。」を参照してください。

  7. 次のいずれかを選択して、EventBridge ルールに関連付けられたターゲットを呼び出すためのアクセス許可を EventBridge に与える IAM サービスロールを作成または指定します (この場合、ターゲットは 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 を使用して、スケジュールに従って EventBridge をフィルタ処理する MyRule2 という名前のルールを作成します。

    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 という名前を付けます。

      { "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. 次のコマンドを実行して、作成した Role-for-MyRule ロールに新しい CodePipeline-Permissions-Policy-for-EB アクセス権限ポリシーをアタッチします。

      aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforCWE.json