在无服务器框架中的多个文件中声明资源

Jes*_*spc 2 serverless-framework

有没有办法将无服务器框架中的资源定义拆分为多个文件?就像是:

resources:
  - ${resources/base.yml}
  - ${resources/foo.yml}
Run Code Online (Sandbox Code Playgroud)

我一直在尝试多种组合,但是我不断遇到关于找不到引用的错误。

Jes*_*spc 7

即使dashmug的回答是正确的,但我发现我试图使其工作的方式也非常接近有效的解决方案。如该github注释中所述,可以在参考资料部分中引用其他文件:

resources:
   - ${file(resources/first-cf-resources.yml)}
   - ${file(resources/second-cf-resources.yml)}
Run Code Online (Sandbox Code Playgroud)

前提是每个文件都定义了自己的“资源”键,例如:

---
Resources:
  MyCFResource:
    Type:.....
Run Code Online (Sandbox Code Playgroud)

我无法管理的是混合方法,例如:

resources:
  - ${file(resources/first-cf-resources.yml)}
  - ${file(resources/second-cf-resources.yml)}
  SomeResource:
    Type: ...
Run Code Online (Sandbox Code Playgroud)

所以我只是有一个resources / base.yml代替。

  • PSA:如果您以这种方式包含一个空的 .yml 文件(其中空意味着只有“Resources:”标头而没有其他内容),这将严重失败。 (4认同)

Niv*_*zet 7

我不能发表评论,但我想扩大耶稣基督的回答。

在serverless.yml中有一种方法可以实现这种“混合”方法:

resources:
  - ${file(resources/first-cf-resources.yml)}
  - ${file(resources/second-cf-resources.yml)}
  - Resources:
      SomeResource:
        Type: ...
Run Code Online (Sandbox Code Playgroud)

在这种情况下的文件first-cf-resources.ymlsecond-cf-resources.yml必须有一个结构:

Resources:
  SomeResourceA:
    ...
  AnotherResourceB:
    ...
Run Code Online (Sandbox Code Playgroud)