使用${file(...)}拆分serverless.yml报错,求正确配置方法
Serverless配置文件拆分正确引用方法
两种正确的拆分引用方式:
方式1:子文件包含完整的provider节点
如果你的config/serverless/provider.yml内容是完整的provider配置块:
provider: name: aws runtime: nodejs18.x region: us-east-1 # 其他provider配置项
那么在serverless.yml中直接引用整个文件即可,不需要额外后缀:
provider: ${file(config/serverless/provider.yml)}
方式2:子文件仅包含provider的属性内容
如果config/serverless/provider.yml里只写provider的属性(没有外层的provider键):
name: aws runtime: nodejs18.x region: us-east-1 # 其他provider配置项
serverless.yml中的写法同样直接赋值给根节点的provider:
provider: ${file(config/serverless/provider.yml)}
你之前的错误原因:
- 第一种写法里的
:provider后缀完全多余,因为子文件本身已经包含顶级的provider节点,变量解析时会去文件内容里找provider字段,相当于找{provider: {...}}里的provider属性,自然找不到,导致报错。 - 第二种错误是把provider配置放到了
resources节点下,resources是用来定义云服务资源(比如S3桶、DynamoDB表)的,provider配置必须放在serverless.yml的根级别,所以这种写法完全不符合配置结构,无法生效。
内容的提问来源于stack exchange,提问作者Guglie
相关产品推荐
相关产品推荐

