def handler()

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
    )