使用无服务器 v1.4.0 为 AWS Lambda 设置环境变量时遇到问题
Having trouble setting environment variables for AWS Lambda using Serverless v1.4.0
根据文档,我尝试在 provider 下的 serverless.yml 文件中声明环境变量:
provider:
cfLogs: true
name: aws
runtime: nodejs4.3
stage: dev
region: eu-west-1
profile: serverless-admin
environmnent:
IS_REMOTE: ${file(./config.yml):IS_REMOTE}
REMOTE_ENV: "YES"
当我尝试使用 process.env.IS_REMOTE 或 process.env.REMOTE_ENV. 获取它们时,None 可供我使用
这是尝试 console.log 他们的日志:
2017-01-01 06:22:57.777 (+02:00) undefined REMOTE_ENV: undefined
2017-01-01 06:22:57.777 (+02:00) undefined IS_REMOTE: undefined
使用 serverless invoke
(非本地)时,这是在 Lambda 内部。
希望有人能帮我解决这个问题,因为看起来我正在正确地遵循文档。
这个功能对我来说很好用。我相信你打错了什么。
能否请您创建一个新项目并测试以下步骤?也许我们可以通过 MCVE 找到您的问题所在。如果此代码不适合您,请给我反馈。
检查您的无服务器版本(预期:1.4.0)
serverless --version
创建一个新项目
serverless create --template aws-nodejs --name test-project
使用下面的serverless.yml
service: test-project
provider:
name: aws
runtime: nodejs4.3
environment:
VAR_1: foo
functions:
hello:
handler: handler.hello
使用下面的handler.js
module.exports.hello = (event, context, callback) => {
console.log(process.env.VAR_1);
const response = {
statusCode: 200,
body: JSON.stringify({
message: process.env.VAR_1
}),
};
callback(null, response);
};
部署
serverless deploy
测试
serverless invoke --function hello
HTTP 结果:
{
"statusCode": 200,
"body": "{\"message\":\"foo\"}"
}
日志:
2017-01-02T20:13:58.551Z fg57ea3c-e127-11e6-bf5a-93b2958503d8 foo
从代码来看,environment 似乎拼错了。
根据文档,我尝试在 provider 下的 serverless.yml 文件中声明环境变量:
provider:
cfLogs: true
name: aws
runtime: nodejs4.3
stage: dev
region: eu-west-1
profile: serverless-admin
environmnent:
IS_REMOTE: ${file(./config.yml):IS_REMOTE}
REMOTE_ENV: "YES"
当我尝试使用 process.env.IS_REMOTE 或 process.env.REMOTE_ENV. 获取它们时,None 可供我使用
这是尝试 console.log 他们的日志:
2017-01-01 06:22:57.777 (+02:00) undefined REMOTE_ENV: undefined
2017-01-01 06:22:57.777 (+02:00) undefined IS_REMOTE: undefined
使用 serverless invoke
(非本地)时,这是在 Lambda 内部。
希望有人能帮我解决这个问题,因为看起来我正在正确地遵循文档。
这个功能对我来说很好用。我相信你打错了什么。
能否请您创建一个新项目并测试以下步骤?也许我们可以通过 MCVE 找到您的问题所在。如果此代码不适合您,请给我反馈。
检查您的无服务器版本(预期:1.4.0)
serverless --version
创建一个新项目
serverless create --template aws-nodejs --name test-project
使用下面的serverless.yml
service: test-project provider: name: aws runtime: nodejs4.3 environment: VAR_1: foo functions: hello: handler: handler.hello
使用下面的handler.js
module.exports.hello = (event, context, callback) => { console.log(process.env.VAR_1); const response = { statusCode: 200, body: JSON.stringify({ message: process.env.VAR_1 }), }; callback(null, response); };
部署
serverless deploy
测试
serverless invoke --function hello
HTTP 结果:
{
"statusCode": 200,
"body": "{\"message\":\"foo\"}"
}
日志:
2017-01-02T20:13:58.551Z fg57ea3c-e127-11e6-bf5a-93b2958503d8 foo
从代码来看,environment 似乎拼错了。