サブスクリプションを作成した後、配信方法を push、pull、エクスポートに変更できます。
準備
- サポートされているサブスクリプションのいずれかを作成します。
必要なロールと権限
サブスクリプション タイプの変更と管理に必要な権限を取得するには、トピックまたはプロジェクトに対する Pub/Sub 編集者 (roles/pubsub.editor
)の IAM ロールを付与するように管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、サブスクリプション タイプを変更して管理するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
サブスクリプション タイプを変更して管理するには、次の権限が必要です。
-
サブスクリプションから pull する:
pubsub.subscriptions.consume
-
サブスクリプションを作成する:
pubsub.subscriptions.create
-
サブスクリプションを削除する:
pubsub.subscriptions.delete
-
サブスクリプションを取得する:
pubsub.subscriptions.get
-
サブスクリプションを一覧表示する:
pubsub.subscriptions.list
-
サブスクリプションを更新する:
pubsub.subscriptions.update
-
サブスクリプションをトピックに接続する:
pubsub.topics.attachSubscription
-
サブスクリプションの IAM ポリシーを取得する:
pubsub.subscriptions.getIamPolicy
-
サブスクリプションの IAM ポリシーを構成する:
pubsub.subscriptions.setIamPolicy
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
アクセス制御は、プロジェクト レベルと個々のリソースレベルで構成できます。あるプロジェクトにサブスクリプションを作成し、別のプロジェクトにあるトピックにアタッチできます。プロジェクトごとに必要な権限があることを確認します。
配信方法を変更する
異なるサブスクリプション タイプ間で切り替えることができます。
Console
サブスクリプションを変更する際の手順は、次のとおりです。
- Trusted Cloud コンソールで、[サブスクリプション] ページに移動します。
- 更新するサブスクリプションの横にある more_vert をクリックします。
- [配信タイプ] で、配信オプションを選択します。
- 必要に応じて、他のサブスクリプション プロパティを入力します。
- [更新] をクリックします。
gcloud
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
push エンドポイント URL を変更するには、
gcloud pubsub subscriptions modify-push-config
コマンドを実行します。gcloud pubsub subscriptions modify-push-config SUBSCRIPTION_ID \ --push-endpoint=PUSH_ENDPOINT
サブスクリプションで pull 配信がすでに使用されている場合、push エンドポイントを設定すると配信方法がプッシュ push 配信に切り替わります。
push エンドポイントを空の文字列に変更すると、push 配信から pull 配信に切り替えることができます。
- PROJECT_ID はプロジェクト ID です。
- SUBSCRIPTION_ID はサブスクリプション ID です。
- PUSH_ENDPOINT は、新しい push エンドポイントとしての適用先にする、変更済みの URL です。例:
https://myproject.appspot.com/myhandler
REST
サブスクリプションの push 構成を変更するには、projects.subscriptions.modifyPushConfig
メソッドを使用します。
リクエスト:
リクエストは、Authorization
ヘッダー内のアクセス トークンにより認証を受ける必要があります。現在のアプリケーションのデフォルト認証情報のアクセス トークンを取得する場合は、gcloud auth application-default print-access-token
を使用します。
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID:modifyPushConfig Authorization: Bearer ACCESS_TOKEN
リクエスト本文:
{ "pushConfig": { "pushEndpoint": "PUSH_ENDPOINT" } }
ここで
レスポンス:
リクエストが成功した場合のレスポンスは空の JSON オブジェクトです。
C++
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の C++ の設定手順を実施してください。詳細については、Pub/Sub C++ API リファレンス ドキュメントをご覧ください。
C#
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の C# の設定手順を実施してください。詳細については、Pub/Sub C# API リファレンス ドキュメントをご覧ください。
Go
次のサンプルでは、Go Pub/Sub クライアント ライブラリのメジャー バージョン(v2)を使用しています。まだ v1 ライブラリを使用している場合は、v2 への移行ガイドをご覧ください。v1 コードサンプルの一覧については、 非推奨のコードサンプルをご覧ください。
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Go の設定手順を実施してください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、Pub/Sub Node.js API リファレンス ドキュメントをご覧ください。
Node.ts
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、Pub/Sub Node.js API リファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Python の設定手順を実施してください。詳細については、Pub/Sub Python API のリファレンス ドキュメントをご覧ください。
Ruby
次のサンプルでは、Ruby Pub/Sub クライアント ライブラリ v3 を使用しています。v2 ライブラリをまだ使用している場合は、 v3 への移行ガイドをご覧ください。Ruby v2 のコードサンプルの一覧については、 非推奨のコードサンプルをご覧ください。
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Ruby の設定手順を実施してください。詳細については、Pub/Sub Ruby API のリファレンス ドキュメントをご覧ください。
次のステップ
gcloud
コマンドを使用して、サブスクリプションを作成または変更する。- REST API を使用してサブスクリプションを作成または変更する。