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

时间:2017-12-15 13:26:51

标签: serverless-framework

有没有办法将无服务器框架中的资源定义拆分成多个文件?类似的东西:

resources:
  - ${resources/base.yml}
  - ${resources/foo.yml}

我一直在尝试多种组合,但我一直收到有关未找到引用的错误。

3 个答案:

答案 0 :(得分:4)

即使 dashmug 的答案是正确的,我发现我尝试使其工作的方式也非常接近有效的解决方案。如this github comment中所述,可以引用资源部分中的其他文件:

resources:
   - ${file(resources/first-cf-resources.yml)}
   - ${file(resources/second-cf-resources.yml)}

前提是每个文件都定义了一个"资源"它自己的关键,如:

---
Resources:
  MyCFResource:
    Type:.....

我没有管理的是采用混合方法,例如:

resources:
  - ${file(resources/first-cf-resources.yml)}
  - ${file(resources/second-cf-resources.yml)}
  SomeResource:
    Type: ...

所以我只需要一个资源/ base.yml。

答案 1 :(得分:4)

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

有一种方法可以实现这种“混合”方法:

- "${file(resources/first-cf-resources.yml)}"
- "${file(resources/second-cf-resources.yml)}"
- Resources:
    SomeResource:
      Type: ...

答案 2 :(得分:1)

请注意,resources属性必须是包含Resources属性的对象,一组资源,例如您在代码段中所需的资源。

因此,要使用外部文件引用,您可以执行类似......

的操作
resources
    Resources:
        UsersTable: ${file(../resources/base.yml):UsersTable}
        FooTable: ${file(../resources/foo.yml):FooTable}

参考:Reference variables in other files