def test_package_logger_format(stdout, capsys):
    set_package_logger(stream=stdout,
                       formatter=JsonFormatter(formatter="test"))
    Tracer(disabled=True)
    output = json.loads(stdout.getvalue().split("\n")[0])

    assert "test" in output["formatter"]
def test_package_logger(capsys):

    set_package_logger()
    Tracer(disabled=True)
    output = capsys.readouterr()

    assert "Tracing has been disabled" in output.out
def test_package_logger_stream(stdout):
    # GIVEN package logger "aws_lambda_powertools" is explicitly set with no params
    set_package_logger(stream=stdout)

    # WHEN Tracer is initialized in disabled mode
    Tracer(disabled=True)

    # THEN Tracer debug log statement should be logged
    output = stdout.getvalue()
    logger = logging.getLogger("aws_lambda_powertools")
    assert "Tracing has been disabled" in output
    assert logger.level == logging.DEBUG
def test_package_logger_format(capsys):
    # GIVEN package logger "aws_lambda_powertools" is explicitly
    # with a custom formatter
    formatter = logging.Formatter("message=%(message)s")
    set_package_logger(formatter=formatter)

    # WHEN Tracer is initialized in disabled mode
    Tracer(disabled=True)

    # THEN Tracer debug log statement should be logged using `message=` format
    output = capsys.readouterr().out
    logger = logging.getLogger("aws_lambda_powertools")
    assert "message=" in output
    assert logger.level == logging.DEBUG
Пример #5
0
import json
import os

import boto3
import botocore.exceptions
from aws_lambda_powertools import Logger, Tracer
from aws_lambda_powertools.logging.logger import set_package_logger
from functools import wraps

set_package_logger()

tracer = Tracer()
logger = Logger()

s3_client = boto3.client('s3')
s3_bucket = os.getenv("RESOURCE_BUCKET_NAME") or "lessa-twitch-sample"
s3_key = "airtravel.csv"

# def dummy_decorator(fn):
#     logger.info(f"Decorating {fn}")
#     @wraps(fn)
#     def decorated(*args, **kwargs):
#         logger.info("Calling decorated function...")
#         ret = fn(*args, **kwargs)
#         return ret
#     return decorated


# @tracer.capture_method
# @dummy_decorator
def load_file_from_s3(bucket_name, key):
Пример #6
0
import asyncio
import json

import aioboto3
import aiohttp
import requests

from aws_lambda_powertools import Logger, Metrics, Tracer, single_metric
from aws_lambda_powertools.logging.logger import set_package_logger
from aws_lambda_powertools.metrics import MetricUnit
from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
from aws_lambda_powertools.tracing import aiohttp_trace_config

set_package_logger()  # Enable package diagnostics (DEBUG log)

# tracer = Tracer() # patches all available modules # noqa: E800
tracer = Tracer(patch_modules=(
    "aioboto3", "boto3",
    "requests"))  # ~90-100ms faster in perf depending on set of libs
logger = Logger()
metrics = Metrics()

_cold_start = True

metrics.add_dimension(name="operation",
                      value="example")  # added at cold start only


async def aioboto_task():
    async with aioboto3.client("sts") as sts:
        account = await sts.get_caller_identity()