def handler()

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)