タイムアウトを300秒に設定しています(AWSラムダ関数+ APIゲートウェイをテストするため)が、HTTPieは30秒でタイムアウトし続けます。 30秒に上限はありますか? 私は使っています
http --timeout=300 POST https://...
30はデフォルトのタイムアウト設定であり、上限ではありません。
何らかの理由で、 httpie
は指定したタイムアウトを使用しておらず、30秒でタイムアウトします...
$ http --timeout=300 POST https://...
HTTP/1.1 504 Gateway Timeout
Connection: keep-alive
Content-Length: 41
Content-Type: application/json
Date: ...
{
"message": "Endpoint request timed out"
}
--timeout=300
と--timeout 300
これを試しましたが(違いはないはずですが、確認したかったのですが)、結果は同じです。30秒でタイムアウトになります。 関数呼び出しには約2分(120秒)かかりますが、30秒を超えることはありません。
これはhttpie
タイムアウトではありません。 自分とラムダ関数の間の仲介者がリクエストをタイムアウトしていることを通知する応答を受信しています。 --timeout
はあなたのコンピュータからその仲介者へのものです。 仲介者は、自身からラムダ関数に必要なタイムアウトを設定できます。 これは確かにHTTPieのバグではありません。
実際、これはhttpieの問題です。 私のgunicornのタイムアウトは90秒で、httpieはまだ30秒で停止しています... httpieが停止してから数秒後にサーバーの出力結果がログに表示されるため、gunicornがタイムアウトしないことはわかっています。
@gnulnxデフォルトの30s_connection_タイムアウトがあり、これは--timeout=n
介して変更できます。
(デフォルトのタイムアウトはv2.0.0で削除されます。)
最も参考になるコメント
これは
httpie
タイムアウトではありません。 自分とラムダ関数の間の仲介者がリクエストをタイムアウトしていることを通知する応答を受信しています。--timeout
はあなたのコンピュータからその仲介者へのものです。 仲介者は、自身からラムダ関数に必要なタイムアウトを設定できます。 これは確かにHTTPieのバグではありません。