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

Stack with id [existing stack] does not exist

堆栈 XXX 已成功创建和部署。我更新了一个依赖项,现在想重新部署它,但是当我调用 sls deploy 时,它 returns 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

我发现了问题:

我运行一个设置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)。