【问题标题】:Unable to access environment variables in google cloud (node js express app)无法访问谷歌云中的环境变量(node js express app)
【发布时间】:2020-02-17 21:57:12
【问题描述】:

我是一名尝试学习 Web 开发的初学者。我已经构建了小型节点 js 应用程序并部署在 heroku 中。我正在尝试在 GCP 中做同样的事情并学习该平台。

使用的代码是@https://github.com/unnikrishnan-r/firstgcpdeployment

我面临的问题是无法访问应用程序中的环境变量

我的 index.js

exports.envVar = (req, res) => {
    // Sends 'bar' as response
    console.log("bbbccc");
    console.log(process.env.JAWSDB_URL);
    res.status(200).send(process.env.JAWSDB_URL);
    return process.env.JAWSDB_URL;
  };

.env.yamlJAWSDB_URL: testtest456

然后我用下面的方法将该功能部署到 gcloud gcloud functions deploy envVar --env-vars-file .env.yaml --runtime nodejs8 --trigger-http;

部署成功,并已使用控制台和 https://us-central1-howtodeployingcp.cloudfunctions.net/envVar

在部署期间发生了这种情况

有人可以帮我吗?

【问题讨论】:

  • 我拉取了您的项目,执行了完全相同的 gcloud 命令,然后针对该函数执行了 curl,一切都按预期运行。我根本无法重现您的问题。
  • @kolban 你能访问process.env.JAWSDB_URL 并获得它的价值吗?
  • 当我运行 curl https://****.cloudfunctions.net/envVar 时,我得到了 testtest456。我没有对您的环境进行任何更改。

标签: node.js express google-cloud-platform environment-variables


【解决方案1】:

看来this line 有问题:

var dbUrl = envVar.envVar();

您在调用函数时没有像预期的那样传入req, res。可能你忘了注释掉this line

【讨论】:

  • 但即便如此,console.log(`ENV VAR: ${process.env.JAWSDB_URL}`) 也会打印出undefined。基本上我的问题是我无法使用传入.env.yaml的环境变量
  • @unni_ramachandran 这正是我现在面临的问题,你找到解决方法了吗?
猜你喜欢
  • 2021-03-27
  • 2019-10-21
  • 1970-01-01
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
  • 2019-06-06
  • 2014-02-11
  • 2018-03-17
相关资源
最近更新 更多