Skip to content

Commit b714e37

Browse files
committed
Update data.tf and main.tf
1 parent bc7b4f6 commit b714e37

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

modules/ci-cd-codepipeline/data.tf

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ data "aws_iam_policy_document" "codepipeline_assume_role_policy" {
1515
actions = ["sts:AssumeRole"]
1616
principals {
1717
type = "Service"
18-
identifiers = ["codepipeline.amazonaws.com", "codedeploy.amazonaws.com"]
18+
identifiers = ["codepipeline.amazonaws.com", "codedeploy.amazonaws.com", "events.amazonaws.com"]
1919
}
2020
}
2121
}
@@ -31,6 +31,12 @@ data "aws_iam_policy_document" "codepipeline_role_policy" {
3131
]
3232
resources = ["*"]
3333
}
34+
statement {
35+
actions = [
36+
"codepipeline:StartPipelineExecution"
37+
]
38+
resources = ["*"]
39+
}
3440
statement {
3541
actions = ["codestar-connections:UseConnection"]
3642
resources = ["*"]

modules/ci-cd-codepipeline/main.tf

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ resource "aws_codepipeline" "codepipeline" {
2424
configuration = {
2525
S3Bucket = "${var.s3_bucket}"
2626
S3ObjectKey = "${var.env_name}/source_artifacts.zip"
27-
PollForSourceChanges = true
27+
PollForSourceChanges = false
2828
}
2929
}
3030
}
@@ -137,3 +137,27 @@ resource "aws_iam_role_policy" "codepipeline_policy" {
137137
policy = data.aws_iam_policy_document.codepipeline_role_policy.json
138138
}
139139

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

Comments
 (0)