in source/solution_deploy/source/createCustomAction.py [0:0]
def lambda_handler(event, context):
response_data = {}
physical_resource_id = ''
err_msg = ''
properties = event.get('ResourceProperties', {})
logger_obj.info(json.dumps(properties))
account_id = boto3.client('sts').get_caller_identity()['Account']
customAction = CustomAction(account_id, properties)
physical_resource_id = 'CustomAction' + properties.get('Id', 'ERROR')
try:
status = 'ERROR'
if event['RequestType'].upper() == 'CREATE' or event['RequestType'].upper() == 'UPDATE':
logger_obj.info(event['RequestType'].upper() + ': ' + physical_resource_id)
custom_action_result = customAction.create()
if custom_action_result == 'FAILED':
status = 'FAILED'
else:
response_data['Arn'] = custom_action_result
status = 'SUCCESS'
elif event['RequestType'].upper() == 'DELETE':
logger_obj.info('DELETE: ' + physical_resource_id)
status = customAction.delete()
else:
err_msg = 'Invalid RequestType: ' + event['RequestType']
logger_obj.error(err_msg)
cloudformation = CfnResponse(
event,
context,
status,
response_data,
physical_resource_id,
err_msg
)
cloudformation.send()
return
except Exception as err:
logger_obj.error('An exception occurred: ')
err_msg = err.__class__.__name__ + ': ' + str(err)
logger_obj.error(err_msg)