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

如何使用boto3和Python Lambda获取指定Lambda的CloudWatch指标

Lambda调用次数CloudWatch指标查询问题修复

核心错误配置点

你代码里的指标参数配置存在3处错误,是返回空值的直接原因:

  • 指标命名空间Namespace配置错误:Lambda的CloudWatch指标统一命名空间为AWS/Lambda,不是你写的Invocations
  • 指标名MetricName配置错误:Lambda调用次数的标准指标名为Invocations,不是你写的Number of invokes
  • 维度Dimensions配置错误:Lambda指标的函数名维度键为FunctionName,不是你写的lambda

修正后的代码

import boto3
import datetime
import calendar

def get_metric_data():
    # 如果当前执行环境和目标Lambda不在同一区域,需要显式指定region_name参数
    cloudwatch = boto3.client('cloudwatch', region_name='us-east-1')
    
    targetGroupARN='arn:aws:lambda:us-east-1:1234567890:function:lambda-function-to-analyze'
    tgarray=targetGroupARN.split(':')
    target=tgarray[-1]

    response = cloudwatch.get_metric_data(
        MetricDataQueries=[
            {
                'Id': 'myrequest',
                'MetricStat': {
                    'Metric': {
                        'Namespace': 'AWS/Lambda',
                        'MetricName': 'Invocations',
                        'Dimensions': [
                            {
                                'Name': 'FunctionName',
                                'Value': target
                            },
                        ]
                    },
                    'Period': 86400, # 按天统计可调整为86400,5分钟统计保持300即可
                    'Stat': 'Sum',
                    'Unit': 'Count'
                }
            },
        ],
        StartTime=datetime.datetime(2021, 11, 1),
        EndTime=datetime.datetime(2021, 11, 30),
    )
    
    print(response)
    return response

额外校验点

  • 执行该函数的IAM角色必须包含cloudwatch:GetMetricData权限
  • 目标Lambda在2021年11月确实有调用记录,否则返回值依然会为空
  • 如果需要统计整月总调用量,将返回结果里的Values数组求和即可得到总调用次数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:54:04