google-app-engine - 如何通过 app.yaml 将环境变量传递给谷歌应用引擎?
问题描述
我正在使用 Google App Engine 部署节点应用程序(nextjs,node-12)。
要部署应用程序,我运行:
gcloud app deploy
我的 app.yaml 如下(减去变量替换):
runtime: nodejs12
env_variables:
NEXT_PUBLIC_FRONTEND_URL: "A"
在我的代码中是以下行:
const url = `${process.env.NEXT_PUBLIC_FRONTEND_URL}/login/callback`;
当此代码在应用引擎中运行时,url 评估为 B/login/callback
我不明白这种行为。此处的文档(https://cloud.google.com/appengine/docs/standard/nodejs/config/appref)似乎向我表明这应该有效,但事实并非如此。
是否有一个原因?我已经从本地计算机中取消设置变量,以防它们以某种方式通过,并且我删除了 .env 文件以防 nginx 正在采购它或类似的东西。
解决方案
你所做的看起来是正确的。尝试以下故障排除步骤
确认您没有直接在代码中的某处设置值,例如说您调用子进程并将其传递
env
给它,并且您已在此处明确设置值检查您部署的版本(您可以通过云控制台执行此操作,请参见下面的路径)。您有多个版本的应用程序吗?你跑哪一个?
检查您的版本以及正在运行的版本
console.cloud.google.com > App Engine > Versions
要查看每个已部署版本的配置,
select the version and click on 'View' under the 'config' column
. 这将显示该版本的部署app.yaml
文件
推荐阅读
- c# - 在 C# 中使用 Linq 单击按钮时,Json 不会转到下一个或上一个文本
- php - 将类似 NoSQL 的语法转换为 MySQL 语法
- java - 每个盒子包含多个信息的数组
- java - 如何在另一个类中获取一个类的字段名称?
- django - DRF 文件上传,如何解决文件丢失错误?
- bash - 展开条件语句中的最后一个命令
- routes - TYPO3 v10 上的自定义路由方面不起作用
- ruby-on-rails - 提交表单后如何添加附加条件到ransack
- javascript - 如何在 React Native 中在后台发送电子邮件
- mysql - 使用 SQL 计算一周内完成的票数?(每周自动运行)