在 Heroku 上部署后 API 端点返回 500 错误

Posted

技术标签:

【中文标题】在 Heroku 上部署后 API 端点返回 500 错误【英文标题】:API endpoints returning 500 err after deploy on Heroku 【发布时间】:2021-10-17 10:48:19 【问题描述】:

API 端点在我的本地机器上运行良好,但是当我将 Rails 项目部署到 Heroku 时,一些端点返回 500 Internal Server Error。我的技术包如下,因为我找不到在 Heroku 上观看 Rails 日志消息的方法,我无法分享任何详细信息。对我有帮助的是 500 错误的一般答案,例如可能导致此问题的原因以及可能在 Heroku 上检查 Rails 日志消息的方法。谢谢。

MongoDB、ElasticSearch、Redis、Swagger

Heroku 日志上的错误消息是 Completed 500 Internal Server Error in 27ms (MongoDB: 0.0ms)

此外,在我的本地我收到以下错误,但端点返回 200 OK。 HTTP parse error, malformed request ()

【问题讨论】:

如果您安装了Heroku CLI,运行heroku logs --dyno=web --app=my-app -t 将允许您查看日志。 不幸的是,任何未捕获的错误都会导致 Rails 返回 500 错误,因此没有通用的答案可以帮助您。您将需要弄清楚如何访问您的应用日志以了解正在发生的事情。 您本地计算机上的malformed request 错误可能与使用 HTTP 运行 Web 服务器但发出 HTTPS 请求有关。 谢谢你们,我意识到问题是弹性搜索 gem 上的 BONSAI 连接在 > 7.13 版本上不支持,但问题是我在 【参考方案1】:

我意识到问题是 ElasticSearch Gem 上的 BONSAI 连接在 > 7.13 版本上不受支持

【讨论】:

以上是关于在 Heroku 上部署后 API 端点返回 500 错误的主要内容,如果未能解决你的问题,请参考以下文章

django 在 heroku 上部署单独的 web 和 api 端点

React 应用在部署到 Heroku 后没有得到 API 结果

Prisma 1 + MongoDB Atlas 部署到 Heroku 返回错误 404

在heroku上部署后无法读取mongo数据库,返回503错误,但它在本地工作

Rails API 422 无法处理的实体:没有可用的验证密钥,heroku

在 Heroku 上部署 Django API + React 应用程序