Skip to content

Instantly share code, notes, and snippets.

@michaelbrewer
Last active April 12, 2021 22:36
Show Gist options
  • Save michaelbrewer/895cd088ed670dc3a7b7fec6f6c18f49 to your computer and use it in GitHub Desktop.
Save michaelbrewer/895cd088ed670dc3a7b7fec6f6c18f49 to your computer and use it in GitHub Desktop.
01 - Logging
import json
import time
from aws_lambda_powertools import Logger
from aws_lambda_powertools.logging import correlation_paths
logger = Logger()
def create_payment(payment):
order_key = payment["order_key"]
logger.info(f"Order key: %s", order_key)
# Simulate failure
if "FAILURE" in order_key:
raise RuntimeError("Failed to make payment")
# Simulate a slow transaction
time.sleep(2)
return {"order_id": "1111111", "status": "SUCCESS"}
@logger.inject_lambda_context(log_event=True, correlation_id_path=correlation_paths.API_GATEWAY_REST)
def lambda_handler(event, context):
payment = create_payment(json.loads(event["body"]))
return {
"statusCode": 200,
"headers": {"Content-Type": "application/json"},
"body": json.dumps(payment),
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment