Как использовать официанты boto3 для ожидания того, чтобы экземпляр RDS находился в доступном состоянии, чтобы остановить - PullRequest
0 голосов
/ 28 мая 2018

Меня смущает использование официантов boto3.Я хочу остановить экземпляры rds, которые находятся в состоянии available .Перед тем как остановиться, мне нужно внести некоторые изменения (развернутые экземпляры MultiAZ ни к одному).Поэтому я хочу подождать, пока экземпляр не будет изменен, и быть в доступном состоянии.Как я могу прийти через это. Вот мой сценарий:

import boto3

client = boto3.client('rds')


dbmultiAZ=[]

def lambda_handler(event,context):
 response=client.describe_db_instances()

 for i in response['DBInstances']:
    if i['DBInstanceStatus'] == 'available':
        dbmultiAZ.append(i['DBInstanceIdentifier'])


        for j in dbmultiAZ:
            if i['MultiAZ']==True:
                response1 = client.modify_db_instance(
                    DBInstanceIdentifier=i['DBInstanceIdentifier'],
                    ApplyImmediately=True,
                    MultiAZ=False
                    )
                dbmultiAZ.append(i['DBInstanceIdentifier'])
            else:
                dbmultiAZ.append(i['DBInstanceIdentifier'])



for z in dbmultiAZ:
        waiter = client.get_waiter('db_instance_available')
        waiter.wait(
            DBInstanceIdentifier=z  )
        response2 = client.stop_db_instance(
            DBInstanceIdentifier=z
            )  
...