in delivery/src/on_package_created/main.py [0:0]
def handler(event, context):
"""
Lambda function handler
"""
metrics.add_dimension(name="environment", value=ENVIRONMENT)
# This should only receive PackageCreated events
assert event["source"] == "ecommerce.warehouse"
assert event["detail-type"] == "PackageCreated"
try:
order_id = event["detail"]["orderId"]
except KeyError as exc:
logger.warning({
"message": "Failed to retrieve orderId from PackageCreated event",
"event": event,
"exception": str(exc)
})
raise exc
logger.debug({
"message": "Received PackageCreated message for order {}".format(order_id),
"orderId": order_id
})
# Retrieve order from order service
order = get_order(order_id)
if order is None:
logger.warning({
"message": "Failed to retrieve order {}".format(order_id),
"orderId": order_id
})
raise Exception("Failed to retrieve order {}".format(order_id))
# Save the order to the database
logger.debug({
"message": "Saving the shipping request to the database",
"orderId": order_id,
"order": order
})
save_shipping_request(order)