AWS Lambda: Task timed out
AWS Lambdaで実行時間がタイムアウトした場合のエラー
概要
AWS Lambda関数の実行時間が設定されたタイムアウト値を超えた場合に発生するエラーです。
エラーメッセージ
Task timed out after 3.00 seconds
または CloudWatch Logs で:
REPORT RequestId: xxx Duration: 3000.00 ms Billed Duration: 3000 ms Memory Size: 128 MB Max Memory Used: 64 MB
Status: timeout
原因
- 処理時間の長さ: データ処理や外部API呼び出しに時間がかかる
- コールドスタート: 初回起動時の遅延
- ネットワーク待機: RDSやAPIへの接続待ち
- 無限ループ: コードのバグによる無限ループ
解決策
1. タイムアウト値を増加
| |
| |
2. 非同期処理への変更
| |
3. VPC設定の最適化
| |
4. Provisioned Concurrencyでコールドスタート対策
| |
5. 接続プーリング(RDS Proxy)
| |
6. 処理の分割(Step Functions)
| |
7. メモリ増加でCPU性能向上
| |
8. X-Rayでボトルネック特定
| |
9. 初期化コードの最適化
| |
よくある間違い
- デフォルトの3秒タイムアウトを変更していない
- VPC内Lambdaでインターネットアクセスにパブリックサブネットを使用
- 同期呼び出しで長時間処理を実行
- DB接続をハンドラー内で毎回作成
AWS の他のエラー
AccessDeniedException: User is not authorized
ECS CannotPullContainerError
AccessDenied: User is not authorized to perform sts:AssumeRole
IncompleteSignature: The request signature we calculated does not match
MissingAuthenticationToken: Missing Authentication Token
SignatureDoesNotMatch: The request signature we calculated does not match
この記事は役に立ちましたか?