Lambda中使用boto3调用CloudWatch GetMetricData API返回访问被拒错误
Lambda调用CloudWatch GetMetricData接口权限错误解决方案
核心问题原因
你遇到的错误明确为权限问题:Lambda函数关联的执行角色lambda_test15mins-role-88yy778未被授予cloudwatch:GetMetricData操作的授权。
修复步骤
- 登录AWS IAM控制台,搜索并打开角色
lambda_test15mins-role-88yy778的配置页 - 为该角色附加对应权限,你可以选择两种方式:
- 直接使用AWS托管策略
CloudWatchReadOnlyAccess,该策略包含所有CloudWatch读权限 - 自定义最小权限策略,仅开放所需的
GetMetricData权限,策略示例如下:
- 直接使用AWS托管策略
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloudwatch:GetMetricData", "Resource": "*" } ] }
- 权限配置完成后等待1-2分钟生效,重新运行Lambda验证即可。
代码额外问题修正
你当前提交的代码存在时间参数逻辑错误:StartTime的取值必须早于EndTime,你现在的赋值逻辑写反了,会导致查询无数据,需要调整为:
StartTime= datetime.datetime.now() - datetime.timedelta(minutes=15), EndTime= datetime.datetime.now(),
另外代码中NextToken='string'、LabelOptions.Timezone='string'均为占位测试值,实际使用时需要替换为合法值,无对应需求的参数可以直接删除不传。
内容的提问来源于stack exchange,提问作者vilas gurav
相关产品推荐
相关产品推荐

