def handle_event()

in custom-resource-runtime/ec2-deployer/index.py [0:0]


def handle_event(event):
  # don't need to deploy if ResourceProperties haven't changed
  if (event['RequestType'] == 'Update' and event['OldResourceProperties'] == event['ResourceProperties']):
    print('Skipping deployment--ResourceProperties did not change.')
    return

  application_name = event['ResourceProperties'].get('applicationName')
  deployment_group_name = event['ResourceProperties'].get('deploymentGroupName')
  code_bucket_name = event['ResourceProperties'].get('codeS3BucketName')
  code_object_key = event['ResourceProperties'].get('codeS3ObjectKey')
  code_object_version = event['ResourceProperties'].get('codeS3ObjectVersion')

  print(f'Application Name: {application_name}')
  print(f'Deployment Group Name: {deployment_group_name}')
  print(f'Code Bucket Name: {code_bucket_name}')
  print(f'Code Object Key: {code_object_key}')
  print(f'Code Object Version: {code_object_version}')

  revision={
    'revisionType': 'S3',
    's3Location': {
      'bucket': code_bucket_name,
      'key': code_object_key,
      'bundleType': 'zip'
    }
  }

  if code_object_version:
    revision['s3Location']['version'] = code_object_version

  response = client.create_deployment(
    applicationName=application_name,
    deploymentGroupName=deployment_group_name,
    revision=revision
  )
  
  print(f'Create Deployment Response: {response}')

  returnValue = {
    'PhysicalResourceId': response['deploymentId']
  }
  print(f'Return: {returnValue}')
  return returnValue