为啥我的 Java appengine 应用程序在 5 年后没有任何问题出现“500 服务器错误”?

Posted

技术标签:

【中文标题】为啥我的 Java appengine 应用程序在 5 年后没有任何问题出现“500 服务器错误”?【英文标题】:Why do I have "500 Server Error" on my Java appengine app after 5 years without having any problem?为什么我的 Java appengine 应用程序在 5 年后没有任何问题出现“500 服务器错误”? 【发布时间】:2021-10-17 20:53:51 【问题描述】:

我在 5 年前使用 Java appengine 创建了这个网站 (http://speaklikewater.appspot.com/)。它使用一些数据存储文件。

从那以后我再也没有遇到过任何问题。

但是昨天,当我访问我的网站时,我看到了这个错误“500 Server Error”。

错误:服务器错误服务器遇到错误,无法 完成您的请求。请在 30 秒后重试。

我查看了日志文件

我似乎“计费已禁用。关闭实例。”但自从我启动该网站以来,我从未担心过计费问题。

我用的是免费版,他们控制查询的数量。但是该网站每天只有几个查询。

但此错误将在 24 小时后重置。已经超过 24 小时了,但我仍然有这个问题。

您能告诉我如何解决吗?

注意:他们给我发了这封电子邮件

在 2021 年 1 月 31 日之前添加您的付款信息,以继续使用 您的 App Engine 标准应用程序。嗨,洪,

2019 年 11 月 30 日,App Engine 标准环境开始使用 部署期间的 Cloud Build。 Cloud Build 以及所有 Google 云产品,需要有效的付款方式。那时,我们 要求您将您的 App Engine 项目链接到一个结算帐户,其中 有效的付款方式以继续部署到您的项目。

从 2021 年 1 月 31 日起,所有 App Engine 项目都必须链接到 具有有效付款方式的计费帐户以继续运行。应用程序 未使用有效表单关联到结算帐户的引擎应用 2021 年 1 月 31 日之前的付款将被关闭。运行实例 将被终止,并且没有新实例能够启动,直到 付款方式已添加到项目中。

此更改不会影响现有的 App Engine 免费套餐。如果你的 使用量保持在免费套餐配额内,您不会招致 App 发动机费用。但是,任何超出免费套餐配额的使用量都将 导致收费。在此更改之前,如果您超过了免费套餐 使用时,您的应用会停止运行,直到每日配额重置。

我需要知道什么?要求付款方式有助于防止欺诈 和滥用,并使 App Engine 与 Google Cloud 的其余部分保持一致。这 使我们能够花更多时间交付新功能并提供 随着您的业务在 App Engine 上的发展,为您提供支持。

使用 App Engine Flex 或以下 App Engine 标准的项目 运行时始终需要有效的付款方式,而不是 受此更改影响:

Python 3 Java 11 php 7 Go 1.11/1.12+ Ruby NodeJS 我需要做什么? 为避免中断,请按照说明创建新云 计费帐户(如果您没有)并在您的应用上启用计费 引擎项目。

如果您依赖免费层级作为成本控制机制,我们建议您 考虑以下替代方案来管理您的 App Engine 费用:

在 app.yaml 中将 max_instances 设置为 1,以降低风险 超过免费层级。此设置会限制您应用的缩放 能力,但不是硬性限制,并且可能允许过度使用 增加你的账单。设置云预算提醒以在您收到通知时通知您 接近超出您的预算。手动禁用您的应用。 但是,这只能防止与积极运行您的 应用程序,例如实例小时数、网络等。您将继续 在您的应用运行时按固定成本(例如 Cloud Storage 容量)计费 禁用。以编程方式禁用您的应用以限制进一步的费用 一旦达到某个预算阈值。

【问题讨论】:

供应商可以随时根据 TOS 更改其政策。如果您想使用 Google Cloud,请设置结算和付款。注意 - Google 可以删除您未付款的资源,因此请认真对待此通知并按照他们的说明进行操作。 这是一个严重的问题。我在没有计费帐户的 GAE 项目上遇到了同样的问题。我也在寻找有关此的澄清文件。 @Tom,John Hanley 的评论能回答你的问题吗? 我也有同样的问题。我今天注意到了同样的行为。不幸的是,我相信一些免费使用政策已经改变。 【参考方案1】:

根据该电子邮件和Google Cloud's App Engine documentation,您需要添加付款方式,即使您只使用免费套餐。

“虽然您必须为您的帐户提供一种付款方式,但 App Engine 免费层没有改变,也不会消失。”

【讨论】:

【参考方案2】:

从 2021 年 8 月 9 日起,规则发生了变化:

自 2021 年 8 月 9 日起,所有 App Engine 应用都需要一种付款方式才能 继续运行。此要求适用于所有 App Engine 中的应用 运行时,包括 Java 8、Python 2.7、PHP 5 和 Go 1.11 应用程序 标准环境。

在此之前,只有部署应用程序才需要支付方式。

https://cloud.google.com/appengine/docs/standard/payment-instrument

【讨论】:

以上是关于为啥我的 Java appengine 应用程序在 5 年后没有任何问题出现“500 服务器错误”?的主要内容,如果未能解决你的问题,请参考以下文章

在 Google AppEngine 中读取 Java 资源文件

谷歌 AppEngine 数据库

为啥google appengine部署需要几分钟才能更新服务

为啥 Angular 在 GAME 中会失败?

javax.mail.MessagingException:AppEngine 应用程序中的连接错误

使用 Google AppEngine 创建 Java Web 服务