Node.js 在同一个Google App Engine应用程序下设置两个服务(500错误:服务器错误)

Node.js 在同一个Google App Engine应用程序下设置两个服务(500错误:服务器错误),node.js,google-app-engine,Node.js,Google App Engine,我目前有一个应用程序运行在谷歌应用程序引擎标准版nodejs10上,我们称之为App1。此应用程序当前使用CloudSQL数据库。我想开始添加使用相同数据存储和CloudSQL实例的其他服务,因为所有应用程序都使用相同的数据 App1当前处于活动状态且工作正常。显然,它有自己的app.yaml,看起来像这样,这是默认服务: env: standard resources: cpu: 1 memory_gb: 0.5 disk_size_gb: 10 handlers:

我目前有一个应用程序运行在谷歌应用程序引擎标准版nodejs10上,我们称之为App1。此应用程序当前使用CloudSQL数据库。我想开始添加使用相同数据存储和CloudSQL实例的其他服务,因为所有应用程序都使用相同的数据

App1当前处于活动状态且工作正常。显然,它有自己的app.yaml,看起来像这样,这是默认服务:

env: standard

resources:  
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

handlers:

  - url: /case/upsertCase
    static_dir: public
    secure: always

env_variables:
App2有自己的.yaml文件,名为App2.yaml,看起来像这样,此服务称为App2:

service: app2
runtime: nodejs10
env: standard

resources:  
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

handlers:

  - url: /register/call
    static_dir: public
    secure: always
我使用:gcloud deploy app部署App1 我使用:gclour deploy app App2.yaml部署App2

出于某种原因,当我尝试点击app2-dot-app1.appspot.com/register/call时,我得到了一个500。当我尝试点击时,会收到一条“您的连接不是私有的”错误消息

可以在同一个应用程序中运行两个服务吗?我已将它们设置为使用同一端口,对吗


我一直在摆弄它,用谷歌搜索,但我在任何地方都找不到答案

所以我今天早上来到办公室,看到一个错误:

Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 10.x
昨天没有发生。因此,我对我的.yaml文件做了一些更改,昨天我已经做了一些更改,以便在节点版本之间进行交换,从10到12,页面开始工作

与此同时,我在我的开发机器上升级了npm和node,但除了对.yaml文件的更改外,我没有更改我应用程序中的任何代码


所以,我不知道为什么它今天早上开始工作,但它确实起了作用。

像您的情况中所述的问题偶尔会出现。如果您再次遇到此问题,您可以查看以下几点:

之所以出现500错误,是因为网站服务器出现了问题,但服务器无法更具体地说明具体问题是什么

解决此问题的一些方法包括刷新网页或稍后再次访问网页。此外,请确保已在网页上正确安装或更新SSL证书。下面的链接提供了有关此类验证的更多详细信息: 您可能希望查看Stackdriver,以便更好地了解发生此错误的原因:

“您的连接不是私有的”错误消息出现,因为Google不会为appspot.com上托管的双通配符域颁发SSL证书。此链接提供了有关如何管理通配符映射的更全面的说明:

另外需要指出的是,如果在服务目录上方的applications top/root目录中有代码,那么服务可能无法访问该目录中的代码。尤其是app2.yaml文件可能是问题的实际原因。它可能被解释为单个服务应用程序的.yaml文件。有关此问题的更多详细信息,请查看提供的链接:

在回答你的问题时。根据应用程序层次结构,实际上允许您在单个应用程序上运行多个服务(每个应用程序最多可免费运行5个服务)。您可能需要查看应用程序引擎概述以了解更多信息:

事实上,可以在同一应用程序的两个不同服务上运行相同的端口号。由于您在app engine中运行不同的服务,因此您已经在运行了 这些服务中包含不同IP地址的虚拟机实例。 只要IP地址不同,您就可以使用相同的端口号 这两项服务。

如果请求以某种方式进入默认服务,您是否可以检查应用程序日志?非常彻底。非常感谢。