AWS - Использование Boto3 для получения последнего x состояния Lambda Run - PullRequest
0 голосов
/ 15 апреля 2020

Мне интересно, как лучше всего получить последние 'x' результаты для AWS лямбда-вызовов?

У меня есть следующий python код:

    client = boto3.client('cloudwatch')

    response = client.get_metric_statistics(
        Namespace='AWS/Lambda',
        MetricName='Invocations',
        Dimensions=[
            {
                'Name': 'FunctionName',
                'Value': name
            }
        ],
        StartTime=datetime.utcnow() - timedelta(seconds=10800),
        EndTime=datetime.utcnow(),
        Period=1,
        Statistics=['Average'],
        Unit='Count'
    )

Единственная проблема заключается в возврате ко многим событиям:

InvalidParameterCombinationException: An error occurred (InvalidParameterCombination) when calling the GetMetricStatistics operation: You have requested up to 10,800 datapoints, which exceeds the limit of 1,440. You may reduce the datapoints requested by increasing Period, or decreasing the time range.

Несмотря на то, что функция запускалась всего несколько раз.

Есть ли способ получить «последние x лямбда-вызовов»?

Спасибо

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Я думаю, что лучший подход для этого - просто использовать журналы cloudwatch - Lambda выводит стандартные журналы начала / конца в группу журналов для cloudwatch, что должно быть проще.

0 голосов
/ 15 апреля 2020

Точки данных не совпадают с вызовами. Точки данных - это моменты времени, когда Cloudwatch имеет некоторую запись о metri c, даже если в течение некоторого времени ничего не происходит, Cloudwatch все еще будет запрашивать у службы Lambda новые данные.

То, что вы хотите использовать для этого запроса, - это разбиение на страницы: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cloudwatch.html#CloudWatch .Paginator.GetMetricData

Я не уверен на 100%, что это решит проблему, но это хороший первый шаг перед рассмотрением сужения таймфрейма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...