我正在通过 AWS Ruby SDK v3 创建堆栈,但因内部错误而失败。经过很长一段时间(30-40 分钟)后,它失败并因内部故障而回滚。没有显示任何资源,也没有其他事件。
24 May 2019 07:32:08 stack-name ROLLBACK_COMPLETE -
24 May 2019 07:31:42 stack-name ROLLBACK_IN_PROGRESS Internal Failure. Rollback requested by user.
24 May 2019 07:05:10 stack-name CREATE_IN_PROGRESS User Initiated
以其他(更高权限)用户身份启动堆栈意味着它会立即启动。我还尝试从堆栈中删除除一个 EC2 实例之外的所有资源,但出现了相同的行为。
堆栈通过 CAPABILITY_IAM 和 CAPABILITY_NAMED_IAM 功能启动。我最好的猜测是用户缺少允许其开始处理堆栈的 IAM 策略,但我不知道如何调试它。这是许多其他部署使用的角色,无法轻易更改。任何有关如何调试或可能导致此行为的指导都将不胜感激。
代码确实生成了大量动态生成的参数和标签。据我所知,这些参数和标签工作正常,正如预期的那样显示在控制台中。
答案1
问题原来是模板有一个参数:
AWS::SSM::Parameter::Name
但是我使用的角色没有足够的权限访问 SSM,具体来说,它没有获取参数行动。在具有测试角色的测试帐户中尝试模板并慢慢添加和删除权限的消除过程决定了这一点。
答案2
对我来说,尽管我对 CodePipeline、CodeBuild 和 CodeDeploy 的 GitHub 存储库拥有足够的权限,但我仍然遇到这个错误。
碰巧,我从 AWS Secrets Manager 中检索了 GitHub 令牌。该密钥存在于一个区域中,而我试图在另一个区域中检索相同的密钥。我不得不将机密复制到其他区域并选择我尝试访问令牌的新区域。