DVA-C02トラブルシューティングと最適化EASY単一選択

あるWebアプリケーションでAPI GatewayとLambdaを使ったAPIが稼働している。クライアントからのリクエストに対して「HTTP 403 Forbidden」が返される事象が発生した。Lambda関数のログには何もエラーが記録されていない。最もあり得る原因はどれか。

  1. A. API GatewayのリソースポリシーまたはLambdaオーソライザーがリクエストを拒否している
  2. B. DynamoDBへのアクセス権限がLambdaのIAMロールに不足している
  3. C. Lambda関数の同時実行数の上限に達してスロットリングが発生している(HTTP 429が正しいが内部マッピングで403になっている)
  4. D. Lambda関数内でエラーが発生しているが、エラーがキャッチされてログに出力されていない
解答と解説を見る

正解: A

HTTP 403 ForbiddenはAPI Gateway側での認可拒否を意味し、Lambdaが呼ばれる前に返される。Lambda関数ログに何もない(選択肢A)のはLambdaがそもそも実行されていないことを示す。API Gatewayのリソースポリシー、Lambdaオーソライザー(Cognito認証やカスタムオーソライザー)によるアクセス拒否が403の主因。選択肢Dは403ではなくLambda内部エラーであれば500系になり、ログが空にはならない。選択肢CのLambdaスロットリングはHTTP 429として返される(API Gatewayのデフォルトマッピング)。選択肢BのDynamoDB権限不足はLambda実行後に発生するエラーであり、Lambda関数内のログに記録されるはず。トラブルシューティングの順序として、まずAPI Gatewayのアクセスログを確認し、次にオーソライザーの設定を確認することが推奨される。

▸ この試験を本気で演習する(全150問・無料)