in source/lambda_custom_resource.py [0:0]
def create(event, context):
"""
Runs on Stack Creation.
As there is no real 'resource', and it will never be replaced,
PhysicalResourceId is set to a hash of StackId and LogicalId.
"""
s = '%s-%s' % (event.get('StackId'), event.get('LogicalResourceId'))
physical_resource_id = md5(s.encode('UTF-8')).hexdigest()
if event.get('ResourceType') == 'Custom::CWEventPermissions':
cwe = CWEventPermissions(event, logger)
logger.info("Create CW Event Bus Policy - CR Router")
response = cwe.create_permissions()
logger.info("Response from Create Policy CR Handler")
logger.info(response)
return physical_resource_id, response
elif event.get('ResourceType') == 'Custom::ConsoleDeploy':
cd = S3ConsoleDeploy(event, logger)
logger.info("Deploy console content to s3")
cd.upload_console_files()
cd.upload_config_file()
response = None
return physical_resource_id, response
elif event.get('ResourceType') == 'Custom::GetPrefixListArns':
converter_client = PrefixListIdToArnConverter(event, logger)
response = converter_client.get_prefix_list_arns()
logger.info("Response from Get Prefix List Arns - CR Handler")
logger.info(response)
return physical_resource_id, response
elif event.get('ResourceType') == 'Custom::SendCFNParameters':
send = CFNMetrics(event, logger)
send.send_metrics()
response = None
return physical_resource_id, response
else:
logger.error('No valid ResourceType found! Resource type \"'+event['ResourceType']+'\" received', exc_info=True)
raise Exception('No valid ResourceType found! Resource type \"'+event['ResourceType']+'\" received')