AWSのlambdaが上手く動かない時のトラブルシュート(備忘録)

概要

lambdaをjavaで実装中に陥った多様な問題とその解決法を備忘録として記していく(都度追記する予定)

CloudwatchLogsにログが残らない場合

メモリ不足の可能性

  • 現象
    • Internal server error になる
    • CloudWatch Logs を確認すると、開始と終了のログしか残っていない状態
    • try-catchしているのにcatchに入らない場合
  • 可能性
  • 対応
  • メモ
    • ログには使用したメモリが表示されておりMAXを超えていないように見えたとしても、どうやら実行中に瞬発的に消費して落ちるケースがあるみたい

CloudwatchLogsにログが残る場合(例外が捕捉できる場合)

権限不足の可能性

  • 試行
    • まずはtry-catchして例外のメッセージを確認する
  • 可能性
    • 権限不足でアクセスできていない可能性がある
  • 対応
    • 必要な権限をlambdaの実行ロールに付ける

タイムアウトになっている場合

単純に処理時間が長い可能性

lambdaから接続先への通信経路が確立されていない可能性

  • 確認
    • 接続したいリソースはグローバルか?VPC内か?
      • VPC内の場合はルーティングテーブルに問題が無いか?
    • lambda自身はグローバル配置か?VPC内配置か?
      • VPC内配置の場合は配置しているサブネットは正しいか?