ID为[现有堆栈]的堆栈不存在

时间:2019-08-14 16:00:21

标签: amazon-web-services amazon-cloudformation serverless-framework

堆栈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

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)。