Cloud Storage サブスクリプションのトラブルシューティング

このページでは、Cloud Storage サブスクリプションに関する一般的なトラブルシューティングのヒントを示します。

Cloud Storage サブスクリプションの状態を確認する

サブスクリプションの状態を確認する手順は次のとおりです。

  1. コンソールで、Pub/Sub サブスクリプション ページに移動します。 Google Cloud

    [サブスクリプション] に移動

  2. Cloud Storage サブスクリプションの [状態] のアイコンを確認します。

    • アイコンが緑色のチェックマークの場合は、サブスクリプションは正常です。

    • アイコンが赤色の感嘆符の場合は、サブスクリプションがエラー状態です。

  3. [Cloud Storage サブスクリプション] をクリックします。

    [サブスクリプションの詳細] ページが開きます。

  4. [サブスクリプションの状態] でエラー メッセージを確認します。

  5. エラー メッセージに応じて、このページの関連セクションに移動して問題をトラブルシューティングします。

問題が解決すると、最終的にサブスクリプションは正常な状態に戻ります。

サブスクリプションを作成または更新できない

Cloud Storage サブスクリプションの作成または更新で発生する可能性のある一般的な問題の一部を以下にご紹介します。

バケットが見つからないエラー

サブスクリプションの作成または更新ワークフローで指定したバケットが存在しない場合、ワークフローは bucket not found エラーを返します。 コンソールでは、次のようなメッセージが表示されます。 Google Cloud

The Cloud Storage bucket specified cannot be found.

この問題を解決するには、バケットを作成するか、既存のバケットを使用するように Cloud Storage ストレージ プランの定期購入を更新してください。

サービス アカウント エラー

Pub/Sub サービス アカウントに適切な権限が構成されていない場合、サブスクリプションの作成または更新ワークフローによってエラーが返されます。 コンソールでは、次のようなメッセージが表示されます。 Google Cloud

Cloud Pub/Sub did not have the necessary permissions configured to access
the provided bucket my-bucket (or the bucket may not exist).
Please verify that the service account
service-112233445566@gcp-sa-pubsub.iam.gserviceaccount.com
was granted the Storage Legacy Bucket Reader and Storage Object Creator
roles for the provided bucket.

この問題を解決するには、サービス アカウントに 正しい権限が付与されているかどうか確認します。

サブスクリプションの状態に赤い感嘆符が表示される

サブスクリプションの作成後にバケットを編集すると、Pub/Sub がバケットにメッセージを書き込む方法に影響する可能性があります。変更によって 問題が発生した場合、サブスクリプションの状態フィールドは エラー状態に設定されます

サブスクリプションの詳細ページで、フィールド Subscription state の状態を確認します。Subscription state フィールドには、より具体的なエラーが含まれます。それは次のいずれかです。

Pub/Sub サブスクリプションがエラー状態の場合、メッセージはバケットに書き込まれず、サブスクリプション バックログに残ります。構成されている場合、アタッチされたデッドレター トピックにはメッセージが配信されないことに注意してください。未確認メッセージは、 message_retention_duration で設定された期間(デフォルトでは 7 日間)保持されます。

サブスクリプションでメッセージの処理が非常に遅い

サブスクリプションの設定によっては、メッセージ処理が遅くなることがあります。

たとえば、Cloud Storage サブスクリプションでメッセージの順序指定を有効にすると、メッセージが Cloud Storage に書き込まれますが、同じ順序指定キーが含まれる後続のメッセージを遅延させるためにファイナライズされません。 パフォーマンスを向上させるには、メッセージの公開時に幅広い順序指定キーを使用するか、ユースケースで必要ない場合はメッセージの順序指定を無効にすることを検討してください。

Cloud Storage サブスクリプションの最大ファイルサイズを小さく設定すると、パフォーマンスに悪影響を及ぼす可能性があります。最大ファイルサイズが小さすぎると、Pub/Sub は各オブジェクトに少数のメッセージしか含まない Cloud Storage オブジェクトを多数作成する可能性があります。オブジェクトの作成とファイナライズのオーバーヘッドが発生すると、メッセージ処理が遅くなります。 パフォーマンスを向上させるには、ストレージ プランの定期購入の最大ファイルサイズの設定を増やすか、ファイルサイズの制限を削除することを検討してください。

割り当ての制限事項

または、プロジェクトが Pub/Sub の push スループットの割り当てに達した可能性があります(pubsub.googleapis.com/regionalpushsubscriber )。割り当て制限が発生しているかどうかを確認するには、push リクエスト指標(subscription/push_request_count )に resource_exhausted エラーがないか確認します。

プロジェクトの割り当てを確認し、十分な割り当てが残っていることを確認します。Pub/Sub サブスクリプションを含むプロジェクトで、[IAM と管理者] > [割り当て] に移動します。pubsub.googleapis.com/regionalpushsubscriber 割り当てを検索します。割り当ての上限に達している場合は、 割り当ての調整を リクエストできます

サブスクリプションで想定よりも多くのファイルが作成される

スケーラビリティを向上させるために、Cloud Storage のストレージ プランの定期購入は複数の Pub/Sub バックエンドによって処理される場合があります。各バックエンドは個別の Cloud Storage ファイルに書き込むため、特にスループットの低いワークロードの場合、Cloud Storage で想定よりも多くのファイルが作成されることがあります。

これは正常な現象です。サブスクリプションで作成されるファイル数を減らす場合は、サブスクリプションのファイル バッチ処理の設定を増やして、より大きなファイルを処理できるようにすることを検討してください。また、ファイルを後処理して、 より少ない数の大きなファイルにまとめることもできます。

次のステップ

  • Cloud Storage サブスクリプションに問題がまだある場合は、サポートの利用をご覧ください。