@@ -24,7 +24,7 @@ resource "aws_codepipeline" "codepipeline" {
24
24
configuration = {
25
25
S3Bucket = " ${ var . s3_bucket } "
26
26
S3ObjectKey = " ${ var . env_name } /source_artifacts.zip"
27
- PollForSourceChanges = true
27
+ PollForSourceChanges = false
28
28
}
29
29
}
30
30
}
@@ -137,3 +137,27 @@ resource "aws_iam_role_policy" "codepipeline_policy" {
137
137
policy = data. aws_iam_policy_document . codepipeline_role_policy . json
138
138
}
139
139
140
+ resource "aws_cloudwatch_event_rule" "trigger_pipeline" {
141
+ name = " ${ local . codepipeline_name } -trigger"
142
+ description = " Trigger ${ local . codepipeline_name } "
143
+
144
+ event_pattern = jsonencode ({
145
+ " source" : [" aws.s3" ],
146
+ " detail-type" : [" AWS API Call via CloudTrail" ],
147
+ " detail" : {
148
+ " eventSource" : [" s3.amazonaws.com" ],
149
+ " eventName" : [" PutObject" , " CompleteMultipartUpload" , " CopyObject" ],
150
+ " requestParameters" : {
151
+ " bucketName" : [" ${ var . s3_bucket } " ],
152
+ " key" : [" ${ var . env_name } /source_artifacts.zip" ]
153
+ }
154
+ }
155
+ })
156
+ }
157
+
158
+ resource "aws_cloudwatch_event_target" "trigger_pipeline" {
159
+ rule = aws_cloudwatch_event_rule. trigger_pipeline . name
160
+ target_id = " ${ local . codepipeline_name } "
161
+ arn = aws_codepipeline. codepipeline . arn
162
+ role_arn = aws_iam_role. codepipeline_role . arn
163
+ }
0 commit comments