# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: MIT-0 import urllib.parse def on_event(event, context): print(event) request_type = event['RequestType'] if request_type == 'Create': return on_create(event) if request_type == 'Update': return on_update(event) if request_type == 'Delete': return on_delete(event) raise Exception("Invalid request type: %s" % request_type) def on_create(event): props = event["ResourceProperties"] print("create new resource with props %s" % props) url = event['ResourceProperties']['Url'] parsed_url = urllib.parse.urlparse(url) attributes = { 'HostName': parsed_url.netloc } return { 'Data': attributes } def on_update(event): physical_id = event["PhysicalResourceId"] props = event["ResourceProperties"] print("update resource %s with props %s" % (physical_id, props)) # ... return { 'PhysicalResourceId': physical_id } def on_delete(event): physical_id = event["PhysicalResourceId"] print("delete resource %s" % physical_id) # ... return { 'PhysicalResourceId': physical_id } def is_complete(event, context): physical_id = event["PhysicalResourceId"] request_type = event["RequestType"] # check if resource is stable based on request_type # is_ready = ... return { 'IsComplete': True }