の作成 CloudWatch Amazon ECR ソース(AWS CloudFormationテンプレート) - AWS CodePipeline

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

の作成 CloudWatch Amazon ECR ソース(AWS CloudFormationテンプレート)

AWS CloudFormation を使用してルールを作成するには、以下に示すテンプレートスニペットを使用します。

パイプラインを更新するにはAWS CloudFormationテンプレートを作成して作成する CloudWatch イベントルール
  1. テンプレートの Resources で、AWS::IAM::RoleAWS CloudFormation リソースを使用して、イベントにパイプラインの開始を許可する IAM ロールを設定します。このエントリによって、2 つのポリシーを使用するロールが作成されます。

    • 最初のポリシーでは、ロールを引き受けることを許可します。

    • 2 つめのポリシーでは、パイプラインを開始するアクセス権限が付与されます。

    この変更を行う理由 引き受けることができるロールを作成する必要があります。 CloudWatch パイプラインで実行を開始するためのイベント。

    YAML
    AmazonCloudWatchEventRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - events.amazonaws.com Action: sts:AssumeRole Path: / Policies: - PolicyName: cwe-pipeline-execution PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: codepipeline:StartPipelineExecution Resource: !Sub arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}
    JSON
    { "AmazonCloudWatchEventRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }, "Path": "/", "Policies": [ { "PolicyName": "cwe-pipeline-execution", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codepipeline:StartPipelineExecution", "Resource": { "Fn::Sub": "arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}" } } ] } } ] } } } ...
  2. テンプレートでは、Resourcesで、AWS::Events::Rule AWS CloudFormation追加するためのリソース CloudWatch Amazon ECR ソースのイベントルール。このイベントパターンは、リポジトリーへのコミットを監視するイベントを作成します。メトリック CloudWatch イベントがリポジトリの状態の変更を検出し、ルールはStartPipelineExecutionターゲットのパイプライン上に設定します。

    この変更を行う理由 イメージプッシュを行う方法を指定するルールと、そのイベントによって開始されるパイプラインを指定するターゲットを持つイベントを作成する必要があります。

    このスニペットでは、latest のタグが付いた cwe-test というイメージを使用しています。

    YAML
    AmazonCloudWatchEventRule: Type: 'AWS::Events::Rule' Properties: EventPattern: detail: action-type: [PUSH] image-tag: [latest] repository-name: [cwe-test] result: [SUCCESS] detail-type: [ECR Image Action] source: [aws.ecr] Targets: - Arn: !Sub arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline} RoleArn: !GetAtt - AmazonCloudWatchEventRole - Arn Id: codepipeline-AppPipeline
    JSON
    { "AmazonCloudWatchEventRule": { "Type": "AWS::Events::Rule", "Properties": { "EventPattern": { "detail": { "action-type": [ "PUSH" ], "image-tag": [ "latest" ], "repository-name": [ "cwe-test" ], "result": [ "SUCCESS" ] }, "detail-type": [ "ECR Image Action" ], "source": [ "aws.ecr" ] }, "Targets": [ { "Arn": { "Fn::Sub": "arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}" }, "RoleArn": { "Fn::GetAtt": [ "AmazonCloudWatchEventRole", "Arn" ] }, "Id": "codepipeline-AppPipeline" } ] } } },
    注記

    Amazon ECR イベントでサポートされているイベントパターン全体を表示するには、[Amazon ECR Events と EventBridge] または [Amazon Elastic Container Registry Events] を参照してください。

  3. 更新したテンプレートをローカルコンピュータに保存し、AWS CloudFormation コンソールを開きます。

  4. スタックを選択し、[既存スタックの変更セットの作成] を選択します。

  5. テンプレートをアップロードし、AWS CloudFormation に示された変更を表示します。これらがスタックに加えられる変更です。新しいリソースがリストに表示されています。

  6. [Execute] (実行) を選択します。