Amazon API Gateway WebSocket API で発生する 410 GoneException エラーをトラブルシューティングする方法を教えてください。

所要時間1分
0

Amazon API Gateway WebSocket API にメッセージをポストすると発生する 410 GoneException エラーをトラブルシューティングしたいです。

簡単な説明

次の原因で、410 GoneException エラーが発生する場合があります。

  • 接続が確立される前に WebSocket API にメッセージがポストされた
  • 接続が終了したか、存在しない
  • クライアントが切断した後、同じ connectionId を使用して再接続しようとした
  • 接続 ID が無効である

注: WebSocket API では、バックエンドからコールバック応答を送信するための connectionId が必要です。

解決策

WebSocket API のエラーをトラブルシューティングするために、Amazon CloudWatch Logs を有効にします。[ログレベル][Info] を選択すると、すべてのリクエストの実行ログが生成されます。実行ログには、ほとんどの API エラーを特定したりトラブルシューティングしたりするのに参考となる情報が含まれています。例:

詳細については、「API Gateway での CloudWatch ログの形式」を参照してください。

接続を確立するには、WebSocket API にメッセージをポストする前に、AWS SDK の ApiGatewayManagementApi を使用して getConnection 操作を呼び出します。

$connect ルートと統合された Lambda 関数から、postToConnection リクエストを行うことは避けてください。クライアント接続が確立された後にメッセージをポストするには、次の手順を実行します。

  1. 親関数によって非同期的に呼び出される子 Lambda 関数を作成します。
  2. 新しい接続を開始します。次に、** $connect ** ルートが呼び出され、親関数が connectionId を渡して子関数を呼び出します。
  3. 子 Lambda 関数は connectionId を受信し、getConnection 操作を呼び出して接続が有効であることを確認します。
  4. postToConnection メソッドを使用してメッセージを送信します。

関連情報

API ゲートウェイでの WebSocket API の概要

connectionId またはカスタムトークンを API Gateway WebSocket API のヘッダーとして VPC リンク統合に渡す方法を教えてください

コメントはありません

関連するコンテンツ