Lambda と統合する API Gateway エンドポイントの問題をトラブルシューティングする方法を教えてください。

所要時間1分
0

Amazon API Gateway エンドポイントを AWS Lambda と統合したいのですが、問題が発生しています。

簡単な説明

次の要因で、Lambda と統合される API Gateway エンドポイントで問題が発生する場合があります。

  • API ゲートウェイに Lambda 関数のアクセス許可がない。
  • スロットリングが発生している。
  • HTTP ステータスコードのマッピングが正しくないか、見つからない。
  • Lambda サービスの例外が管理されていない。

解決策

注: 次の解決策では、REST API ゲートウェイを使用してトラブルシューティングを行います。

始める前に、Amazon CloudWatch Logs を有効にしてから API ゲートウェイエラーのトラブルシューティングを行います[ログレベル][INFO] を選択すると、すべてのリクエストの実行ログが生成されます。

API ゲートウェイに Lambda 関数のアクセス許可がない

Lambda 関数のアクセス許可が無効というエラーは、API ゲートウェイに Lambda 関数を呼び出すアクセス許可がない場合に発生します。この問題を解決するには、「API Gateway REST API で発生する、Lambda 関数のアクセス許可が無効というエラーを解決する方法を教えてください」をご覧ください。

注: AWS CloudFormation などの別のサービスを使用して API ゲートウェイリソースをデプロイする場合は、AWS::Lambda::Permission リソースにアクセス許可を付与してください。

スロットリングが発生している

多数のリクエストによりバックエンドサービスでスロットリングが発生した場合、API Gateway API は内部サーバーエラーを返す可能性があります。指数関数的バックオフと再試行メカニズムを有効にしてから、リクエストを再試行します。問題が解決しない場合は、API Gateway のクォータ制限を確認してください。サービスクォータを超えた場合は、クォータの引き上げをリクエストしてください

また、Lambda 関数のスロットリングの問題が原因で、「**レート超過」**エラーや「429 TooManyRequestsException」エラーが発生する場合もあります。詳しくは、「"レートを超過しました" や "429 TooManyRequestsException" エラーが発生する Lambda 関数のスロットリングをトラブルシューティングする方法を教えてください」も参照してください。

関数でのスロットリング発生を防ぐために、Lambda 関数の同時実行クォータの引き上げをリクエストしてください。

HTTP ステータスコードのマッピングが正しくないか、見つからない

HTTP ステータスコードのマッピングが正しくないか見つからない場合、次のような 500 エラーメッセージが表示されることがあります。

「設定エラーにより実行に失敗しました。 出力マッピングは無効なメソッド応答を参照しています: 2xx/4xx/5xx」

このエラーを解決するには、正しいステータスコードを返すように API 操作の統合リクエストとレスポンスを設定します

Lambda サービスの例外が管理されていない

Lambda 関数のタイムアウトなどの Lambda サービスの例外を管理していない場合、Lambda.Unknown エラーが発生します。Lambda 関数のタイムアウトを防ぐには、Lambda 関数コードをべき等にします。

詳細とトラブルシューティングについては、「Amazon API Gateway と AWS Lambda のエラー処理パターン」を参照してください。

関連情報

API Gateway REST API の 5xx エラーをトラブルシューティングする方法を教えてください

コメントはありません

関連するコンテンツ