オブジェクト変更の登録

このページでは、Google Cloud Pub/Sub Notifications for Google Cloud Storage を設定して使用する方法について説明します。Google Cloud Pub/Sub Notifications では、Cloud Storage バケット内のオブジェクトに関する変更内容を記録できます。Cloud Pub/Sub for Cloud Storage について詳細は、Notifications の概念ページを参照してください。

前提条件

この機能を使用する前に、以下が必要です。

  1. モニタリングするバケットに対して十分な権限を持っていること。

  2. 通知を受け取るプロジェクトの Cloud Pub/Sub API を有効にします。

    API を有効にする

  3. 通知を受け取るプロジェクトに対して十分な権限を持っていること。

    • 通知を受け取るトピックを作成する場合、pubsub.topics.create 権限が必要です。

    • 新規トピックまたは既存トピックを使用する予定がある場合は、projects.topics.setIamPolicy 権限が必要です。トピックを作成する場合、通常は projects.topics.setIamPolicy 権限を持っています。

      これらの Cloud Pub/Sub 権限を取得する方法については、Cloud Pub/Sub アクセス制御を参照してください。

  4. gsutil コマンドライン ツールを使用せずに JSON API に直接アクセスする場合は、以下も必要です。

    1. 通知を送信する既存の Cloud Pub/Sub トピック を持っていること。

    2. Cloud Storage バケットを含むプロジェクトに関連付けられているサービス アカウントのメールアドレスを取得すること。

      サービス アカウントの電子メールアドレスを確認するには、[YOUR_PROJECT_NAME] をバケットを含むプロジェクトの名前に置き換えて、次の URL にクエリを実行します。

      https://www.googleapis.com/storage/v1/projects/[YOUR_PROJECT_NAME]/serviceAccount

      このクエリの結果は、次のようになります。

      {
       "email_address": "[YOUR_PROJECT_NAME]@gs-project-accounts.iam.gserviceaccount.com",
       "kind": "storage#serviceAccount"
      }

    3. 前の手順で取得した電子メールアドレスに、任意の Google Cloud Pub/Sub トピックの IAM 役割 pubsub.publisher を指定します。

      指定する方法については、Cloud Pub/Sub アクセス制御を参照してください。

通知設定の適用

次の手順では、すべてのサポートされているイベントの通知を送信するバケットに通知設定を追加します。サブセットのイベントの通知を送信するには、gsutil コマンドで -e フラグを付加するか、JSON リクエストの本文に event_types キーを含めます。

gsutil

gsutil notification create コマンドを使用して、[VALUES_IN_BRACKETS] を適切な値に置き換えます。

gsutil notification create -t [TOPIC_NAME] -f json gs://[BUCKET_NAME]

プロジェクトに存在しない [TOPIC_NAME] を使用すると、それが自動的に作成されます。

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。

  2. 次の情報を含む json ファイルを作成し、[VALUES_IN_BRACKETS] を適切な値と置き換えます。

    {
       "topic": "projects/[YOUR_PROJECT_NAME]/topics/[YOUR_TOPIC_NAME]",
       "payloadFormat": "JSON_API_V1"
    }

  3. cURL を使用して POST notificationConfigs リクエストで JSON API を呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

    curl -X POST --data-binary @[JSON_FILE_NAME].json \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: application/json" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/notificationConfigs"

バケットの通知設定の一覧表示

特定のバケットに関連付けられた通知設定を一覧表示するには:

gsutil

[VALUES_IN_BRACKETS] を適切な値に置き換えて、gsutil notification list コマンドを実行します。

gsutil notification list gs://[BUCKET_NAME]

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。

  2. cURL を使用して GET notificationConfigs リクエストで JSON API を呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

    curl -X GET \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/notificationConfigs"

通知設定の削除

バケットから既存の通知設定を削除するには:

gsutil

[VALUES_IN_BRACKETS] を適切な値に置き換えて、gsutil notification delete コマンドを実行します。

gsutil notification delete projects/_/buckets/[BUCKET_NAME]/notificationConfigs/[CONFIGURATION_NAME]

送信後、通知設定によってトリガーされたすべての通知が停止するまでに最大 30 秒かかる場合があります。

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。

  2. cURL を使用して DELETE notificationConfigs リクエストで JSON API を呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/notificationConfigs/[CONFIGURATION_NAME]"

送信後、通知設定によってトリガーされたすべての通知が停止するまでに最大 30 秒かかる場合があります。

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