AWS SDK(Boto3)でCloudFormationスタック完了を待つ

1 min読了の目安(約900字TECH技術記事

はじめに

AWS SDK でCloudFormation スタックを実行して、スタック完了してから処理を実行するPython3スクリプト

参考

公式ドキュメント
class CloudFormation.Waiter.StackCreateComplete

class CloudFormation.Waiter.StackCreateComplete
waiter = client.get_waiter('stack_create_complete')

スクリプト

import boto3

vStackName = 'myStack' # スタック名
cf = boto3.client('cloudformation')
res = cf.create_stack(
    StackName= vStackName,
    TemplateURL='https://xxx-s3-ap-northeast-1.s3-ap-northeast-1.amazonaws.com/cfntemplate.yml',
    Capabilities=[
        'CAPABILITY_NAMED_IAM',
    ],
)

print(res) # CloudFormationスタックの情報表示
print("[LOG] CFn Stack start.")
waiter = cf.get_waiter('stack_create_complete')
waiter.wait(StackName=vStackName) # スタック完了まで待つ
print("[LOG] CFn Stack end.") # スタック完了後に実行される処理