Also versuche ich mit der Ansible-Task ec2_metric_alarm einen Cloud-Watch-Alarm zu erstellen, der meine Auto-Scaling-Gruppe überwacht und eine automatische Skalierungsrichtlinie aktiviert, wenn die CPU-Auslastung für die ASG höher ist oder unter einem bestimmten Punkt.ansible ec2_metric_alarm wird nicht an die automatische Skalierungsrichtlinie angehängt
- ec2_metric_alarm:
aws_access_key: '{{ ami_access }}'
aws_secret_key: '{{ ami_secret }}'
state: present
region: "{{regi}}"
name: "{{item.names}}"
metric: "CPUUtilization"
namespace: "AWS/EC2"
statistic: Average
comparison: "{{item.compare}}"
threshold: "{{item.limits}}"
period: 60
evaluation_periods: 1
unit: "Percent"
description: "{{item.desc}}"
dimensions: {'AutoScalingGroupName':'{{auto_sc}}'}
alarm_actions: "{{item.pol}}"
with_items:
- names: "cpuUP_{{auto_sc}}"
compare: ">="
limits: "20.0"
desc: "This will alarm when the average cpu usage of the ASG is greater than 20% for 1 minute"
pol: "cpuUP_{{auto_sc}}_policy"
- names: "cpuDown_{{auto_sc}}"
compare: "<="
limits: "10.0"
desc: "This will alarm when the average cpu usage of the ASG is less than 10% for 1 minute"
pol: "cpuDown_{{auto_sc}}_policy"
Aus irgendeinem Grund habe ich einfach nicht die wörtliche Namen meiner automatische Skalierung Politik und ich brauche (die „cpuDown_test3_policy“ und „cpuUP_test3_policy“ wäre) verwenden, um etwas zu verwenden, um eine „arn Syntax“, weil meine Fehlermeldungen genannt beschwert sich über eine ungültige Arn-Syntax.
Wie finde ich die arn-Syntax oder konvertiere meine Auto-Skalierungs-Policy-Namen in arn-Syntax?
Als Referenz hier ist die Fehlermeldung erhalte ich, wenn ich versuche mein Textbuch zu laufen wie:
TASK [ec2_metric_alarm] ********************************************************
failed: [localhost] => (item={u'pol': u'cpuUP_test3_policy', u'desc': u'This wil
l alarm when the average cpu usage of the ASG is greater than 20% for 1 minute',
u'compare': u'>=', u'limits': u'20.0', u'names': u'cpuUP_test3'}) => {"failed":
true, "item": {"compare": ">=", "desc": "This will alarm when the average cpu u
sage of the ASG is greater than 20% for 1 minute", "limits": "20.0", "names": "c
puUP_test3", "pol": "cpuUP_test3_policy"}, "msg": "BotoServerError: 400 Bad Requ
est\n<ErrorResponse xmlns=\"http://monitoring.amazonaws.com/doc/2010-08- 01/\">\n
<Error>\n <Type>Sender</Type>\n <Code>ValidationError</Code>\n <Messa
ge>Invalid arn syntax: cpuUP_test3_policy</Message>\n </Error>\n <RequestId>d8
97c79a-01db-11e6-92d5-5fa534a149e9</RequestId>\n</ErrorResponse>\n"}
failed: [localhost] => (item={u'pol': u'cpuDown_test3_policy', u'desc': u'This w
ill alarm when the average cpu usage of the ASG is less than 10% for 1 minute',
u'compare': u'<=', u'limits': u'10.0', u'names': u'cpuDown_test3'}) => {"failed"
: true, "item": {"compare": "<=", "desc": "This will alarm when the average cpu
usage of the ASG is less than 10% for 1 minute", "limits": "10.0", "names": "cpu
Down_test3", "pol": "cpuDown_test3_policy"}, "msg": "BotoServerError: 400 Bad Re
quest\n<ErrorResponse xmlns=\"http://monitoring.amazonaws.com/doc/2010-08- 01/\">
\n <Error>\n <Type>Sender</Type>\n <Code>ValidationError</Code>\n <Mes
sage>Invalid arn syntax: cpuDown_test3_policy</Message>\n </Error>\n <RequestI
d>d8b33ea6-01db-11e6-82db-8bfc9e3af9a2</RequestId>\n</ErrorResponse>\n"}
Das funktionierte dank! –