このページでは、Pub/Sub Notifications for Cloud Storage を設定して使用する方法について説明します。Pub/Sub 通知を使用すると、Cloud Storage オブジェクトに対する変更をトラックできます。
前提条件
この機能を使用する前に、以下が必要です。
通知を受け取るプロジェクトの Pub/Sub API を有効にします。
モニタリングするバケットに対して十分な権限を持っていること。
バケットを含むプロジェクトを所有している場合は、必要な権限を持っていると考えられます。
IAM を使用する場合は、
storage.buckets.update
権限が必要です。これを行う方法については、IAM 権限の使用をご覧ください。
通知を受け取るプロジェクトに対して十分な権限を持っていること。
所有するプロジェクトの通知を受け取る場合は、必要な権限を保持していると考えられます。
通知を受け取るトピックを作成する場合は、
pubsub.topics.create
権限が必要です。新規トピックと既存トピックのいずれを使用するかにかかわりなく、
pubsub.topics.setIamPolicy
権限が必要です。通常、トピックの作成者には、そのトピックに対するpubsub.topics.setIamPolicy
があります。こうした Pub/Sub 権限を取得する方法については、Pub/Sub アクセス制御をご覧ください。
通知の送信先とする既存の Pub/Sub トピックが存在する必要があります。
Cloud Storage バケットを含むプロジェクトに関連付けられているサービス エージェントのメールアドレスを取得する。
前の手順で取得したメールアドレスを使用して、目的の Pub/Sub トピックに対する IAM ロール
pubsub.publisher
をサービス エージェントに付与する。
通知構成の適用
次の手順では、すべてのサポート対象イベントの通知を送信するバケットに通知構成を追加します。
gsutil
gsutil notification create
コマンドを使用します。PLACEHOLDERS
は適切な値に置き換えます。
gsutil notification create -t TOPIC_NAME -f json gs://BUCKET_NAME
プロジェクトに存在しない TOPIC_NAME
を使用すると、それが自動的に作成されます。
イベントのサブセットに対して通知を送信するには、-e
フラグを含めます。
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
C# を使用してバケットに対する通知構成を作成するには、CreateTopic のリファレンス ドキュメントをご覧ください。Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Go を使用してバケットに対する通知構成を作成するには、BucketHandle のリファレンス ドキュメントをご覧ください。Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
現在、Java クライアント ライブラリでは Pub/Sub 通知を管理できません。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
NodeJS を使用してバケットに対する通知構成を作成するには、バケットのリファレンス ドキュメントをご覧ください。PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
PHP を使用してバケットに対する通知構成を作成するには、Google Cloud クライアント ライブラリのリファレンス ドキュメントをご覧ください。Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Python を使用してバケットに対する通知構成を作成するには、バケットのリファレンス ドキュメントをご覧ください。Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Ruby を使用してバケットに対する通知構成を作成するには、Google::Cloud::Storage::Bucket
クラスのリファレンス ドキュメントをご覧ください。
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
次の情報を含む .json ファイルを作成します。
PLACEHOLDERS
は適切な値に置き換えます。{ "topic": "projects/PROJECT_ID/topics/TOPIC_NAME", "payload_format": "JSON_API_V1" }
イベントのサブセットに対して通知を送信するには、JSON リクエストの本文に
event_types
フィールドを含めます。cURL
を使用して、POST notificationConfigs
リクエストで JSON API を呼び出します。PLACEHOLDERS
は適切な値に置き換えます。curl -X POST --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
バケットの通知構成の一覧表示
特定のバケットに関連付けられた通知構成を一覧表示するには:
gsutil
gsutil notification list
コマンドを使用します。PLACEHOLDERS
は適切な値に置き換えます。
gsutil notification list gs://BUCKET_NAME
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
C# を使用してバケットに関連付けられた通知構成を一覧表示するには、StorageClient のリファレンス ドキュメントをご覧ください。Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Go を使用してバケットに関連付けられた通知構成を一覧表示するには、BucketHandle のリファレンス ドキュメントをご覧ください。Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
現在、Java クライアント ライブラリでは Pub/Sub 通知を管理できません。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
NodeJS を使用してバケットに関連付けられた通知構成を一覧表示するには、バケットのリファレンス ドキュメントをご覧ください。PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
PHP を使用してバケットに関連付けられた通知構成を一覧表示するには、Google Cloud クライアント ライブラリのリファレンス ドキュメントをご覧ください。Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Python を使用してバケットに関連付けられた通知構成を一覧表示するには、バケットのリファレンス ドキュメントをご覧ください。Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Ruby を使用してバケットに関連付けられた通知構成を一覧表示するには、Google::Cloud::Storage::Bucket
クラスのリファレンス ドキュメントをご覧ください。
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して、GET notificationConfigs
リクエストで JSON API を呼び出します。PLACEHOLDERS
は適切な値に置き換えます。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
通知構成の削除
バケットから既存の通知構成を削除するには:
gsutil
gsutil notification delete
コマンドを使用します。PLACEHOLDERS
は適切な値に置き換えます。
gsutil notification delete projects/_/buckets/BUCKET_NAME/notificationConfigs/CONFIGURATION_NAME
送信後、通知構成によってトリガーされたすべての通知が停止するまでに最大で 30 秒かかります。
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
C# を使用してバケットに対する通知構成を削除するには、StorageClient のリファレンス ドキュメントをご覧ください。Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Go を使用してバケットに対する通知構成を削除するには、BucketHandle のリファレンス ドキュメントをご覧ください。Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
現在、Java クライアント ライブラリでは Pub/Sub 通知を管理できません。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
NodeJS を使用してバケットに対する通知構成を削除するには、通知のリファレンス ドキュメントをご覧ください。PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
PHP を使用してバケットに対する通知構成を削除するには、Google Cloud クライアント ライブラリのリファレンス ドキュメントをご覧ください。Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Python を使用してバケットに対する通知構成を削除するには、通知のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Ruby を使用してバケットに対する通知構成を削除するには、Google::Cloud::Storage::Notification
クラスのリファレンス ドキュメントをご覧ください。
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して、DELETE notificationConfigs
リクエストで JSON API を呼び出します。PLACEHOLDERS
は適切な値に置き換えます。curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/CONFIGURATION_NAME"
送信後、通知構成によってトリガーされたすべての通知が停止するまでに最大で 30 秒かかります。
次のステップ
- Pub/Sub Notifications for Cloud Storage について学習する。
- Pub/Sub でサブスクリプションを作成して、Cloud Storage によって送信された通知を確認する。
- GitHub にある Python サンプルアプリで通知のポーリングを確認する。
- Cloud Storage の Pub/Sub 通知を使用するフォトアルバムを作成する。
- 長時間実行タスクで Pub/Sub を使用する方法を学習する。