私は、Openshiftで動作しているサービスにv1/health_check
エンドポイントを追加しました。エンドポイントはすべてのhttp動詞を受け入れ、要求にあったものを返します。ランニング例えばHttp Openshiftで呼び出されたときにエンドポイントが消失すると、エンドポイントが削除される
、:それはローカルで実行されているサービスに対して curl -X DELETE -G 'http://localhost:8080/v1/health_check' -F "user_id=1" -F "build_category_id=14" -F "notification_type=slack"
が返されます。私はそれがOpenshift上で実行されているサービスに対して同じカール要求を使用する場合
{
"endpoint": "/v1/health_check",
"form_data": {
"build_category_id": "14",
"notification_type": "slack",
"user_id": "1"
},
"http_method": "DELETE",
"request_data": {}
}
、私が手:
{
"endpoint": "/v1/health_check",
"form_data": {},
"http_method": "DELETE",
"request_data": {}
}
DELETE
メソッドの本体がOpenshiftで失われている理由はありますか?
その他の注意事項:
- それは私がまた私が上にrshを実行すると、これは特にIs an entity body allowed for an HTTP DELETE request?
- を読んだ後、ほとんどのRESTfulなアプローチではないことをいくつかの研究の後に認める
gevent.wsgi
WSGIServer
- を使用してフラスコサービスですOpenshiftポッドを開き、サービスをカールさせると、エンドポイントは期待通りに機能し、エンティティ本体が通過することを意味します。
ルーティングレイヤーを経由しないようにアプリケーションのポッド内からカールリクエストを試してください。ポッド内でインタラクティブシェルを取得するには '' oc rsh''を使い、ウェブコンソールを使って端末を取得してください。 –
大きなポイント! Openshiftノードの内部で試してみたところ、削除要求が通過できるようになりました。 – NateW
httpプローブは 'GET'リクエストに限定されていると思います。代わりに、[docs](https://docs.openshift.org/latest/dev_guide/application_health.html#container-health-checks-using-probes)に示されているコマンドexecメソッドを代わりに使用してみてください。 – brennan