0
我在Openshift上运行的服务中添加了v1/health_check
端点。端点接受所有http动词并返回请求中的内容。当在Openshift上调用时,Http DELETE端点丢失主体数据
例如,运行: curl -X DELETE -G 'http://localhost:8080/v1/health_check' -F "user_id=1" -F "build_category_id=14" -F "notification_type=slack"
对当它在本地运行的服务回报:
{
"endpoint": "/v1/health_check",
"form_data": {
"build_category_id": "14",
"notification_type": "slack",
"user_id": "1"
},
"http_method": "DELETE",
"request_data": {}
}
当我使用对当上Openshift运行服务的同一卷曲的要求,我得到:
{
"endpoint": "/v1/health_check",
"form_data": {},
"http_method": "DELETE",
"request_data": {}
}
有没有人有任何想法为什么DELETE
方法的身体在Openshift中迷路?
其他说明:
- 它使用
gevent.wsgi
WSGIServer
- 我也有一些研究,这是不是最RESTful方法,经过确认的烧瓶服务尤其是阅读Is an entity body allowed for an HTTP DELETE request?
- 当我的rsh到后Openshift pod和卷曲服务,端点按预期工作,这意味着实体正在通过。
尝试来自应用程序内部的curl请求,以便您不需要通过路由图层。使用''oc rsh''获得一个交互式shell,或者使用web控制台来获取终端。 –
好点!我在Openshift节点内尝试过,删除请求能够通过。 – NateW
我认为http探测仅限于GET请求。也许可以尝试使用命令exec方法,在[docs](https://docs.openshift.org/latest/dev_guide/application_health.html#container-health-checks-using-probes)中演示。 – brennan