File tree Expand file tree Collapse file tree 3 files changed +33
-0
lines changed Expand file tree Collapse file tree 3 files changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -53,6 +53,17 @@ data "aws_iam_policy_document" "lambda_policy_doc" {
53
53
" *"
54
54
]
55
55
}
56
+ statement {
57
+ actions = [
58
+ " codepipeline:PutJobSuccessResult" ,
59
+ " codepipeline:PutJobFailureResult"
60
+ ]
61
+
62
+ resources = [
63
+ var . codepipeline_arn
64
+ ]
65
+ }
66
+
56
67
}
57
68
58
69
resource "aws_iam_role_policy" "this" {
Original file line number Diff line number Diff line change 17
17
except :
18
18
raise
19
19
20
+ try :
21
+ codepipeline = boto3 .client (
22
+ 'codepipeline'
23
+ )
20
24
21
25
def getAsg (name ):
22
26
try :
@@ -66,6 +70,19 @@ def replaceInstances(idList):
66
70
while not isAsgHealthy (getAsg (ASGNAME )) and len (getAsgInstances (getAsg (ASGNAME ))) == targetNum :
67
71
time .sleep (1 )
68
72
73
+ def putJobSuccess (event )
74
+ response = codepipeline .put_job_success_result (
75
+ jobId = event ['CodePipeline.job' ].id
76
+ )
77
+
78
+ def putJobFailure (event , message )
79
+ response = codepipeline .put_job_failure_result (
80
+ jobId = event ['CodePipeline.job' ].id ,
81
+ failureDetails = {
82
+ 'type' : 'JobFailed' ,
83
+ 'message' : message
84
+ }
85
+ )
69
86
70
87
def handler (event , context ):
71
88
logger .debug ('## ENVIRONMENT VARIABLES' )
@@ -82,6 +99,7 @@ def handler(event, context):
82
99
logger .info (
83
100
'Done! All instances have been replaced and are marked as healthy'
84
101
)
102
+ putJobSuccess (event )
85
103
return {
86
104
'statusCode' : 200 ,
87
105
'body' : json .dumps ('Done! All instances have been replaced and are marked as healthy' )
Original file line number Diff line number Diff line change @@ -27,5 +27,9 @@ variable "asg_name" {
27
27
variable "tags" {
28
28
type = map
29
29
description = " Map of tags that should be added to stuff"
30
+ }
30
31
32
+ variable "codepipeline_arn" {
33
+ type = string
34
+ description = " ARN of the codepipeline we are interacting with. * will work for all"
31
35
}
You can’t perform that action at this time.
0 commit comments