2015-12-15 22 views
4

我想创建一个堆栈与aws cloudformation create-stack --stack-name ... --template-body file://...来创建堆栈。它在我执行命令后立即输出堆栈ID。但堆栈所需的资源仍在创建中。如何输出堆栈创建成功的信息,直到堆栈中创建所有资源

我想输出一些消息,直到创建所有资源。

我不想在循环中描述堆栈。并输出消息直到堆栈创建完成信号。

回答

1

Google云具有与AWS :: CF类似的产品。

gcloud deployment-manager deployments create [stack_name] 

该命令允许我们指定一个异步开关:

--async 
    Return immediately and print information about the Operation in 
    progress rather than waiting for the Operation to complete. 
    (default=False) 

默认情况下,gcloud指令将在异步模式下执行,事实上,它确实你所建议的,几乎什么这里。当我启动一个堆栈时,我必须等待整个过程完成才能看到“堆栈创建/失败”消息。

据我所知,AWS :: CF没有这样的功能。默认情况下,aws cli似乎以异步模式启动进程。

但是,就这么说,看起来gcloud cli命令完全按照您所说的不想执行的操作:在循环中查询API以确定堆栈创建过程的状态。

是否有理由不能编写脚本来查询AWS :: CF API的堆栈创建状态?

8

初始创建堆栈请求您将需要申请其他后:

aws cloudformation wait stack-create-complete --stack-name $STACK_ID_FROM_CREATE_STACK 

从AWS文档http://docs.aws.amazon.com/cli/latest/reference/cloudformation/wait/stack-create-complete.html

等待,直到堆栈状态CREATE_COMPLETE。它将每隔30秒钟轮询一次,直到达到成功状态。在120次失败检查后,这将退出 返回代码255。

+0

这是正确的答案。 :)谢谢 – Josh

+1

你知道如果堆栈进入CREATE_FAILED会发生什么吗?命令是否仍然需要60分钟(30秒* 120)才会失败,或者如果堆栈进入CREATE_FAILED状态,将会立即失败? –