AWS CloudFormation
用户指南 (API 版本 2010-05-15)

AWS CloudFormation StackSets 故障排除

本主题包含一些常见的 AWS CloudFormation StackSets 问题以及这些问题的建议的解决方案。

堆栈操作失败的常见原因

问题:堆栈操作失败,并且堆栈实例状态为 OUTDATED

原因:有几个导致堆栈操作失败的常见原因。

  • 目标账户中的权限不足,无法创建模板中指定的资源。

  • AWS CloudFormation 模板可能存在错误。验证 AWS CloudFormation 中的模板并修复错误,然后再尝试创建堆栈集。

  • 模板可能尝试创建必须唯一但不唯一的全球资源 (如 S3 存储桶)。

  • 指定的目标账号不存在。检查您在向导的 Set deployment options 页面上指定的目标账号。

  • 管理员账户与目标账户没有信任关系。

  • 目标账户中已存在模板中指定的资源的最大数量。例如,您可能已达到目标账户中允许的 IAM 角色数限制,但模板创建更多 IAM 角色。

  • 您已达到堆栈集中允许的最大堆栈数量。有关每个堆栈集的最大堆栈数,请参阅 AWS CloudFormation 限制

解决方案:有关创建堆栈集之前目标和管理员账户所需的权限的更多信息,请参阅为堆栈集操作设置基本权限

重试失败的堆栈创建或更新操作

问题:堆栈创建或更新失败,并且堆栈实例状态为 OUTDATED。要查找堆栈创建或更新失败的原因,请打开 AWS CloudFormation 控制台并查看堆栈的事件,这些事件的状态为 DELETED(对于失败的创建操作)或 FAILED(对于失败的更新操作)。浏览堆栈事件,然后查找 Status reason 列。Status reason 的值解释了堆栈操作失败的原因。

在确定堆栈创建失败的根本原因并准备好重试堆栈创建后,请执行下列步骤。

解决方案:执行下列步骤以重试堆栈操作。

  1. 在控制台中,选择包含操作失败的堆栈的堆栈集。

  2. 操作菜单上,选择 Edit StackSet details (编辑堆栈集详细信息) 以重试创建或更新堆栈。

  3. Specify template (指定模板) 页面上,要使用相同的 AWS CloudFormation 模板,请保留默认选项使用当前模板。如果您的堆栈操作因模板需要更改而失败,并且您想上传修订后的模板,请改为选择 Upload a template to Amazon S3,然后选择 Browse 以选择更新的模板。上传完修订后的模板后,选择 Next

  4. Specify details 页上,如果不更改特定于模板的任何参数,请选择 Next

  5. Set deployment options 页上,更改 Maximum concurrent accountsFailure tolerance 的默认值 (如果需要)。有关这些设置的更多信息,请参阅堆栈集操作选项

  6. 审核页面上,检查所选的内容,然后选中相应的复选框以确认所需的 IAM 功能。选择 Submit (提交)

  7. 如果您的堆栈未成功更新,请在解决任何阻止堆栈创建的基本问题后重复此过程。

堆栈实例删除操作失败

问题:堆栈删除操作失败。

原因:对于任何已启用终止保护的堆栈,堆栈删除操作将失败。

解决方案:确定该堆栈是否已启用终止保护。如果已启用,则禁用终止保护,然后再重新执行堆栈实例删除操作。