如何使用boto3服务员等待RDS实例处于可用状态以便停止

时间:2018-05-28 10:49:08

标签: amazon-web-services amazon-rds boto3

我对boto3服务员的使用感到困惑。我想停止处于可用状态的rds实例。在停止之前我需要做一些修改(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
            )  

1 个答案:

答案 0 :(得分:0)

在 lambda 中使用服务员是无服务器的反模式。相反,您应该利用阶跃函数来实现以下功能:

步骤 1:创建 RDS

第 2 步:检查是否完成

第 3 步:完成则继续,未完成则重新检查

步骤 4 ....