Amazon CloudFormation StackSets 故障排除
本主题包含一些常见的 Amazon CloudFormation StackSets 问题以及这些问题的建议的解决方案。
堆栈操作失败的常见原因
问题:堆栈操作失败,并且堆栈实例状态为 OUTDATED。
原因:有几个导致堆栈操作失败的常见原因。
-
目标账户中的权限不足,无法创建模板中指定的资源。
-
Amazon CloudFormation 模板可能存在错误。验证 Amazon CloudFormation 中的模板并修复错误,然后再尝试创建堆栈集。
-
模板可能尝试创建必须唯一但不唯一的全球资源 (如 S3 存储桶)。
-
指定的目标账号不存在。检查您在向导的 Set deployment options 页面上指定的目标账号。
-
管理员账户与目标账户没有信任关系。
-
目标账户中已存在模板中指定的资源的最大数量。例如,您可能已达到目标账户中允许的 IAM 角色数限制,但模板创建更多 IAM 角色。
-
您已达到堆栈集中允许的最大堆栈数量。有关每个堆栈集的最大堆栈数,请参阅 Amazon CloudFormation 限制。
解决方案:有关创建堆栈集之前目标和管理员账户所需的权限的更多信息,请参阅为堆栈集操作设置基本权限。
重试失败的堆栈创建或更新操作
问题:堆栈创建或更新失败,并且堆栈实例状态为 OUTDATED。要查找堆栈创建或更新失败的原因,请打开 Amazon CloudFormation 控制台并查看堆栈的事件,这些事件的状态为 DELETED(对于失败的创建操作)或 FAILED(对于失败的更新操作)。浏览堆栈事件,然后查找 Status reason 列。Status reason 的值解释了堆栈操作失败的原因。
在确定堆栈创建失败的根本原因并准备好重试堆栈创建后,请执行下列步骤。
解决方案:执行下列步骤以重试堆栈操作。
在控制台中,选择包含操作失败的堆栈的堆栈集。
-
在操作菜单上,选择 Edit StackSet details (编辑堆栈集详细信息) 以重试创建或更新堆栈。
-
在 Specify template (指定模板) 页面上,要使用相同的 Amazon CloudFormation 模板,请保留默认选项使用当前模板。如果您的堆栈操作因模板需要更改而失败,并且您想上传修订后的模板,请改为选择 Upload a template to Amazon S3,然后选择 Browse 以选择更新的模板。上传完修订后的模板后,选择 Next。
-
在 Specify details 页上,如果不更改特定于模板的任何参数,请选择 Next。
-
在 Set deployment options 页上,更改 Maximum concurrent accounts 和 Failure tolerance 的默认值 (如果需要)。有关这些设置的更多信息,请参阅堆栈集操作选项。
-
在审核页面上,检查所选的内容,然后选中相应的复选框以确认所需的 IAM 功能。选择 Submit (提交)。
-
如果您的堆栈未成功更新,请在解决任何阻止堆栈创建的基本问题后重复此过程。
堆栈实例删除操作失败
问题:堆栈删除操作失败。
原因:对于任何已启用终止保护的堆栈,堆栈删除操作将失败。
解决方案:确定该堆栈是否已启用终止保护。如果已启用,则禁用终止保护,然后再重新执行堆栈实例删除操作。