Я пытаюсь создать тревогу с помощью Boto3 - CloudWatch - put_metric_alarm и испытываю трудности.
Вот ключевые слова аргументы, предоставляемые функции:
{'ActionsEnabled': False,
'AlarmDescription': 'Monitor for Idle instances',
'AlarmName': 'IdleComponents',
'ComparisonOperator': 'GreaterThanThreshold',
'DatapointsToAlarm': 6,
'EvaluationPeriods': 6,
'Metrics': [{'Id': 'CPU',
'MetricStat': {'Metric': {'Dimensions': [{'Name': 'InstanceId',
'Value': 'i-XX'}],
'MetricName': 'CPUUtilization',
'Namespace': 'AWS/EC2'},
'Period': 300,
'Stat': 'Average',
'Unit': 'Percent'},
'ReturnData': False},
{'Id': 'Net',
'MetricStat': {'Metric': {'Dimensions': [{'Name': 'InstanceId',
'Value': 'i-XX'}],
'MetricName': 'NetworkIn',
'Namespace': 'AWS/EC2'},
'Period': 300,
'Stat': 'Average',
'Unit': 'Megabytes'},
'ReturnData': False},
{'Expression': 'IF(CPU < 5, 1, 0) AND IF(Net < 5, 1, 0)',
'Id': 'e1',
'ReturnData': True}],
'Threshold': 0}
Из визуального осмотра это кажется допустимым вводом, и выражение работает как нужно при создании его вручную на консоли CloudWatch, но при запуске этого через Boto3 я получаю:
botocore.exceptions.ClientError: Произошла ошибка (ValidationError), когда вызов операции PutMetricAlarm: список недействительных метрик
В документации здесь утверждается, что вы можете определить тревогу так, что вы можете использовать до 10 метрик и 10 выражений с одним из Metri c запрашивает возврат данных для тревоги.
Я не уверен, что я делаю здесь неправильно. Спасибо