我已使用以下链接将现有 AWS 资源从一个 Cloudformation (CFT) 堆栈迁移到另一个 CFT 堆栈。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-new-stack.html
迁移后,我的新 CFT 堆栈的状态为“IMPORT_COMPLETE”。然后我创建了一个 AWS CodePipeline,其中我的源是 AWS CodeCommit,我尝试使用 CodePipeline 将其部署在 Cloudformation 堆栈中。
在我的 CodePipeline 中,我使用新的 CFT 堆栈,在其中迁移了现有的 AWS 资源,并在同一模板中通过添加 SQS 队列策略更新了我的代码,并将代码上传到 CodeCommit 中。
因此,当我的 AWS CodePipeline 被触发时,它会因“InternalFailure”错误而失败,并且不会给出任何有关失败原因的具体错误。
此外,我还检查了 CloudTrail 日志,在那里我可以看到我的管道在属于 CodeCommit 的“UploadArchive”事件之后失败,并且没有进一步移动。另外,我尝试向管道服务角色和 cloudformation 角色授予管理员权限,但错误仍然相同。
后来,我观察到一件事,那就是当我使用 AWS Cloudformation 控制台更新我的新 Cloudformation 堆栈时,我的堆栈状态将更改为“Update_Complete”状态。然后,如果我尝试将代码更新到 CodeCommit,那么我的管道将成功完成。
所以,当我的堆栈状态为“IMPORT_COMPLETE”时,不确定为什么我的管道会因“InternalFailure”而失败。当我的 CFT 堆栈状态为“IMPORT_COMPLETE”状态时,您能否帮助我了解是否缺少任何特定步骤模具,导致管道因此错误而失败
这是代码管道中的一个错误。我建议向他们提交票证,希望他们能够修复。我只是通过自己的支持才发现这一点。
就我而言,发生这种情况是因为我使用的是 GitHub 版本 1 操作,而我忽略了创建包含访问令牌的密钥。