我正在使用aws cli创建一个cloudformation堆栈集
回显“正在创建堆栈集...”
sapply
echo“正在等待要创建的堆栈实例...”
some_stackset_id=$(aws cloudformation create-stack-set \
--stack-set-name $StacksetName \
--template-url $TemplateURL \
--capabilities '["CAPABILITY_NAMED_IAM"]' \
--administration-role-arn "arn:aws:iam::000000000009:role/AWSCloudFormationStackSetAdministrationRole" \
--execution-role-name "AWSCloudFormationStackSetExecutionRole" \
--parameters '[
{"ParameterKey":"env","ParameterValue":"DEV","UsePreviousValue": false, "ResolvedValue": "DEV"}
]' \
| jq '.StackSetId')
echo“正在创建堆栈实例...”
aws cloudformation wait stack-create-complete \
--region $region \
--stack-name $some_stackset_id
回显“完成创建堆栈实例”
当我等待堆栈集完成创建之后才能在该堆栈集中创建堆栈实例时,cli应该会
等待直到堆栈状态为CREATE_COMPLETE。它将每30轮询一次 秒,直到达到成功状态。这将退出 120次检查失败后返回255。 https://docs.aws.amazon.com/cli/latest/reference/cloudformation/wait/stack-create-complete.html
但是,这不是我所观察到的行为。一旦cli到达some_id=$(aws cloudformation create-stack-instances \
--stack-set-name myStackset\
--accounts '["0000030000"]' \
--regions '["us-east-1"]'
--operation-preferences='
{
"RegionOrder": ["us-east-1"],
"FailureToleranceCount": 0,
"MaxConcurrentCount": 3
}' | jq '.OperationId')
,它就不会像cli doc所指的那样在那里等待30秒,而是直接转到下一个命令 (create -stack-instances) ,但失败了,aws cloudformation wait stack-create-complete...
知道为什么吗?
答案 0 :(得分:0)
Cloudformation stackSet与堆栈不同。您正在使用的aws cloudformation wait stack-create-complete
服务员用于堆栈,而不是stackSets。不幸的是,尽管使用bash循环创建您自己的服务员并不困难,但目前没有stackSets的服务员。