我对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
)
答案 0 :(得分:0)
在 lambda 中使用服务员是无服务器的反模式。相反,您应该利用阶跃函数来实现以下功能:
步骤 1:创建 RDS
第 2 步:检查是否完成
第 3 步:完成则继续,未完成则重新检查
步骤 4 ....