CodeCommit ソースに対する EventBridge ルールを作成する (CloudFormation テンプレート)
CloudFormation を使用してルールを作成するには、ここで示しているようにテンプレートを更新します。
パイプラインの CloudFormation テンプレートを更新し、EventBridge ルールを作成する
-
テンプレートの
Resourcesで、AWS::IAM::RoleCloudFormation リソースを使用して、イベントにパイプラインの開始を許可する IAM ロールを設定します。このエントリによって、2 つのポリシーを使用するロールが作成されます。-
最初のポリシーでは、ロールを引き受けることを許可します。
-
2 つめのポリシーでは、パイプラインを開始するアクセス権限が付与されます。
この変更を行う理由
AWS::IAM::Roleリソースを追加すると、CloudFormation は EventBridge に対してアクセス許可を作成できるようになります。このリソースは CloudFormation スタックに追加されます。 -
-
テンプレートの
Resourcesで、AWS::Events::RuleCloudFormation リソースを使用して EventBridge ルールを追加します。このイベントパターンは、リポジトリへの変更のプッシュをモニタリングするイベントを作成します。EventBridge でリポジトリの状態の変更が検出されると、ルールはターゲットパイプラインでStartPipelineExecutionを呼び出します。この変更を行う理由
AWS::Events::Ruleリソースを追加すると、CloudFormation でイベントを作成できるようになります。このリソースは CloudFormation スタックに追加されます。 -
(オプション) 特定のイメージ ID のソースオーバーライドを使用して入力トランスフォーマーを設定するには、次の YAML スニペットを使用します。次の例では、以下のオーバーライドを設定します。
-
actionNameは (この例ではSource)、ソースイベントから派生したものではなく、パイプラインの作成時に定義された動的な値です。 -
revisionTypeは (この例ではCOMMIT_ID)、ソースイベントから派生したものではなく、パイプラインの作成時に定義された動的な値です。 -
revisionValueは (この例では <revisionValue>)、ソースイベント変数から派生しています。 -
BranchNameおよびValueの出力変数が指定されます。
Rule: my-rule Targets: - Id: MyTargetId Arn: pipeline-ARN InputTransformer: sourceRevisions: actionName:SourcerevisionType:COMMIT_IDrevisionValue: <revisionValue> variables: - name:BranchNamevalue:value -
-
更新したテンプレートをローカルコンピュータに保存し、CloudFormation コンソールを開きます。
-
スタックを選択し、[既存スタックの変更セットの作成] を選択します。
-
テンプレートをアップロードし、CloudFormation に示された変更を表示します。これらがスタックに加えられる変更です。新しいリソースがリストに表示されています。
-
[実行] を選択してください。
パイプラインの PollForSourceChanges パラメータを編集するには
重要
多くの場合、パイプラインの作成時に PollForSourceChanges パラメータはデフォルトで true になります。イベントベースの変更検出を追加する場合は、このパラメータを出力に追加する必要があります。ポーリングを無効にするには、このパラメータを false に設定します。そうしないと、1 つのソース変更に対してパイプラインが 2 回起動されます。詳細については、「PollForSourceChanges パラメータの有効な設定」を参照してください
-
テンプレートで、
PollForSourceChangesをfalseに変更します。パイプライン定義にPollForSourceChangesが含まれていなかった場合は、追加してfalseに設定します。この変更を行う理由 このパラメータを
falseに変更すると、定期的チェックがオフになるため、イベントベースの変更検出のみ使用することができます。