调用CreateStackInstances操作时,AWS CLI Cloudformation OperationInProgressException

时间:2018-11-19 15:41:46

标签: amazon-web-services amazon-cloudformation aws-cli

我正在使用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...知道为什么吗?

1 个答案:

答案 0 :(得分:0)

Cloudformation stackSet与堆栈不同。您正在使用的aws cloudformation wait stack-create-complete服务员用于堆栈,而不是stackSets。不幸的是,尽管使用bash循环创建您自己的服务员并不困难,但目前没有stackSets的服务员。