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)