Amazon API Gateway WebSocket API で 410 GoneException エラーを解決する方法を教えてください。

所要時間1分
0

Amazon API Gateway WebSocket API に次のようなメッセージを投稿しようとすると、「410 GoneException」エラーが表示されます。 ... 「エラーメッセージ」:「GoneException: 410」 ... これを解決するにはどうすれば良いですか。

簡単な説明

次の場合、「410 GoneException」エラーが表示されることがあります。

  • 接続が確立される前に WebSocket API にメッセージが投稿された。
  • 接続が終了したか、もう存在していない。
  • クライアントが接続を切断し、同じ connectionId を使用して再接続しようとした。

**注:**WebSocket API では、バックエンドからのコールバックレスポンスの送信に connectionId が必要です。

解決方法

WebSocket API エラーを解決するには、 Amazon CloudWatch Logs を有効にしてください

注意: [Log level] (ログレベル) には、すべてのリクエストの実行ログを生成するために [INFO] を選択します。

実行ログには、ほとんどの API エラーの識別とトラブルシューティングに使用できる情報が含まれています。例:

ログ記録の各タイプの詳細については、「CloudWatch log formats for API Gateway」(API Gateway の CloudWatch ログ形式) を参照してください。

WebSocket API にメッセージを投稿する前に、AWS SDK ApiGatewayManagementApi を使用して getConnection オペレーションを呼び出し、接続が確立されていることを確認してください。

$connect ルートと統合された Lambda 関数から postToConnection リクエストを実行しないでください。たとえば、クライアント接続が確立された後にメッセージを投稿する場合は、次の操作を行います。

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

関連情報

API ゲートウェイの WebSocket API について

connectionId またはカスタムトークンを Amazon API Gateway WebSocket API のヘッダーとして VPC リンク統合に渡すにはどうすればよいですか。

コメントはありません

関連するコンテンツ