in typescript/custom-resource/custom-resource-handler.py [0:0]
def main(event, context):
import logging as log
import cfnresponse
log.getLogger().setLevel(log.INFO)
# This needs to change if there are to be multiple resources in the same stack
physical_id = 'TheOnlyCustomResource'
try:
log.info('Input event: %s', event)
# Check if this is a Create and we're failing Creates
if event['RequestType'] == 'Create' and event['ResourceProperties'].get('FailCreate', False):
raise RuntimeError('Create failure requested')
# Do the thing
message = event['ResourceProperties']['Message']
attributes = {
'Response': 'You said "%s"' % message
}
cfnresponse.send(event, context, cfnresponse.SUCCESS, attributes, physical_id)
except Exception as e:
log.exception(e)
# cfnresponse's error message is always "see CloudWatch"
cfnresponse.send(event, context, cfnresponse.FAILED, {}, physical_id)