def lambda_handler()

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")