push サブスクライバーは、Pub/Sub からユーザー指定の HTTPS エンドポイントにメッセージが送信される Pub/Sub サブスクライバーの一種です。ユーザーは、push サーバーのリクエストに対して HTTP 200 レスポンスを返すことで、push されたメッセージを確認します。このドキュメントでは、Pub/Sub push サブスクリプションに関する一般的なトラブルシューティングのヒントを示します。push サブスクリプションの詳細については、push サブスクライバー ガイドをご覧ください。
Pub/Sub サブスクリプションを効果的にモニタリングするには、まず配信レイテンシの健全性スコア(subscription/delivery_latency_health_score)を確認して、どの要因が予期しないレイテンシに貢献しているかを確認することをおすすめします。
push エンドポイントの失敗または遅延
エンドポイントがエラー レスポンス コードを返した場合、メッセージ配信は失敗したとみなされ、後で再試行されます。これにより、エンドポイントが重複したメッセージを受信する可能性があります。
push サブスクリプションのモニタリングに使用できる指標は複数あります。Cloud Metrics の subscription/push_request_count 指標は、push エンドポイントからのレスポンスを response_code と response_class に分類します。レスポンスは、エンドポイントの潜在的な誤動作を特定するのに役立ちます。この指標に
ack 以外の response_class を持つデータがある場合、push エンドポイントが Pub/Sub
にエラーを返していることを示します。最も一般的なエラーは次のとおりです。
deadline_exceededレスポンス クラスは、push エンドポイントが必要な確認応答(ack)の期限内に応答しなかったことを示します。Thesubscription/push_request_latencies指標は、push ack レイテンシの追跡に役立ちます。invalidレスポンス クラスは、エンドポイントが Pub/Sub が理解または正しく処理できないレスポンスを返したことを示します。remote_server_4xxレスポンス クラスは通常、認証または権限の問題を示します。これらはエンドポイントから返される HTTP レスポンス コードであるため、このレスポンス コードが返されるシナリオを確認してください。認証が有効になっている場合は、アカウントにエンドポイントに対する適切な権限があることを確認します。push サブスクリプションでの認証の仕組みについて詳しくは、こちらをご覧ください。remote_server_5xxレスポンス クラスは、エンドポイント側のサーバーサイドの問題を示します。エンドポイントはリクエストを処理できません。これは、メンテナンスまたは停止が原因である可能性があります。エンドポイントをホストするサーバーのステータスを確認します。unreachableレスポンス クラスは、エンドポイント サーバーにまったく到達できないことを示します。エンドポイント URL に入力ミスがないか確認します。
Pub/Sub API の最も一般的な エラーコードの詳細
VPC-SC 境界内の push サブスクリプションの制限
プロジェクトで VPC Service Controls(VPC-SC)保護が有効になっている場合、push
サブスクリプションの作成には制限があります。既存の push サブスクリプションは引き続き機能しますが、新しい push サブスクリプションを作成すると、エラー Request is prohibited by organization's policy が表示されます。具体的には、push エンドポイントがデフォルトの run.app URL を使用する Cloud Run
サービスの場合にのみ、新しい push サブスクリプションを作成できます。詳細と具体的な制限については、Pub/Sub ドキュメントと VPC-SC ドキュメントをご覧ください。