AWS-使用Boto3获取最后的x Lambda运行状态

时间:2020-04-15 15:32:34

标签: python amazon-web-services boto3

我想知道获取AWS Lambda调用的最后一个“ x”结果的最佳方法是什么?

我有以下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 lambda调用”?

谢谢

2 个答案:

答案 0 :(得分:0)

数据点与调用不同。数据点是Cloudwatch拥有一些有关指标的记录的时间点,即使一段时间没有任何反应,Cloudwatch仍会向Lambda服务查询新数据。

此请求要使用的是分页:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cloudwatch.html#CloudWatch.Paginator.GetMetricData

我不是100%肯定会解决问题,但这是考虑缩小时间范围的第一步。

答案 1 :(得分:0)

我认为最好的方法是只使用cloudwatch日志-Lambda将标准的开始/结束日志输出到cloudwatch的日志组中,

相关问题