堆栈XXX已创建并成功部署。我更新了一个依赖项,现在想重新部署它,但是当我调用sls deploy
时,它将返回Stack with id YYY does not exist
。但是,堆栈YYY确实存在,并且与堆栈XXX位于同一区域。
我已经删除了堆栈YYY的S3文件,并重新部署了它,但这并不能解决问题。其他人已经讨论了引起问题的sls remove
,但是我在任何一个堆栈上都没有提到它。我还读到问题可能是S3中100个存储桶的软限制,但我没有达到这个极限。
这是在XXX中引用YYY堆栈的位置和方式:
functions:
firstFunctionName:
handler: ./handler.firstFunction
environment:
CONTENT_TABLE: ${cf:YYY.ContentTable}
我希望sls deploy
可以正常运行。这是带有环境信息的错误消息:
Serverless Error ---------------------------------------
Stack with id YYY does not exist
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Issues: forum.serverless.com
Your Environment Information ---------------------------
OS: win32
Node Version: 10.15.3
Serverless Version: 1.46.1
答案 0 :(得分:2)
我发现了问题:
我运行了一个设置env AWS_REGION=us-west-1
的测试,然后尝试在同一终端实例中进行部署。我的无服务器模板设置了region: ${opt:region, env:AWS_REGION, 'us-east-2'}
,所以我通常将其设置为默认值,因为这是所需的区域。但是因为env:AWS_REGION
是由测试设置的,所以它正在部署到实际上没有我正在引用的堆栈的区域。
备选方案是在us-east-2
中运行测试,或者最好在运行部署时始终通过该区域(例如sls deploy --stage dev --region us-east-2
)。