我为所有lambda中的所有共享内容创建了serverless_common.yml文件,并在我的单个服务中包含了serverless.yml。当我尝试将package.patterns导入到我的单个服务yml文件中时,我在执行sls print操作时遇到以下错误
Serverless Error ----------------------------------------
Configuration error:
at 'functions.app.events[0]': unrecognized property 'enabled'
at 'package.patterns[0]': should be string
Your Environment Information ---------------------------
Operating System: darwin
Node Version: 14.16.1
Framework Version: 2.46.0 (local)
Plugin Version: 5.4.0
SDK Version: 4.2.3
Components Version: 3.12.0#serverless_common.yml
package:
patterns:
- '!target/**'
- '!tests/**'
- '!test/**'
- '!tools/**'
- '!README.md'
- '!node_modules/.bin/**'
- '!serverless/**'
- '!.*'#service1/serverless.yml
package:
individually: true
patterns:
- something-specific-to-service1
- ${file(../serverless_common.yml):package.patterns}
functions:
app:
handler: index.handler
name: service1
events:
- schedule: cron(0 09 * * ? *)
enabled: falseserverless_common.yml
/service1
|- package.json
|- index.js
|- serverless.yml
/service2
|- package.json
|- index.js
|- serverless.yml 发布于 2021-06-18 03:19:30
这些错误警告您有两个缩进问题。第一个是在您的serverless_common.yml文件中。数组项应该再缩进一个位置:
#serverless_common.yml
package:
patterns:
- '!target/**'
- '!tests/**'
- '!test/**'
- '!tools/**'
- '!README.md'
- '!node_modules/.bin/**'
- '!serverless/**'
- '!.*'第二个是在cron表达式中。只有在不使用其他参数的情况下,才会使用一行语法。由于您希望传递enabled: false,因此需要使用多行语法:
#service1/serverless.yml
functions:
app:
handler: index.handler
name: service1
events:
- schedule:
rate: cron(0 09 * * ? *)
enabled: false不幸的是,您选择的语法不会合并这两个数组。您必须单独引用数组中的每一项,或者将serverless.yml重写为serverless.js文件,这将使您更具编程性。
package:
individually: true
patterns:
- something-specific-to-service1
- ${file(../serverless_common.yml):package.patterns.foo}
- ${file(../serverless_common.yml):package.patterns.bar}
# ... etchttps://stackoverflow.com/questions/68021722
复制相似问题