我试图使用一个简单的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"
}
任何指导都将不胜感激
IAM用户
arn:aws-cn:iam::900300832618:user/prog
没有访问这些度量的权限。错误清楚地写着:您需要向调用boto3脚本的用户或运行脚本的实例配置文件添加此类权限
相关问题 更多 >
编程相关推荐