Aws lambda 从单独的YAML文件加载信息的无服务器Lambda

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:

我试图将我的环境变量与直接在serverless.yml文件中实现的环境变量分开,并读取我可以使用单独的yaml或json文件,并使用命令${file./file.yml:property}从这些文件中提取值,但是,尽管执行了此过程,我还是收到了一条与环境相关的错误消息:该部分引用了这些自定义设置值,这使我相信它与我的文件选择有关

错误消息:

serverless.yml Run-in stage=dev,我有一个问题。如果我在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}}
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: ''