use*_*487 3 amazon-web-services amazon-cloudwatch boto3
刚开始将Boto3与Python结合使用,因此绝对是新手。
我正在尝试使用简单的get_metric_statistics脚本返回有关实例的CPUUtilization的信息。这是我要使用的脚本:
import boto3
import datetime
cw = boto3.client('cloudwatch')
cw.get_metric_statistics(
300,
datetime.datetime.utcnow() - datetime.timedelta(seconds=600),
datetime.datetime.utcnow(),
'CPUUtilization',
'AWS/EC2',
'Average',
{'InstanceId':'i-11111111111'},
)
Run Code Online (Sandbox Code Playgroud)
但我不断收到以下消息:
Traceback (most recent call last):
File "C:..../CloudWatch_GetMetricStatistics.py", line 13, in <module>
{'InstanceId':'i-0c996c11414476c7c'},
File "C:\Program Files\Python27\lib\site-packages\botocore\client.py", line 251, in _api_call
"%s() only accepts keyword arguments." % py_operation_name)
TypeError: get_metric_statistics() only accepts keyword arguments.
Run Code Online (Sandbox Code Playgroud)
我有:
我仍然想念我所缺少的东西吗?
任何指导将不胜感激。
非常感谢本
请参阅文档和您的错误消息:
get_metric_statistics() only accepts keyword agruments
Run Code Online (Sandbox Code Playgroud)
命名参数必须按照文档中的定义传递给函数:
get_metric_statistics(**kwargs)
Run Code Online (Sandbox Code Playgroud)
这有效:
import boto3
import datetime
cw = boto3.client('cloudwatch')
cw.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':'i-abcd1234'}]
)
Run Code Online (Sandbox Code Playgroud)
为了找到正确的值,我使用AWS命令行界面(CLI):
aws cloudwatch list-metrics --namespace AWS/EC2 --metric-name CPUUtilization --max-items 1
Run Code Online (Sandbox Code Playgroud)
它返回如下信息:
{
"Metrics": [
{
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-abcd1234"
}
],
"MetricName": "CPUUtilization"
}
],
"NextToken": "xxx"
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用这些值来填充您的网get_metric_statistics()格(例如Dimensions参数)。
| 归档时间: |
|
| 查看次数: |
11609 次 |
| 最近记录: |