トラブルシューティング

サブスクリプションを作成できない

以下の項目をすべてご確認ください。

  • name フィールドにサブスクリプション名を指定している。バージョン v1beta2 以降では、サブスクリプション名を projects/project-identifier/subscriptions/subscription-name の形式で指定する必要があります。
  • topic フィールドに、サブスクライブ先とする既存のトピックの名前を指定している。バージョン v1beta2 以降では、トピック名を projects/project-identifier/topics/topic-name の形式で指定する必要があります。
  • 受信 URL のプロトコルとして、pushEndpoint フィールドに https:// を小文字で指定している(http://HTTPS:// は不可)。

push サブスクライバーがメッセージを受信しない

次のことを確認してください。

  • 問題のあるサブスクリプションに関係するエラーがないかどうか、Stackdriver Monitoring を調べます。
  • App Engine では、App Engine エンドポイントの登録に記載されているように、エンドポイント URL のパスに /_ah/push-handlers/ 接頭辞を使用することを推奨します。この設定により、エンドポイントが Cloud Pub/Sub API から push メッセージを受信できるようになります。
  • 他の環境で、ログインせずにインターネットからエンドポイント URL にアクセスできるか確認します。cURL などの診断ツールを使用して URL にアクセスすることで、URL が制限されていないことを確認します。
  • appspot.com 以外のドメインでは、ドメインを Google Cloud Platform Console に登録してください。詳細については、他のエンドポイントの登録をご覧ください。

403 (Forbidden) エラー

このエラーが発生した場合、以下を行ってください。

  • GCP Console で Cloud Pub/Sub API を有効にしていることを確認します。
  • 特に、プロジェクト間の通信のために Cloud Pub/Sub API を使用している場合、リクエストを実行しているプリンシパルが、関係する Cloud Pub/Sub API リソースに必要な権限を持っていることを確認します。
  • Cloud Dataflow を使用している場合、<projectId>@cloudservices.gserviceaccount.com と Compute Engine サービス アカウント <projectId>-compute@developer.gserviceaccount.com の両方が、該当する Cloud Pub/Sub API リソースに対して必要な権限を持っていることを確認します。詳細については、Google Cloud Dataflow セキュリティと権限をご覧ください。
  • App Engine を使用している場合、プロジェクトの権限ページで、App Engine サービス アカウントが編集者としてリストされているかどうか確認します。リストされていない場合、App Engine サービス アカウントを編集者として追加します。通常、App Engine サービス アカウントは <project-id>@appspot.gserviceaccount.com の形式です。
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Pub/Sub ドキュメント