Node.js 如何使用无服务器框架将环境变量传递给AWS Lambda函数?
我正在使用aws节点模板。我想这样做: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部
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'