このページでは、オブジェクトの変更に関する通知を Pub/Sub トピックに送信するようにバケットを構成する方法について説明します。通知を受け取る Pub/Sub トピックへの登録の詳細については、サブスクリプション タイプの選択をご覧ください。
始める前に
この機能を使用する前に次の手順を完了します。
Pub/Sub API を有効にする
通知を受け取るプロジェクトの Pub/Sub API を有効にします。
必要なロールを取得する
バケットの Pub/Sub 通知の構成と表示に必要な権限を取得するには、次のロールの付与を管理者に依頼します。
Pub/Sub 通知の構成対象バケットに対するストレージ管理者(
roles/storage.admin
)のロールPub/Sub 通知を受け取るプロジェクトに対する Pub/Sub 管理者(
roles/pubsub.admin
)のロール
これらの事前定義ロールには、Pub/Sub 通知の構成と表示に必要な権限が設定されています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
storage.buckets.get
storage.buckets.update
pubsub.topics.create
pubsub.topics.setIamPolicy
これらの権限は、他の事前定義ロールやカスタムロールを使用して取得することもできます。
バケットにロールを付与する手順については、バケットで IAM を使用するをご覧ください。プロジェクトにロールを付与する方法およびトピックとサブスクリプションへのアクセス制御を設定する方法については、アクセスの制御をご覧ください。
既存の Pub/Sub トピックがあることを確認する
まだ Pub/Sub トピックを作成していない場合は、通知の送信先とする Pub/Sub トピックを作成します。Google Cloud CLI または Terraform を使用してこのページの手順を実行する場合、この手順は不要です。
プロジェクトのサービス エージェントに必要なロールを付与する
Google Cloud CLI または Terraform を使用してこのページの手順を実行する場合、次の手順は不要です。
Cloud Storage バケットを含むプロジェクトに関連付けられているサービス エージェントのメールアドレスを取得します。
関連する Pub/Sub トピックの Pub/Sub パブリッシャー(
roles/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
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。次の情報が含まれる 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 $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
ここで
JSON_FILE_NAME
は、手順 2 で作成したファイルのパスです。BUCKET_NAME
は、通知を生成するバケットの名前です。例:my-bucket
XML API
XML API を使用して Pub/Sub 通知を管理することはできません。
通知構成を取得する
バケットに関連付けられた特定の通知構成を取得する手順は次のとおりです。
コンソール
Google Cloud コンソールでは Pub/Sub 通知を管理できません。代わりに Google Cloud 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
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して、GET notificationConfigs
リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
ここで
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
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して、GET notificationConfigs
リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
ここで、
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
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して、DELETE notificationConfigs
リクエストで JSON API を呼び出します。curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
ここで
BUCKET_NAME
は、通知構成を削除するバケットの名前です。例:my-bucket
NOTIFICATION_ID
は、削除する通知構成の ID 番号です。例:5
送信後、通知構成によってトリガーされたすべての通知が停止するまでに最大 30 秒かかる場合があります。
XML API
XML API を使用して Pub/Sub 通知を管理することはできません。
次のステップ
- Cloud Storage の Pub/Sub 構成について学習する。
- Pub/Sub でサブスクリプションを作成して、Cloud Storage によって送信された通知を確認する。
- 通知をポーリングする Python サンプルアプリを GitHub で確認する。
- Cloud Run 関数を使用して Cloud Storage トリガーでイベントを配信する。