Skip to content

Commit 7079725

Browse files
committed
added update actions
1 parent 9af8b16 commit 7079725

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

custom-resource/index.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,29 @@ def configure_dlq(event):
3232

3333
aws_lambda = boto3.client("lambda")
3434
lambda_arn = event['ResourceProperties']['LambdaArn']
35-
dlq_arn = event['ResourceProperties']['DLQ']['DLQArn']
35+
dlq_arn = event['ResourceProperties']['DLQ']['DLQArn']
36+
3637
aws_lambda.update_function_configuration(
3738
FunctionName=lambda_arn,
3839
DeadLetterConfig={
3940
'TargetArn': dlq_arn
4041
},
4142
)
4243

44+
if event['RequestType'] == 'Update':
45+
print('updating dlq event source mapping...')
46+
# remove mapping and recreate it on update
47+
mappings = aws_lambda.list_event_source_mappings(
48+
FunctionName=lambda_arn,
49+
)["EventSourceMappings"]
50+
51+
for mapping in mappings:
52+
if mapping["EventSourceArn"] == dlq_arn:
53+
print('deleting previous dlq event source mapping...')
54+
aws_lambda.delete_event_source_mapping(UUID=mapping["UUID"])
55+
56+
time.sleep(15) # give the change a little time to propagate
57+
4358
# Create event source mapping
4459
aws_lambda.create_event_source_mapping(
4560
EventSourceArn=dlq_arn,
@@ -184,7 +199,8 @@ def update(self):
184199
err = self.delete()
185200
if err:
186201
raise Exception(err)
187-
202+
203+
time.sleep(15)
188204
return self.create()
189205

190206
@handle_exceptions
@@ -325,6 +341,7 @@ def update(self):
325341
err = self.delete()
326342
if err:
327343
raise Exception(err)
344+
time.sleep(15)
328345
return self.create()
329346

330347
@handle_exceptions
@@ -430,6 +447,7 @@ def update(self):
430447
err = self.delete()
431448
if err:
432449
raise Exception(err)
450+
time.sleep(15)
433451
return self.create()
434452

435453
@handle_exceptions

0 commit comments

Comments
 (0)