【发布时间】:2022-01-04 01:13:28
【问题描述】:
我正在部署一个使用 Firebase 托管的前端网站和一个使用云运行托管容器的 nodejs 后端 API。
我正在使用 Firebase 重写将所有 API 调用重定向到云运行服务,以便我可以从 mydomain.com/api/**** 访问 API
"rewrites": [
{
"source": "/api/**",
"run": {
"serviceId": "*****",
"region": "******"
}
}
],
我正在使用 Hapi js 框架,并在服务器配置中将 cors 设置为对所有来源开放
routes : {
cors : { origin: ["*"] },
}
当我使用 google 为托管容器分配的 URL 或使用与 firebase 托管关联的自定义域在本地(Windows 上的本地容器)进行 Get 调用以测试 /api/ping 和 /api/check/{id} 等路由时,我得到 200 响应正如预期的那样。
当我尝试 POST 到 /api/contact 时,我从 Firebase 收到连接超时或 502 Bad Gateway(超时限制为 60 秒)。
我不明白为什么它甚至不适用于我在本地运行的容器?当我运行 nodejs 应用程序时,POST API 响应良好。为什么获取而不是发布?
谢谢
【问题讨论】:
-
你能放一些调试语句来看看调用是否到达后端吗?
-
嗯,这是一个 hapi js 错误。我的站有节点 12,我在容器中使用节点 16。节点 16 的 Hapi js 响应设置为 null。我将节点版本切换为 12,一切运行正常。
标签: node.js firebase docker google-cloud-run hapijs