【问题标题】:How can you pass environment variables to google app engine via app.yaml?如何通过 app.yaml 将环境变量传递给谷歌应用引擎?
【发布时间】:2021-10-18 01:04:11
【问题描述】:

我正在使用 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 正在采购它或类似的东西。

【问题讨论】:

  • 没有理由,你做得很好。您确定您的环境变量创建良好吗?您是否请求最新部署的版本?执行gcloud app versions list 获取最新部署的版本,确保将流量拆分为 1.0。然后执行gcloud app versions descrive <versionid> --service=<service name> 来检查服务的配置。

标签: google-app-engine google-cloud-platform


【解决方案1】:

你所做的看起来是正确的。请尝试以下故障排除步骤

  1. 确认您没有直接在代码中的某处设置值,例如假设您调用了一个子进程并将env 传递给它,并且您已在此处明确设置了值

  2. 检查您部署的版本(您可以通过云控制台执行此操作,请参见下面的路径)。您有多个版本的应用程序吗?你跑的是哪一个?

检查您的版本以及正在运行的版本

console.cloud.google.com > App Engine > Versions

要查看每个已部署版本的配置,

select the version and click on 'View' under the 'config' column 。这将显示为该版本部署的app.yaml 文件

【讨论】:

    猜你喜欢
    • 2019-06-05
    • 2021-11-29
    • 2020-07-26
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    相关资源
    最近更新 更多