AWS лямбда-стоп EC2, но исключаются два экземпляра - PullRequest
0 голосов
/ 13 января 2020

Мы ищем AWS Лямбда-скрипт для остановки всех экземпляров EC2 в конкретном регионе, ожидающих два экземпляра

1 Ответ

0 голосов
/ 13 января 2020

Сначала вам нужно добавить теги для экземпляров, которые вы хотите остановить, например, тег AutoStop и назначить им значение True, а затем запустить этот код:

import boto3
import logging

#setup simple logging for INFO
logger = logging.getLogger()
logger.setLevel(logging.INFO)

#define the connection
ec2 = boto3.resource('ec2')

def lambda_handler(event, context):
    # Use the filter() method of the instances collection to retrieve
    # all running EC2 instances.
    filters = [{
            'Name': 'tag:AutoOff',
            'Values': ['True']
        },
        {
            'Name': 'instance-state-name', 
            'Values': ['running']
        },
        {
            'Name': 'region', 
            'Values': ['us-east-1'] #replace it with your region
        }
    ]

    #filter the instances
    instances = ec2.instances.filter(Filters=filters)

    #locate all running instances
    RunningInstances = [instance.id for instance in instances]

    #print the instances for logging purposes
    #print RunningInstances 

    #make sure there are actually instances to shut down. 
    if len(RunningInstances) > 0:
        #perform the shutdown
        shuttingDown = ec2.instances.filter(InstanceIds=RunningInstances).stop()
        print shuttingDown
    else:
        print "Nothing to see here"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...