Create an EventBridge rule for an Amazon ECR source (CloudFormation template)
To use CloudFormation to create a rule, use the template snippet as shown here.
To update your pipeline CloudFormation template and create EventBridge rule
-
In the template, under
Resources, use theAWS::IAM::RoleCloudFormation resource to configure the IAM role that allows your event to start your pipeline. This entry creates a role that uses two policies:-
The first policy allows the role to be assumed.
-
The second policy provides permissions to start the pipeline.
Why am I making this change? You must create a role that can be assumed by EventBridge to start an execution in our pipeline.
-
-
In the template, under
Resources, use theAWS::Events::RuleCloudFormation resource to add an EventBridge rule for the Amazon ECR source. This event pattern creates an event that monitors commits to your repository. When EventBridge detects a repository state change, the rule invokesStartPipelineExecutionon your target pipeline.Why am I making this change? You must create an event with a rule that specifies how an image push must be made, and a target that names the pipeline to be started by the event.
This snippet uses an image named
eb-testwith a tag oflatest.Note
To view the full event pattern supported for Amazon ECR events, see Amazon ECR Events and EventBridge or Amazon Elastic Container Registry Events.
-
(Optional) To configure an input transformer with source overrides for a specific image ID, use the following YAML snippet. The following example configures an override where:
-
The
actionName,Sourcein this example, is the dynamic value, defined at pipeline creation, not derived from the source event. -
The
revisionType,IMAGE_DIGESTin this example, is the dynamic value, defined at pipeline creation, not derived from the source event. -
The
revisionValue, <revisionValue> in this example, is derived from the source event variable.
--- Rule: my-rule Targets: - Id: MyTargetId Arn: ARN InputTransformer: InputPathsMap: revisionValue: "$.detail.image-digest" InputTemplate: sourceRevisions: actionName:SourcerevisionType:IMAGE_DIGESTrevisionValue: '<revisionValue>' -
-
Save the updated template to your local computer, and then open the CloudFormation console.
-
Choose your stack, and then choose Create Change Set for Current Stack.
-
Upload the template, and then view the changes listed in CloudFormation. These are the changes to be made to the stack. You should see your new resources in the list.
-
Choose Execute.