You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Boto3获取AWS Lambda的CloudWatch指标返回空数据怎么办?

解决AWS Lambda调用指标返回空Datapoints的问题

我尝试通过代码获取AWS Lambda的调用指标(Invocations),但返回响应中的Datapoints为空,不过已确认该Lambda函数确实有调用记录。

运行的代码

import boto3
from datetime import datetime, timedelta

# 需先初始化CloudWatch客户端
client = boto3.client('cloudwatch')

response = client.get_metric_statistics(
    Namespace='AWS/Lambda',
    MetricName='Invocations',
    Dimensions=[
        {
            'Name': 'lambda',
            'Value': 'my_lambda_name'
        },
    ],
    StartTime=datetime(2022, 10, 6),
    EndTime=datetime(2022, 10, 8),
    Period=300,
    Statistics=[
        'Sum'
    ],
    #Unit='Count/Second'
    #Unit='Count'
)
response

返回的空响应

{'Label': 'Invocations',
 'Datapoints': [],
 'ResponseMetadata': {'RequestId': 'd18c70ee-dedd-410f-afc1-4c32f726175c',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'x-amzn-requestid': 'd18c70ee-dedd-410f-afc1-4c32f726175c',
   'content-type': 'text/xml',
   'content-length': '334',
   'date': 'Fri, 07 Oct 2022 21:29:50 GMT'},
  'RetryAttempts': 0}}

问题原因及修复方案

核心问题是维度名称错误:AWS Lambda的Invocations指标对应的维度名称是FunctionName,而非代码中写的lambda。

修改后的维度配置:

Dimensions=[
    {
        'Name': 'FunctionName',
        'Value': 'my_lambda_name'
    },
],

额外注意事项

  • 确保my_lambda_name是Lambda函数的准确名称,AWS资源名称区分大小写
  • CloudWatch指标存在1-5分钟的延迟,无法实时查询刚产生的调用数据
  • Period参数必须是60的倍数,300秒(5分钟)符合要求
  • 可以取消注释Unit='Count',与Invocations指标的单位匹配

内容的提问来源于stack exchange,提问作者ambigus9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:30:57