Как создать несколько облачных часов с помощью Boto3 за один раз - PullRequest
0 голосов
/ 31 августа 2018

Я хочу создать ~ 267 будильников Cloudwatch, ручной процесс настолько жалок, может кто-нибудь подсказать мне использовать скрипт Boto3, чтобы я мог настроить все будильники одним выстрелом.

Спасибо:)

import boto3

# Create CloudWatch client
cloudwatch = boto3.client('cloudwatch')

# Create alarm
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=False,
    AlarmDescription='Alarm when server CPU exceeds 70%',
    Dimensions=[
        {
          'Name': 'InstanceId',
          'Value': 'i-xxxxxxxxxx'
        },
    ],
    Unit='Seconds'
)

1 Ответ

0 голосов
/ 31 августа 2018

Если вы хотите добавить сигнал тревоги CloudWatch для разных экземпляров EC2, вы можете просто поместить идентификаторы экземпляров в список и выполнить итерацию по этому списку для создания сигналов. Это будет выглядеть так:

import boto3

cloudwatch = boto3.client('cloudwatch')

ec2_instances = [
    'i-xxxxxxxxx1',
    'i-xxxxxxxxx2',
    'i-xxxxxxxxx3'
]

for ec2_instance in ec2_instances:
    cloudwatch.put_metric_alarm(
        AlarmName='Web_Server_CPU_Utilization_%s' % ec2_instance,
        ComparisonOperator='GreaterThanThreshold',
        EvaluationPeriods=1,
        MetricName='CPUUtilization',
        Namespace='AWS/EC2',
        Period=60,
        Statistic='Average',
        Threshold=70.0,
        ActionsEnabled=False,
        AlarmDescription='Alarm when server CPU exceeds 70%',
        Dimensions=[
            {
              'Name': 'InstanceId',
              'Value': ec2_instance
            },
        ],
        Unit='Seconds'
    )
...