in functions/source/UpdateDnsRecord/handler.py [0:0]
def lambda_handler(event, context):
for record in event['Records']:
payload = record['body']
print(f'Received message: {payload}')
request = json.loads(payload)
transition = request.get('LifecycleTransition', '')
if transition in [ LAUNCHING_TRANSITION, TERMINATING_TRANSITION ]:
instance_id = request['EC2InstanceId']
try:
instance = get_instance_by_id(instance_id)
instance_ip = get_instance_ip_address(instance)
slot = get_replica_number_for_transition(instance, transition)
replica_hostname = create_replica_host_name(slot)
print(f'updating DNS for {replica_hostname} = {instance_ip}')
update_dns_record(transition, replica_hostname, instance_ip)
update_replica_number(instance_id, slot, transition)
continue_lifecycle_hook(instance_id, request)
except Exception:
print(traceback.format_exc())
abandon_lifecycle_hook(instance_id, request)