Python Boto3获取度量统计信息()失败

2024-06-25 06:22:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用一个简单的get\u metric\u statistics脚本来返回关于实例的CPUUtilization的信息。以下是我希望使用的脚本:

import boto3
import datetime
cw= boto3.client("ec2",
                   aws_access_key_id=AWS.get("aws_access_key_id"),
                   aws_secret_access_key=AWS.get("aws_secret_access_key"),
                   region_name=AWS.get("region_name"))

cw1 = boto3.client("cloudwatch",
                   aws_access_key_id=AWS.get("aws_access_key_id"),
                   aws_secret_access_key=AWS.get("aws_secret_access_key"),
                   region_name=AWS.get("region_name")
                   )
response = cw.describe_instances()
InstanceId_Value = response.get("Reservations")[0].get("Instances")[0].get("InstanceId")
print(InstanceId_Value)

res = cw1.get_metric_statistics(
    Period=300,
    StartTime=datetime.datetime.utcnow() - datetime.timedelta(seconds=600),
    EndTime=datetime.datetime.utcnow(),
    MetricName='CPUUtilization',
    Namespace='AWS/EC2',
    Statistics=['Average'],
    Dimensions=[{'Name': 'InstanceId', 'Value':InstanceId_Value}]
)
print(res)

结果是:

i-074d0f8828bbe8cf7

Traceback (most recent call last):
File "/Users/xxxxxxxxx/tests.py", line 273, in <module>
Dimensions=[{'Name': 'InstanceId', 'Value':InstanceId_Value}]
File "/Users/xxxxxxxxxx/venv/lib/python3.6/site-packages/botocore/client.py", line 
276, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/Users/xxxxxxxx/venv/lib/python3.6/site-packages/botocore/client.py", line 
586, in _make_api_call

raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the 
GetMetricStatistics operation: User: arn:aws-cn:iam::900300832618:user/prog is not 
authorized to perform: cloudwatch:GetMetricStatistics

期望值

{
"Metrics": [
    {
        "Namespace": "AWS/EC2", 
        "Dimensions": [
            {
                "Name": "InstanceId", 
                "Value": "i-074d0f8828bbe8cf7"
            }
        ], 
        "MetricName": "CPUUtilization"
    }
], 
"NextToken": "xxx"

}

任何指导都将不胜感激


Tags: keynameclientawsidgetdatetimesecret
1条回答
网友
1楼 · 发布于 2024-06-25 06:22:57

IAM用户arn:aws-cn:iam::900300832618:user/prog没有访问这些度量的权限。错误清楚地写着:

An error occurred (AccessDenied) when calling the 
GetMetricStatistics operation: User: arn:aws-cn:iam::900300832618:user/prog is not 
authorized to perform: cloudwatch:GetMetricStatistics

您需要向调用boto3脚本的用户或运行脚本的实例配置文件添加此类权限

相关问题 更多 >