Skip to content

Instantly share code, notes, and snippets.

@michaelbrewer
michaelbrewer / app-parameter.py
Created April 13, 2021 05:59
09 - Parmaters
import os
from aws_lambda_powertools.utilities.parameters import get_parameter
credentials = get_parameter(f"payment_credentials_{os.environ['ENVIRONMENT']}", transform="json", decrypt=True)
assert isinstance(credentials, dict)
payment_client = PaymentService(**credentials)
...
@michaelbrewer
michaelbrewer / app.py
Created April 13, 2021 01:05
app - modular
import os
from typing import Any, Callable, Dict
from aws_lambda_powertools import Logger, Metrics, Tracer
from aws_lambda_powertools.logging import correlation_paths
from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
from aws_lambda_powertools.utilities.data_classes import APIGatewayProxyEvent
from aws_lambda_powertools.utilities.idempotency import DynamoDBPersistenceLayer, IdempotencyConfig, idempotent
from aws_lambda_powertools.utilities.idempotency.exceptions import (
IdempotencyAlreadyInProgressError,
@michaelbrewer
michaelbrewer / app-validator.py
Created April 13, 2021 00:40
08 - Validator
import json
import os
import time
from typing import Any, Callable, Dict
from aws_lambda_powertools import Logger, Metrics, Tracer
from aws_lambda_powertools.logging import correlation_paths
from aws_lambda_powertools.metrics import MetricUnit
from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
from aws_lambda_powertools.utilities.data_classes import APIGatewayProxyEvent
@michaelbrewer
michaelbrewer / Makefile
Last active April 3, 2021 20:16
aws-lambda powertools cdk
# cdk/Makefile
dev:
# Installs peotry and the dependencies
pip install --upgrade pip poetry
poetry install
@michaelbrewer
michaelbrewer / setup.sh
Last active April 12, 2021 05:12
Setting up aws-lambda-powertools
# Ensure we have the latest pip and pipenv
pip3 install --upgrade pip pipenv
# Setup new Python 3.8 project
pipenv --python 3.8
# Install aws-lambda-powertools
pipenv install boto3 aws-lambda-powertools
# Install dev dependencies
pipenv install black pytest isort mypy --dev --pre
@michaelbrewer
michaelbrewer / app-exception-handling.py
Last active April 12, 2021 22:38
07 - Exception handling
import json
import os
import time
from typing import Any, Callable, Dict
from aws_lambda_powertools import Logger, Metrics, Tracer
from aws_lambda_powertools.logging import correlation_paths
from aws_lambda_powertools.metrics import MetricUnit
from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
from aws_lambda_powertools.utilities.data_classes import APIGatewayProxyEvent
@michaelbrewer
michaelbrewer / app-idempotent.py
Last active April 12, 2021 22:38
06 - Idempotent
import json
import os
import time
from typing import Any, Dict
from aws_lambda_powertools import Logger, Metrics, Tracer
from aws_lambda_powertools.logging import correlation_paths
from aws_lambda_powertools.metrics import MetricUnit
from aws_lambda_powertools.utilities.data_classes import APIGatewayProxyEvent
from aws_lambda_powertools.utilities.idempotency import DynamoDBPersistenceLayer, IdempotencyConfig, idempotent
import json
import os
import time
from typing import Any, Dict
from aws_lambda_powertools import Logger, Metrics, Tracer
from aws_lambda_powertools.logging import correlation_paths
from aws_lambda_powertools.metrics import MetricUnit
from aws_lambda_powertools.utilities.data_classes import APIGatewayProxyEvent
from aws_lambda_powertools.utilities.typing import LambdaContext
@michaelbrewer
michaelbrewer / app-data-classes.py
Last active April 12, 2021 22:37
04 - DataClasses
import json
import os
import time
from aws_lambda_powertools import Logger, Metrics, Tracer
from aws_lambda_powertools.logging import correlation_paths
from aws_lambda_powertools.metrics import MetricUnit
from aws_lambda_powertools.utilities.data_classes import APIGatewayProxyEvent
logger = Logger()
@michaelbrewer
michaelbrewer / app-metrics.py
Last active April 12, 2021 22:36
03 - Metrics
import json
import time
from aws_lambda_powertools import Logger, Metrics, Tracer
from aws_lambda_powertools.logging import correlation_paths
from aws_lambda_powertools.metrics import MetricUnit
logger = Logger()
tracer = Tracer()
metrics = Metrics()