无服务器嵌入式堆栈创建失败

Posted

技术标签:

【中文标题】无服务器嵌入式堆栈创建失败【英文标题】:Serverless Embedded Stack failed to create 【发布时间】:2022-01-22 02:35:33 【问题描述】:

我在 Serverless 中继承了一个项目,但我以前从未遇到过它,我需要一些帮助。我已经修复了项目中的许多错误和错误,但我被困在一个无法修复的问题上。

以前的开发人员只有 1 个 git 分支(我知道这很神奇),他们使用不同的配置文件从那个分支推送到 AWS。我目前正在尝试创建一些 git 卫生并为项目创建 CI/CD 流程,但我的开发环境不会部署(正常部署 qa 和 prod)。

不幸的是,我无法提供 serverless.yml 或特定的配置文件(由于 NDA),但我可以向您保证,我已经检查了 prod、qa(都可以正常工作)和 dev 配置之间的差异,并且它们都具有相同的参数(其他一切,包括代码,都是相同的)。我检查了开发配置中的资源 ARN,它们似乎也很好。

我得到的错误是:

Serverless Error ----------------------------------------
An error occurred: XXXNestedStack - Embedded stack 
arn:aws:cloudformation:ap-south-1:ID:stack/PROJECTNAME-
XXXNestedStack-STACKID was not successfully created: The following resource(s) failed to 
create: [XXXLogGroup]. .

我之前处理过 CloudFormation 堆栈被卡在删除中的问题,我尝试过清除整个环境并从头开始重新部署所有内容,但它仍然不会成功。你们有没有遇到过这样的事情,如果有的话,你可以告诉我你的情况是什么。

非常抱歉,我无法提供有关该项目的更多信息或错误,如果有人需要更多信息并愿意帮助在 cmets 中告诉我,也许我可以找到一种方法为您提供一些信息.

附:单个 env 为项目消耗的 AWS 资源是:Lambda、Dynamo、Chime、Cognito、SM、CloudFormation 和 SNS(据我所知 - 请记住,我已经继承了这个)。

【问题讨论】:

【参考方案1】:

如果没有实际的模板很难判断,但根据您收到的错误,我将首先查看LogGroup:

日志组名称在 AWS 账户的区域内必须是唯一的。 日志组名称的长度可以在 1 到 512 个字符之间。 日志组名称由以下字符组成:a-z、A-Z、0-9、'_' (下划线)、'-'(连字符)、'/'(正斜杠)和 '.' (句号)。

检查您没有跨环境重复使用 LogGroup 名称。

【讨论】:

这行得通。那里有一个“卡住”的日志组,无法通过 remove 命令删除。非常感谢您的洞察力:)

以上是关于无服务器嵌入式堆栈创建失败的主要内容,如果未能解决你的问题,请参考以下文章

无服务器错误,当自定义命名资源需要替换时,CloudFormation 无法更新堆栈

将现有 Cognito UserPool 导入到无服务器框架堆栈

AWS Amplify 和无服务器堆栈

如何为“无服务器”部署创建一个 s3 存储桶?

tomcat服务无响应堆栈分析

参考无服务器框架中的现有 Cloudformation 堆栈输出