“请使用-Stack指定一个堆栈名称或在Samconfig.toml中持续使用”,以使用无服务器框架部署时 我使用无服务器框架(SLS)来部署AWS lambda功能。当我运行时: SLS部署-Stage Dev 我得到这个错误: ✖错误:请使用-Stack选项指定堆栈名称,或者PE ...

问题描述 投票:0回答:1
sls deploy --stage dev

我得到这个错误:

✖ Error: Please specify a stack name using the --stack option, or persist it in the samconfig.toml file.

Context


myserverless.yml已经包含了

service
    字段:
  • service: py-events provider: name: aws
    
    
    以前工作,但突然开始失败。
    我不是明确使用AWSsam
    ,但是我的项目有一个文件。
    depebuglogs
  • 误差跟踪在无服务器框架中,使用
  • template.yaml
  • 代码。
  • 问题: 我如何解析此堆栈名称错误,为什么尽管有一个定义了
    getCfnConfig
我尝试了什么:


MISSING_STACK_NAME

中添加
service
在CLI中指定

stage: dev


swer

当无服务器框架(或像AWS SAM这样的集成工具)无法解析CloudFormation堆栈名称时,就会发生这种错误。这是解决它的方法:

    1。确保正确配置
  • provider
    serverless.yml
    add
    --stack my-stack-dev
  • service
  • 中。堆栈名称自动生成为
    stage
stage
amazon-web-services deployment frameworks serverless
1个回答
0
投票

2。明确定义堆栈名称(可选)

验证:

provider

中的默认堆栈名称:

serverless.yml
3。删除冲突的SAM文件(如果不使用SAM)

如果您不使用AWSSAM


删除
${service}-${stage}
(SAM的配置文件)。
Remove
service: py-events provider: name: aws stage: dev # 👈 Required for stack name resolution region: us-east-1 # Optional but recommended
(如果存在)。

无服务器框架将使用自己的堆栈命名逻辑。

4。如果使用AWSsam

如果您使用sam

(例如,用于其他资源):

创建/更新

serverless.yml
在您的项目root中:
provider: name: aws stackName: py-events-${sls:stage} # e.g., "py-events-dev"

与Sam代替template.yaml

samconfig.toml

  • 为什么突然发生?
    
  • SAM集成冲突:如果最近添加了一个或
    samconfig.toml
    文件,则无服务器框架可能默认为SAM的部署逻辑,该逻辑需要显式堆栈名称。
AWSSDK/CLI UPDATE

:最近的更新可能改变了SAM和无服务器框架的交互方式。


Final Fix(仅无服务器框架)

确定

version = 0.1 [default.deploy.parameters] stack_name = "py-events-dev" region = "us-east-1" 具有sls

    sam deploy --config-file samconfig.toml
  1. template.yaml
    samconfig.toml
  2. 取消与SAM相关的文件(
    serverless.yml
    service
    )。 deploy:
  3. stage

通过强迫无服务器框架使用其内部命名约定,可以解决堆栈名称歧义。

    验证固定
  • 应用解决方案后,检查AWS云形式控制台是否堆栈。
    参考:
  • ServerlessFramework stack配置
  • aws samconfiguration

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.