クラスター全体のプロパティ aws.requestTimeoutMillis は 900,000 ミリ秒 (15 分) に設定されています。しかし、lambda が 200,000 ミリ秒を超えて実行されたとき、AWS アサーションでタイムアウトのエラーが発生します。
{"Error":"com.amazonaws.SdkClientException: Unable to execute HTTP request: Read timed out"}
AWSSolutionKit バージョン 1.0.01 を実行しています。
AWS 側では、lambdaは最大実行時間が 15 分に設定されており、CloudWatch ログには毎回実行が正常に完了していることが示されています。そのため、AWS 側でタイムアウトは発生しません。
Component : API GATEWAY
Release : 10.0
1. 以下の新しい修正が提供されましたので、こちらを適用してください。
AWSSolutionKit-1.0.02.sskar
2. この修正では、新しい 4 つのクラスター全体のプロパティ (CWP) が導入されました。
aws.requestTimeoutMillis
aws.socketTimeoutMillis
aws.connectionTimeoutMillis
aws.executionTimeoutMillis
3. 今回の問題は、aws.socketTimeoutMillis によるものです。デフォルトは、これは AWS によって設定されており 50 秒です。
4. この CWP を設定します。
ソケット タイムアウトが原因でタイムアウトが発生していましたが、aws.socketTimeoutMillis を増やすことで問題が発生しなくなります。
5. aws.socketTimeoutMillis =900000 を設定すると、delay=300000&bytes=250000 のエラーが解消されました。
#