in templates/custom-resources/codebuild-start.py [0:0]
def handler(event, context):
logger.info('event: {}'.format(cfnresponse.json_dump_format(event)))
request_type = event.get('RequestType')
resource_properties = event.get('ResourceProperties')
response = {}
response_status = cfnresponse.SUCCESS
request_id = ''
reason = ''
if (request_type in ['Create', 'Update']):
try:
start_build_response = start_build(resource_properties)
logger.info(
'start_build response: {}'.format(
cfnresponse.json_dump_format(start_build_response)
)
)
# only return specific fields to prevent "response object is too long" errors
response = {
'build_id': start_build_response['build']['id'],
'project_name': start_build_response['build']['projectName'],
'arn': start_build_response['build']['arn'],
}
response_status = cfnresponse.SUCCESS
request_id = start_build_response['ResponseMetadata']['RequestId']
reason = 'Create'
except Exception as e:
error = 'failed to start build: {}'.format(e)
logger.error(error)
response_status = cfnresponse.FAILED
reason = error
pass
cfnresponse.send(
event,
context,
response_status,
response,
request_id,
reason
)