このページでは、オブジェクトの変更に関する通知を Pub/Sub トピックに送信するようにバケットを構成する方法について説明します。通知を受け取る Pub/Sub トピックへの登録の詳細については、サブスクリプション タイプの選択をご覧ください。
始める前に
この機能を使用する前に、以下が必要です。
通知を受け取るプロジェクトの Pub/Sub API を有効にします。
モニタリングするバケットに対して
storage.buckets.update
とstorage.buckets.get
の権限がある。これを行う方法については、IAM 権限の使用をご覧ください。バケットを含むプロジェクトを所有している場合は、必要な権限がすでにあると考えられます。通知を受け取るプロジェクトに対して十分な権限を持っていること。
所有するプロジェクトの通知を受け取る場合は、必要な権限を保持していると考えられます。
通知を受け取るトピックを作成する場合は、
pubsub.topics.create
権限が必要です。新規トピックと既存トピックのいずれを使用するかにかかわりなく、
pubsub.topics.setIamPolicy
権限が必要です。通常、トピックの作成者には、そのトピックに対するpubsub.topics.setIamPolicy
があります。こうした Pub/Sub 権限を取得する方法については、Pub/Sub アクセス制御をご覧ください。
通知の送信先とする既存の Pub/Sub トピックが存在する必要があります。
Cloud Storage バケットを含むプロジェクトに関連付けられているサービス エージェントのメールアドレスを取得する。
前の手順で取得したメールアドレスを使用して、目的の Pub/Sub トピックに対する IAM ロール
pubsub.publisher
をサービス エージェントに付与する。
通知構成を適用する
次の手順では、すべてのサポート対象イベントの通知を送信するバケットに通知構成を追加します。
コンソール
Google Cloud コンソールでは Pub/Sub 通知を管理できません。代わりに gcloud CLI または使用可能なクライアント ライブラリのいずれかを使用してください。
コマンドライン
gcloud storage buckets notifications create
コマンドを使用します。
gcloud storage buckets notifications create gs://BUCKET_NAME --topic=TOPIC_NAME
ここで
BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
。TOPIC_NAME
は、通知の送信先の Pub/Sub トピックです。プロジェクトに存在しないトピックを指定すると、トピックが作成されます。
イベントのサブセットに対して通知を送信するには、--event-types
フラグを含めます。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP を使用してバケットに対する通知構成を作成するには、Google Cloud クライアント ライブラリのリファレンス ドキュメントをご覧ください。Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Terraform
バケットに通知構成を追加するには、Terraform リソースを使用します。
REST API
JSON API
- OAuth 2.0 Playground から認可アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
次の情報が含まれる JSON ファイルを作成します。
{ "topic": "projects/PROJECT_ID/topics/TOPIC_NAME", "payload_format": "JSON_API_V1" }
ここで
PROJECT_ID
は、通知を送信する Pub/Sub トピックに関連付けられたプロジェクトの ID です。例:my-pet-project
TOPIC_NAME
は、通知の送信先の Pub/Sub トピックです。例:my-topic
イベントのサブセットに対して通知を送信するには、JSON リクエストの本文に
event_types
フィールドを含めます。cURL
を使用して、POST notificationConfigs
リクエストで JSON API を呼び出します。curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
ここで
JSON_FILE_NAME
は、手順 2 で作成したファイルのパスです。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、通知を生成するバケットの名前です。例:my-bucket
XML API
XML API を使用して Pub/Sub 通知を管理することはできません。
通知構成の取得
バケットに関連付けられた特定の通知構成を取得するには:
コンソール
Google Cloud コンソールでは Pub/Sub 通知を管理できません。代わりに gcloud CLI または使用可能なクライアント ライブラリのいずれかを使用してください。
コマンドライン
gcloud storage buckets notifications describe
コマンドを使用します。
gcloud storage buckets notifications describe projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
ここで
BUCKET_NAME
は、通知構成を取得するバケットの名前です(例:my-bucket
)。NOTIFICATION_ID
は、関連する構成の ID 番号です。例:5
正常に終了すると、レスポンスは次の例のようになります。
etag: '132' id: '132' kind: storage#notification payload_format: JSON_API_V1 selfLink: https://www.googleapis.com/storage/v1/b/my-bucket/notificationConfigs/132 topic: //pubsub.googleapis.com/projects/my-project/topics/my-bucket
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP を使用してバケットに対する通知構成を取得するには、Google Cloud クライアント ライブラリのリファレンス ドキュメントをご覧ください。Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から認可アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、GET notificationConfigs
リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、通知構成を取得するバケットの名前です。例:my-bucket
NOTIFICATION_ID
は、取得する通知構成の ID 番号です。例:5
XML API
XML API を使用して Pub/Sub 通知を管理することはできません。
バケットの通知構成を一覧表示する
特定のバケットに関連付けられたすべての通知構成を一覧表示するには:
コンソール
Google Cloud コンソールでは Pub/Sub 通知を管理できません。代わりに gcloud CLI または使用可能なクライアント ライブラリのいずれかを使用してください。
コマンドライン
gcloud storage buckets notifications list
コマンドを使用します。
gcloud storage buckets notifications list gs://BUCKET_NAME
ここで、BUCKET_NAME
は、通知構成を一覧表示するバケットの名前です。例: my-bucket
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP を使用してバケットに関連付けられた通知構成を一覧表示するには、Google Cloud クライアント ライブラリのリファレンス ドキュメントをご覧ください。Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から認可アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、GET notificationConfigs
リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、通知構成を一覧表示するバケットの名前です。例:my-bucket
XML API
XML API を使用して Pub/Sub 通知を管理することはできません。
通知構成を削除する
バケットから既存の通知構成を削除するには:
コンソール
Google Cloud コンソールでは Pub/Sub 通知を管理できません。代わりに gcloud CLI または使用可能なクライアント ライブラリのいずれかを使用してください。
コマンドライン
gcloud storage buckets notifications delete
コマンドを使用します。
gcloud storage buckets notifications delete projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
ここで
BUCKET_NAME
は、通知構成を削除するバケットの名前です。例:my-bucket
NOTIFICATION_ID
は、削除する構成の ID 番号です。例:5
正常に終了すると、レスポンスは次の例のようになります。
Completed 1
送信後、通知構成によってトリガーされたすべての通知が停止するまでに最大 30 秒かかる場合があります。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP を使用してバケットに対する通知構成を削除するには、Google Cloud クライアント ライブラリのリファレンス ドキュメントをご覧ください。Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Terraform
作成した通知構成を削除するには、Terraform ファイルを含むフォルダから terraform destroy
を実行します。
REST API
JSON API
- OAuth 2.0 Playground から認可アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、DELETE notificationConfigs
リクエストで JSON API を呼び出します。curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、通知構成を削除するバケットの名前です。例:my-bucket
NOTIFICATION_ID
は、削除する通知構成の ID 番号です。例:5
送信後、通知構成によってトリガーされたすべての通知が停止するまでに最大 30 秒かかる場合があります。
XML API
XML API を使用して Pub/Sub 通知を管理することはできません。
次のステップ
- Pub/Sub Notifications for Cloud Storage について学習する。
- Pub/Sub でサブスクリプションを作成して、Cloud Storage によって送信された通知を確認する。
- GitHub にある Python サンプルアプリで通知のポーリングを確認する。
- Cloud Functions を使用して Cloud Storage トリガーでイベントを配信する。