成功 sls 删除后,所有 sls 命令均显示“ID X 的堆栈不存在”

Ter*_*lus 6 amazon-web-services aws-cloudformation serverless-framework

成功后sls remove所有sls命令都会失败

id为X的堆栈不存在

检查堆栈、附加堆栈和 S3 部署存储桶是否已删除。尝试删除.serverless/,但没有帮助。

Ken*_*nnu 4

问题在于该${cf:...}语法需要现有 CloudFormation 堆栈的输出,并且当您尚未部署该项目时,该堆栈及其输出尚不存在。

如果您需要从“当前”堆栈内部访问该输出,您应该查看无服务器如何定义输出(此示例来自我的项目之一):

"ServiceEndpoint":{
  "Description": "URL of the service endpoint",
  "Value": {"Fn::Join":["", [
    "https://",
    {"Ref":"ApiGatewayRestApi"},
    ".execute-api.eu-central-1.",
    {"Ref":"AWS::URLSuffix"},"/dev"]]}
}
Run Code Online (Sandbox Code Playgroud)

您可以使用相同的语法在您自己的堆栈中需要的地方“生成”该值,将动态部分替换为无服务器变量,例如${self:provider.region}${self:provider.stage},或者您的项目选择使用的任何变量。例如,将其添加到 Lambda 环境:

provider:
  environment:
    SERVICE_ENDPOINT: {"Fn::Join":["", [
      "https://",
      {"Ref":"ApiGatewayRestApi"},
      ".execute-api.${self:provider.region}.",
      {"Ref":"AWS::URLSuffix"},
      "/${self:provider.stage}"]]}
Run Code Online (Sandbox Code Playgroud)