def on_event()

in lib/lambda/configure_rpi_image_builder/app.py [0:0]


def on_event(event, context):
    """
    Function that configures the raspberry pi image builder and stores it on S3.
    Triggered when the corresponding custom resource gets updated.
    """
    logger.info(f'New event {json.dumps(event, indent=2)}')

    fleet_provisioning_policy_name = event['ResourceProperties']['FLEET_PROVISIONING_POLICY_NAME']
    provisioning_template_name = event['ResourceProperties']['PROVISIONING_TEMPLATE_NAME']
    rpi_image_builder_bucket_name = event['ResourceProperties']['RPI_IMAGE_BUILDER_BUCKET_NAME']
    rpi_image_builder_object_key = event['ResourceProperties']['RPI_IMAGE_BUILDER_OBJECT_KEY']
    configured_rpi_image_builder_bucket_name = event['ResourceProperties']['CONFIGURED_RPI_IMAGE_BUILDER_BUCKET_NAME']
    configured_rpi_image_builder_object_key = event['ResourceProperties']['CONFIGURED_RPI_IMAGE_BUILDER_OBJECT_KEY']

    request_type = event['RequestType']
    if request_type == 'Create' or request_type == 'Update':
        configure_rpi_image_builder(
            fleet_provisioning_policy_name,
            provisioning_template_name,
            rpi_image_builder_bucket_name,
            rpi_image_builder_object_key,
            configured_rpi_image_builder_bucket_name,
            configured_rpi_image_builder_object_key,
        )
    elif request_type == 'Delete':
        logger.info("Provisioning client deletion")
        # We should remove the client from the bucket here
        pass
    else:
        raise Exception("Invalid request type: %s" % request_type)