Aws lambda 从单独的YAML文件加载信息的无服务器Lambda
我试图将我的环境变量与直接在serverless.yml文件中实现的环境变量分开,并读取我可以使用单独的yaml或json文件,并使用命令${file./file.yml:property}从这些文件中提取值,但是,尽管执行了此过程,我还是收到了一条与环境相关的错误消息:该部分引用了这些自定义设置值,这使我相信它与我的文件选择有关 错误消息: serverless.yml Run-in stage=dev,我有一个问题。如果我在stage=prod中运行此操作,则没有问题:Aws lambda 从单独的YAML文件加载信息的无服务器Lambda,aws-lambda,serverless-framework,Aws Lambda,Serverless Framework,我试图将我的环境变量与直接在serverless.yml文件中实现的环境变量分开,并读取我可以使用单独的yaml或json文件,并使用命令${file./file.yml:property}从这些文件中提取值,但是,尽管执行了此过程,我还是收到了一条与环境相关的错误消息:该部分引用了这些自定义设置值,这使我相信它与我的文件选择有关 错误消息: serverless.yml Run-in stage=dev,我有一个问题。如果我在stage=prod中运行此操作,则没有问题: custom:
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}}
local-keys.yml:
我想这就是你的舞台设置。当我运行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打印-系统开发输出:
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: ''
嗯,我在运行sls print-s dev时仍然收到相同的错误。我忘了提到我正在脱机使用serverless,但我不认为这是一个问题,当我将stage从${opt:stage,'dev'}更改为'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}}
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: ''