未设置AWS Lambda环境变量,在Node中未定义process.env

Mik*_*sen 5 amazon-web-services node.js aws-lambda

即使Lambda函数的仪表板显示我NODE_ENV被列为环境变量,但process.env.NODE_ENV在运行Node AWS Lambda函数时仍未定义。

此代码...

console.log('node process env NODE_ENV:');
console.log(process.env.NODE_ENV);
Run Code Online (Sandbox Code Playgroud)

记录此:

node process env NODE_ENV:
undefined
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是一个角色问题,因此我授予了其角色对AWS Lambda的所有权限,但没有帮助。

对于它的价值,我正在使用Claudia bot builder,运行npm脚本

"deploy:production": "claudia update --version production --set-env NODE_ENV=production",
Run Code Online (Sandbox Code Playgroud)

但是就像我说的那样,NODE_ENV环境显示在该功能的仪表板中的环境变量列表中。

有任何想法吗?

Mik*_*sen 5

原来问题是 Webpack 被压缩了process.env

我通过使用babel-plugin-transform-inline-environment-variables解决了这个问题,它在构建时内联环境变量。


Y.L*_*Y.L 5

如果您通过谷歌搜索到达这里:

当您在代码中定义名为“process”的函数时,也可能会发生这种情况。该函数将覆盖内部的node.js“process”变量。