スキップしてコンテンツを表示

Amazon API Gateway の WebSocket API への接続に関連するエラーのトラブルシューティング方法を教えてください。

所要時間1分
0

Amazon API Gateway の WebSocket API への接続を試行すると、エラーが発生します。

簡単な説明

API Gateway の WebSocket API への接続では、次の原因でエラーが発生する可能性があります。

  • バックエンドにリクエストを行う権限の不足
  • API ID、AWS リージョン、API ステージのフィールドが正しく入力されていない
  • バックエンド統合のエラー
  • AWS Identity and Access Management (IAM) の認証エラー

解決策

WebSocket API にバックエンドへのリクエストに必要な権限があることを確認する

API Gateway は、IAM ロール、ポリシー、タグ、および AWS Lambda オーソライザーを使用して WebSocket API へのアクセスを制御します。バックエンドにリクエストを行うには、API Gateway にはこれらのリソースに対する適切な権限が必要です。詳細については、「API Gateway で WebSocket API へのアクセスを制御、管理する」を参照してください。

さらに、WebSocket API 統合リクエストの構成が適切であることを確認してください。

リクエストが適切な API ID、リージョン、API ステージに送信されていることを確認する

リクエストを行う際は、そのリクエスト情報を検証してください。次のリクエスト URL 例では、次のフィールド内容が適切であることを確認します。

wss://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/production
  • WebSocket API ID は a1b2c3d4e5 である。
  • リクエストのリージョンは us-east-1 である。
  • API ステージproduction が存在する。

CloudWatch ログにエラーが表示されていないか確認する

トラブルシューティング情報の詳細を取得するには、API Gateway WebSocket API のトラブルシューティング用に Amazon CloudWatch Logs を有効化します。バックエンドに Lambda 関数を統合する場合は、CloudWatch ログにエラーが表示されていないか確認します。詳細については、「Lambda 関数ログを CloudWatch Logs に送信する」を参照してください。

API リクエストが署名されていることを確認する

API メソッドで IAM 認証を有効にする場合は、API リクエストが Signature Version 4 (SigV4) で署名されていることを確認してください。詳細については、「署名付き AWS API リクエストを作成する」を参照してください。

API Gateway API で IAM 認証を有効にするには、次の手順を実行します。

  1. API Gateway コンソールで目的の WebSocket API を選択します。
  2. [ルート]$connect を選択します。
    注: 認証設定は、$connect ルートのみに指定できます。[認証] の設定は、$connect ルートに限定されず、API 全体に適用されます。$connect ルートは接続のたび呼び出されるため、$connect ルートは他のすべてのルートを保護します。****
  3. [ルートリクエスト][ルートリクエスト設定][編集] を選択します。
  4. [認証] のドロップダウンリストから [AWS IAM] を選択し、[変更を保存] を選択します。
  5. 変更を反映させるには、WebSocket API をデプロイします。

関連情報

CloudWatch メトリクスを使用して WebSocket API の実行を監視する

AWS Lambda REQUEST オーソライザーを使用して WebSocket API へのアクセスを制御する

AWS公式更新しました 2ヶ月前
コメントはありません

関連するコンテンツ