boto3 中的 cloudwatch 警报给出单位错误
cloudwatch alarm in boto3 gives error in unit
我正在尝试学习 boto3、amazon ec2 实例上的 cloudwatch 警报如何在自定义脚本中对其进行编程。
import boto3
import time
# Create CloudWatch client
cloudwatch = boto3.client('cloudwatch')
# Create alarm with actions enabled
cloudwatch.put_metric_alarm(
AlarmName='Web_Server_CPU_Utilization',
ComparisonOperator='GreaterThanThreshold',
EvaluationPeriods=1,
MetricName='CPUUtilization',
Namespace='AWS/EC2',
Period=60,
Statistic='Average',
Threshold=70.0,
ActionsEnabled=True,
AlarmActions=[
'arn:aws:swf:us-west-2:{CUSTOMER_ACCOUNT}:action/actions/AWS_EC2.InstanceId.Reboot/1.0'
],
AlarmDescription='Alarm when server CPU exceeds 70%',
Dimensions=[
{
'Name': 'InstanceId',
'Value': 'INSTANCE_ID'
},
],
Unit='Seconds'
)
但是在执行上述程序时出现错误
Traceback (most recent call last):
File "D:\expt2\cloudwatch alarm in action.py", line 27, in <module>
Unit='Seconds'
File "E:\installation2\python3\lib\site-packages\botocore\client.py", line 314, in _api_call
return self._make_api_call(operation_name, kwargs)
File "E:\installation2\python3\lib\site-packages\botocore\client.py", line 612, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (ValidationError) when calling the PutMetricAlarm operation: Unknown
此示例代码出现错误,我该如何解决?
ValidationError
被记录(一点点)here。
错误是由 AlarmActions
列表中的格式错误的项目引起的。格式应如下:
arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0
与此同时你有
arn:aws:swf:us-west-2:{CUSTOMER_ACCOUNT}:action/actions/AWS_EC2.InstanceId.Reboot/1.0
所以您只需要更新以使用您拥有 {CUSTOMER_ACCOUNT}
.
的真实 AWS 账户 ID
我正在尝试学习 boto3、amazon ec2 实例上的 cloudwatch 警报如何在自定义脚本中对其进行编程。
import boto3
import time
# Create CloudWatch client
cloudwatch = boto3.client('cloudwatch')
# Create alarm with actions enabled
cloudwatch.put_metric_alarm(
AlarmName='Web_Server_CPU_Utilization',
ComparisonOperator='GreaterThanThreshold',
EvaluationPeriods=1,
MetricName='CPUUtilization',
Namespace='AWS/EC2',
Period=60,
Statistic='Average',
Threshold=70.0,
ActionsEnabled=True,
AlarmActions=[
'arn:aws:swf:us-west-2:{CUSTOMER_ACCOUNT}:action/actions/AWS_EC2.InstanceId.Reboot/1.0'
],
AlarmDescription='Alarm when server CPU exceeds 70%',
Dimensions=[
{
'Name': 'InstanceId',
'Value': 'INSTANCE_ID'
},
],
Unit='Seconds'
)
但是在执行上述程序时出现错误
Traceback (most recent call last):
File "D:\expt2\cloudwatch alarm in action.py", line 27, in <module>
Unit='Seconds'
File "E:\installation2\python3\lib\site-packages\botocore\client.py", line 314, in _api_call
return self._make_api_call(operation_name, kwargs)
File "E:\installation2\python3\lib\site-packages\botocore\client.py", line 612, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (ValidationError) when calling the PutMetricAlarm operation: Unknown
此示例代码出现错误,我该如何解决?
ValidationError
被记录(一点点)here。
错误是由 AlarmActions
列表中的格式错误的项目引起的。格式应如下:
arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0
与此同时你有
arn:aws:swf:us-west-2:{CUSTOMER_ACCOUNT}:action/actions/AWS_EC2.InstanceId.Reboot/1.0
所以您只需要更新以使用您拥有 {CUSTOMER_ACCOUNT}
.