Node.js 如何使用无服务器框架将环境变量传递给AWS Lambda函数?

Node.js 如何使用无服务器框架将环境变量传递给AWS Lambda函数?,node.js,aws-lambda,environment-variables,serverless-framework,Node.js,Aws Lambda,Environment Variables,Serverless Framework,我正在使用aws节点模板。我想这样做: sls deploy URL='https://postman-echo.com/post' 其中URL是环境变量。我正在尝试将此env变量传递给我的serverless.yml 然后在my handler.js中访问它 我认为问题在于如何将环境变量传递给程序,但我的研究一直没有结果 不要将变量与deploy命令一起传递。而是首先从终端设置它: 在终端中,运行: URL='1〕https://postman-echo.com/post“ 然后跑 sls部

我正在使用aws节点模板。我想这样做:

sls deploy URL='https://postman-echo.com/post'
其中URL是环境变量。我正在尝试将此env变量传递给我的serverless.yml

然后在my handler.js中访问它


我认为问题在于如何将环境变量传递给程序,但我的研究一直没有结果

不要将变量与deploy命令一起传递。而是首先从终端设置它:

在终端中,运行:

URL='1〕https://postman-echo.com/post“

然后跑

sls部署

或者,您可以使用插件:

这里有一个例子:

然后将插件添加到配置文件:

service: myService
plugins:
  - serverless-dotenv-plugin
...
创建常用的dotenv文件
.env
,然后像往常一样访问:

...
provider:
  name: aws
  runtime: nodejs6.10
  stage: ${env:STAGE}
  region: ${env:AWS_REGION}
...
如果您确实需要在控制台上使用不同的URL标志运行它(尽管我建议只使用一个不带命令标志的.env文件),请执行以下操作:

将不同的URL放入:
.env.url1
.env.url2
.env.url3

然后:


sls部署--env url1

您发布的代码工作正常。您只需将URL作为环境变量而不是参数传递

这应该有效(将URL作为环境变量传递):

这不起作用(您正在将URL作为参数传递给
sls deploy
):


如果在没有url标志的情况下运行,您仍然需要执行sls deploy--env还是sls deploy可以工作?
npm i -D serverless-dotenv-plugin
service: myService
plugins:
  - serverless-dotenv-plugin
...
...
provider:
  name: aws
  runtime: nodejs6.10
  stage: ${env:STAGE}
  region: ${env:AWS_REGION}
...
$ URL='https://postman-echo.com/post' sls deploy
$ sls deploy URL='https://postman-echo.com/post'