无服务器 Lambda 从单独的 YAML 文件加载信息
Serverless Lambda loading information from separate YAML file
我试图将我的环境变量与直接在我的 serverless.yml
文件中实现分开,并阅读我可以使用单独的 yaml 或 json 文件并使用命令从这些文件中提取值${file(./file.yml):property}
,但尽管遵循了此过程,我还是收到一条与 environment:
部分相关的错误消息,该部分引用了这些自定义设置值,这让我相信它与我的文件选择有关。
错误信息:
can not read a block mapping entry; a multiline key may not be an implicit key in "/Users/user/Desktop/Projects/lambdas/playground/serverless.yml" at line 18, column 14:
environment:
serverless.yml (运行 in stage=dev, 我有一个问题。如果我 运行 this in stage=prod 有没问题。):
custom:
domain:
dev: ${file(./local-keys.yml):apiKey}
prod: "domain.com - prod"
apiKey:
dev: ""
prod: "123apikey"
provider:
name: aws
runtime: nodejs10.x
stage: '${opt:stage, 'dev'}'
environment:
DOMAIN: ${self:custom.domain.${self:provider.stage}}
API_KEY: ${self:custom.apiKey.${self:provider.stage}}
本地-keys.yml:
apiKey: "THIS IS A TEST"
我认为这就是你布置舞台的方式。当我 运行 sls print -s dev
时,这对我有用
service: test
custom:
domain:
dev: ${file(./local-keys.yml):apiKey}
prod: "domain.com - prod"
apiKey:
dev: ""
prod: "123apikey"
provider:
name: aws
runtime: nodejs10.x
stage: ${opt:stage}
environment:
DOMAIN: ${self:custom.domain.${self:provider.stage}}
API_KEY: ${self:custom.apiKey.${self:provider.stage}}
sls print -s dev 输出:
service: test
custom:
domain:
dev: THIS IS A TEST
prod: domain.com - prod
apiKey:
dev: ''
prod: 123apikey
provider:
stage: dev
name: aws
runtime: nodejs10.x
environment:
DOMAIN: THIS IS A TEST
API_KEY: ''
我试图将我的环境变量与直接在我的 serverless.yml
文件中实现分开,并阅读我可以使用单独的 yaml 或 json 文件并使用命令从这些文件中提取值${file(./file.yml):property}
,但尽管遵循了此过程,我还是收到一条与 environment:
部分相关的错误消息,该部分引用了这些自定义设置值,这让我相信它与我的文件选择有关。
错误信息:
can not read a block mapping entry; a multiline key may not be an implicit key in "/Users/user/Desktop/Projects/lambdas/playground/serverless.yml" at line 18, column 14:
environment:
serverless.yml (运行 in stage=dev, 我有一个问题。如果我 运行 this in stage=prod 有没问题。):
custom:
domain:
dev: ${file(./local-keys.yml):apiKey}
prod: "domain.com - prod"
apiKey:
dev: ""
prod: "123apikey"
provider:
name: aws
runtime: nodejs10.x
stage: '${opt:stage, 'dev'}'
environment:
DOMAIN: ${self:custom.domain.${self:provider.stage}}
API_KEY: ${self:custom.apiKey.${self:provider.stage}}
本地-keys.yml:
apiKey: "THIS IS A TEST"
我认为这就是你布置舞台的方式。当我 运行 sls print -s dev
时,这对我有用service: test
custom:
domain:
dev: ${file(./local-keys.yml):apiKey}
prod: "domain.com - prod"
apiKey:
dev: ""
prod: "123apikey"
provider:
name: aws
runtime: nodejs10.x
stage: ${opt:stage}
environment:
DOMAIN: ${self:custom.domain.${self:provider.stage}}
API_KEY: ${self:custom.apiKey.${self:provider.stage}}
sls print -s dev 输出:
service: test
custom:
domain:
dev: THIS IS A TEST
prod: domain.com - prod
apiKey:
dev: ''
prod: 123apikey
provider:
stage: dev
name: aws
runtime: nodejs10.x
environment:
DOMAIN: THIS IS A TEST
API_KEY: ''