オブジェクト変更の登録

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

前提条件

gsutil

gsutil コマンドライン ツールでこの機能を使用する前に、次のように準備する必要があります。

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

    API を有効にする

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

    • バケットを含むプロジェクトを所有している場合は、必要な権限を持っていると考えられます。

    • IAM を使用する場合は、storage.buckets.update 権限が必要です。

    • ACL を使用する場合は、OWNER 権限が必要です。設定方法については、ACL の設定を参照してください。

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

    • 通知を受け取るプロジェクトを所有している場合は、必要な権限を持っていると考えられます。

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

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

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

JSON

JSON API でこの機能を使用する前に、次のように準備する必要があります。

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

    API を有効にする

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

    • バケットを含むプロジェクトを所有している場合は、必要な権限を持っていると考えられます。

    • IAM を使用する場合は、storage.buckets.update 権限が必要です。

    • ACL を使用する場合は、OWNER 権限が必要です。設定方法については、ACL の設定を参照してください。

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

    • 通知を受け取るプロジェクトを所有している場合は、必要な権限を持っていると考えられます。

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

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

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

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

  5. 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"
    }

  6. 前の手順で取得した電子メールアドレスに、任意の 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

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

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

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

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 秒かかる場合があります。

外出先でもリソースをモニタリング

Google Cloud Console アプリを入手して、プロジェクトの管理にお役立てください。

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