google-app-engine - app.yaml 中的用户 error_handlers 以返回 HTTP 响应
问题描述
要引用GCP的文档,您可以error_handlers
在您app.yaml
的配置中使用为不同错误类型返回的自定义错误页面。从文档中只提到.html
正在使用的文件。
有没有办法发送 HTTP 响应而不是 HTML 页面?
例如,可以在 nginx 中通过以下方式实现所需的结果:
server {
error_page 502 @bad_gateway;
location @bad_gateway {
return 502 '{\n\t"success": false,\n\t"code": -1,\n\t"message": "Server is down",\n\t"status_code": 502,\n\t"status_message": "Bad Gateway",\n\t"detailed": ["Server is down"]\n}';
add_header Content-Type "application/json charset=UTF-8" always;
internal;
}
}
解决方案
当 Google App Engine 收到对您的应用程序的 Web 请求时,它会使用与 app.yaml 配置文件中的 URL 对应的处理程序脚本。以下是有关如何在 Google App Engine 标准环境中处理请求的所有相关信息。我会将这个逻辑放在脚本文件中并从那里发送 HTTP 响应,因为 error_handlers 字段专门用于配置自定义错误页面。检查此链接作为您的 app.yaml 文件的参考。
存在 error_handlers 部分的目的是为 App Engine 的以下特定错误代码提供静态文件:over_quota、dos_api_denial 和 timeout。您可以在文档中查看该信息。例如,您可以提供一个 error.json 文件,其中包含 Nginx 示例中提供的所有结构,而不是 error.html 文件
推荐阅读
- typescript - 打字稿类型在传播后丢失
- java - 在 javaFX 中使用 arrayList 实现多个按钮
- java - 如何理解用户输入的类型
- vba - 在 Access 中按月份更改图表的比例
- json - 基于 MongoDB 字段中的单位转换字符串
- mysql - 使用 Group By 时重复值
- wikipedia - commons.wikimedia 上文件的附加链接:是否可以使用 SPARQL 或 API 查询它们?
- ios - 在 iOS (swift4.2) 中使用 life-ray 上传图片
- html - Popover Bootstrap 通过延迟显示和隐藏 HTML 属性的值
- javascript - Javascript按钮滚动顶部并打印