in InstanceRefreshHandler/lambda_function.py [0:0]
def lambda_handler(event, context):
# Load SNS message body
ib_notification = json.loads(event['Records'][0]['Sns']['Message'])
logging.info(json.dumps(ib_notification, sort_keys=True, indent=4))
asg_name = os.environ['AutoScalingGroupName']
lt_id = os.environ['LaunchTemplateId']
# Finish if Image build wasn't successful
if ib_notification['state']['status'] != "AVAILABLE":
logging.warning("No action taken. EC2 Image build failed.")
return("No action taken. EC2 Image build failed.")
# Get the AMI ID for current region from Image Builder notification
ami_id = get_ami_id_from_ib_notification(ib_notification)
if ami_id is None:
logging.warning("There's no image created for region {}".format(
os.environ['AWS_REGION']))
return("No AMI id created for region {}".format(
os.environ['AWS_REGION']))
# Change LT version to $Latest if not yet $Latest
set_asg_launch_template_version_latest(asg_name, lt_id)
# Trigger Auto Scaling group Instance Refresh
trigger_auto_scaling_instance_refresh(asg_name)
return("Success")