in templates/custom-resources/lex-manager.py [0:0]
def handler(event, context):
""" CloudFormation Custom Resource Lambda Handler
"""
import cfnresponse
logger.info('event: {}'.format(cfnresponse.json_dump_format(event)))
request_type = event.get('RequestType')
resource_properties = event.get('ResourceProperties')
response_status = cfnresponse.SUCCESS
response = {}
response_id = event.get('RequestId')
reason = request_type
error = ''
name_prefix = resource_properties.get('NamePrefix')
should_delete = resource_properties.get('ShouldDelete', True)
bot_definition = read_bot_definition_file(BOT_DEFINITION_FILENAME)
bot_definition_prefix = add_prefix(bot_definition, name_prefix)
if (request_type in ['Create', 'Update']):
try:
response_import = import_bot(bot_definition=bot_definition_prefix)
response['BotName'] = response_import['bot']['name']
except Exception as e:
error = 'failed to {} bot: {}'.format(request_type, e)
pass
if (request_type == 'Delete' and should_delete != 'false'):
try:
bot_definition = read_bot_definition_file()
bot_name = name_prefix + bot_definition['bot']['name']
delete_bot(bot_name)
except Exception as e:
error = 'failed to delete bot: {}'.format(e)
pass
if error:
logger.error(error)
response_status = cfnresponse.FAILED
reason = error
if bool(context):
cfnresponse.send(
event,
context,
response_status,
response,
response_id,
reason
)