AWS CloudFormation - 堆栈已存在但状态无法更新:ROLLBACK_COMPLETE

5
我正在按照这个教程操作:https://github.com/awslabs/codepipeline-nested-cfn,在运行以下命令之后遇到了以下错误:
aws cloudformation create-stack --stack-name NestedCFN-CodePipeline --template-body file://codepipeline-cfn-codebuild.yml --parameters file://codepipeline-cfn-codebuild.json --capabilities CAPABILITY_NAMED_IAM

这里输入图片描述

有人知道为什么吗?

我删除了所有的堆栈并重新开始,云形成堆栈到达这一部分并因下面的错误失败:

这里输入图片描述

这是我的config-prod.json;除了amiID我改变了一切以保持与此repo的相似性:https://github.com/awslabs/codepipeline-nested-cfn

{  
   "Parameters":{  
      "TemplatePath":"TEMPLATE_PATH_PLACEHOLDER",
      "VPCID":"vpc-4d08af25",
      "PrivateSubnet1":"subnet-a2e74bca",
      "PrivateSubnet2":"subnet-3d21c647",
      "PublicSubnet1":"subnet-69e44801",
      "PublicSubnet2":"subnet-c726c1bd",
      "S3BucketName":"nestedcfnbasestack-s3bucket-uvh827b8uyjw",
      "KeyPair":"testKeyName",
      "AMIId":"ami-f63b1193",
      "WebInstanceType":"t2.large",
      "WebMinSize":"1",
      "WebMaxSize":"2",
      "DBSubnetGroup":"nestedcfnbasestack-rdssubnetgroup-q0th4tfkt4m8",
      "DBUsername":"dbadmin",
      "DBPassword":"dbpAssw0rd",
      "DBInstanceType":"db.t2.small",
      "Environment":"prod"
   }
}

你之前运行过这个栈吗?能否在CloudFormation的事件部分提供更多错误细节? - slimdrive
1
如果这是第一次创建的主堆栈并且无法成功创建,则主堆栈永远不会被删除,而是保持在“ROLLBACK_COMPLETE”状态。您需要在CloudFormation选项卡中自行删除它。 - Muhammet Arslan
谢谢你的帮助;我仍在努力弄清楚这个问题;请点击我在上面更新的问题中的图像,以查看事件日志输出。 - pelican
看起来你正在使用嵌入式模板,而嵌入式模板中的某些内容出现了问题。尝试单独启动嵌入式模板,并进一步调试其中出现问题的部分。 - ilooner
1个回答

5
最有可能的原因是堆栈未能成功部署,因此回滚了。您将无法更新此堆栈,甚至无法使用相同名称创建新堆栈。
要找到此堆栈,请在AWS CloudFormation 控制台中查找,您可能需要将过滤器调整为“已失败”,才能找到它。
然后,选择该堆栈并查看“事件”选项卡中是否存在错误消息。
最后,修复导致回滚的问题,并删除堆栈,以便使用相同的名称创建新堆栈。

感谢您的帮助;我仍在努力弄清楚这个问题;请点击我上面更新的问题中的图像,以查看EVENTS日志输出。CloudFormation模板成功创建了一个t2.large Amazon Linux AMI实例,但随后出现了以下错误,该错误也在图片中显示:以下资源未能创建:[DBServer]。 - pelican
如果您按“已删除”堆栈过滤并选择“Test-NestedCFN-CodePipeline-DatabaseStack...”,则可以获得更详细的错误消息。然后在事件中检查,您应该能够看到[DBServer]资源出了什么问题。 - Laurent Jalbert Simard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接