バッチ オペレーション ジョブを作成して管理する

このページでは、 ストレージ バッチ オペレーション ジョブの作成、表示、一覧表示、キャンセル、削除を行う方法について説明します。また、ストレージ バッチ オペレーション ジョブで Cloud Audit Logs を使用する方法についても説明します。

始める前に

ストレージ バッチ オペレーション ジョブを作成して管理するには、次のセクションの手順を完了します。

Storage Intelligence の構成

ストレージ バッチ オペレーション ジョブを作成して管理するには、ジョブを実行するバケットで Storage Intelligence を構成します。

Google Cloud CLI を設定する

Google Cloud CLI バージョン 516.0.0 以降を使用する必要があります。

デフォルト プロジェクトを設定する

ストレージ バッチ オペレーション ジョブを作成するプロジェクトを設定します。

gcloud config set project PROJECT_ID

PROJECT_ID はプロジェクトの ID です。

API を有効にする

ストレージ バッチ オペレーション API を有効にします。

gcloud services enable storagebatchoperations.googleapis.com

マニフェストを作成する

オブジェクトの選択にマニフェストを使用するには、マニフェストを作成します。

ストレージ バッチ オペレーション ジョブを作成する

このセクションでは、ストレージ バッチ オペレーション ジョブを作成する方法について説明します。

コマンドライン

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 開発環境で、gcloud storage batch-operations jobs create コマンドを実行します。

    gcloud storage batch-operations jobs create JOB_NAME --bucket=BUCKET_NAME OBJECT_SELECTION_FLAG JOB_TYPE_FLAG

    ここで

    • JOB_NAME は、ストレージ バッチ オペレーション ジョブの名前です。
    • BUCKET_NAME は、処理する 1 つ以上のオブジェクトを含むバケットの名前です。
    • OBJECT_SELECTION_FLAG は、次のいずれかのフラグです。

      • --included-object-prefixes: 1 つ以上のオブジェクトの接頭辞を指定します。次に例を示します。

        • 単一のプレフィックスを照合するには、--included-object-prefixes='prefix1' を使用します。
        • 複数のプレフィックスを照合するには、カンマ区切りのプレフィックス リスト(--included-object-prefixes='prefix1,prefix2')を使用します。
        • すべてのオブジェクトを含めるには、空の接頭辞 --included-object-prefixes='' を使用します。
      • --manifest-location: マニフェストの場所を指定します。例: gs://bucket_name/path/object_name.csv

    • JOB_TYPE_FLAG は、ジョブタイプに応じて、次のいずれかのフラグです。

      • --delete-object: 1 つ以上のオブジェクトを削除します。

      • --put-metadata: オブジェクト メタデータを更新します。オブジェクト メタデータは Key-Value ペアとして保存されます。変更するメタデータの Key-Value ペアを指定します。1 つ以上の Key-Value ペアをリストとして指定できます。

      • --rewrite-object: 1 つ以上のオブジェクトの顧客管理の暗号鍵を更新します。

      • --put-object-event-based-hold: イベントベースのオブジェクト保持を有効にします。

      • --no-put-object-event-based-hold: イベントベースのオブジェクト保持を無効にします。

      • --put-object-temporary-hold: 一時的なオブジェクト保持を有効にします。

      • --no-put-object-temporary-hold: 一時的なオブジェクト保持を無効にします。

REST API

JSON API

  1. gcloud CLI のインストールと初期化を行います。これにより、Authorization ヘッダーのアクセス トークンを生成できます。

  2. ストレージ バッチ オペレーション ジョブの設定を含む JSON ファイルを作成します。一般的な設定は次のとおりです。

    {
        "Description": "JOB_DESCRIPTION",
        "BucketList":
        {
        "Buckets":
        [
         {
           "Bucket": "BUCKET_NAME",
           "Manifest": {
              "manifest_location": "MANIFEST_LOCATION"
               }
           "PrefixList": {
              "include_object_prefixes": "OBJECT_PREFIXES"
               }
         }
        ]
        },
        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
         }
        "RewriteObject": {
          "kms_key":"KMS_KEY_VALUE"
          }
        "PutMetadata": {
          METADATA_KEY= METADATA_VALUE,
          ...,
          }
        "PutObjectHold": {
          "temporary_hold": TEMPORARY_HOLD_VALUE,
          "event_based_hold": EVENT_BASED_HOLD_VALUE
        }
     }
         

    ここで

    • JOB_NAME は、ストレージ バッチ オペレーション ジョブの名前です。

    • JOB_DESCRIPTION は、ストレージ バッチ オペレーション ジョブの説明です。

    • BUCKET_NAME は、処理する 1 つ以上のオブジェクトを含むバケットの名前です。

    • 処理するオブジェクトを指定するには、JSON ファイルで次のいずれかの属性を使用します。

      • MANIFEST_LOCATION は、マニフェストの場所です。例: gs://bucket_name/path/object_name.csv

      • OBJECT_PREFIXES は、1 つ以上のオブジェクト接頭辞を含むカンマ区切りのリストです。すべてのオブジェクトを照合するには、空のリストを使用します。

    • 処理するジョブに応じて、次のいずれかのオプションを指定します。

      • オブジェクトを削除します。

        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
        }

        ここで、OBJECT_DELETION_VALUE はオブジェクトを削除する TRUE です。

      • オブジェクトの顧客管理の暗号鍵を更新します。

        "RewriteObject":
        {
        "kms_key": KMS_KEY_VALUE
        }

        ここで、KMS_KEY_VALUE は更新するオブジェクトの KMS 鍵の値です。

      • オブジェクト メタデータを更新します。

        "PutMetadata": {
        METADATA_KEY= METADATA_VALUE,
        ...,
        }

        ここで、METADATA_VALUEオブジェクトのメタデータのキー値です。1 つ以上の Key-Value ペアをリストとして指定できます。

      • オブジェクト保留を更新します。

        "PutObjectHold": {
        "temporary_hold": TEMPORARY_HOLD_VALUE,
        "event_based_hold": EVENT_BASED_HOLD_VALUE
        }

        ここで

        • TEMPORARY_HOLD_VALUE は、一時オブジェクトの保持を有効または無効にするために使用されます。値が 1 の場合、ホールドが有効になり、値が 2 の場合、ホールドが無効になります。

        • EVENT_BASED_HOLD_VALUE は、イベントベースのオブジェクト保持を有効または無効にするために使用されます。値が 1 の場合、ホールドが有効になり、値が 2 の場合、ホールドが無効になります。

  3. cURL を使用して JSON API を呼び出し、POST ストレージ バッチ オペレーション ジョブ リクエストを行います。

    curl -X POST --data-binary @JSON_FILE_NAME \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     "https://storagebatchoperations.googleapis.com/v1/project=PROJECT_ID/locations/global/jobs?job_id=JOB_ID"

    ここで

    • JSON_FILE_NAME は JSON ファイルの名前です。
    • PROJECT_ID は、プロジェクトの ID または番号です。例: my-project
    • JOB_ID は、ストレージ バッチ オペレーション ジョブの名前です。

ストレージ バッチ オペレーション ジョブの詳細を取得する

このセクションでは、ストレージ バッチ オペレーション ジョブの詳細を取得する方法について説明します。

コマンドライン

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 開発環境で、gcloud storage batch-operations jobs describe コマンドを実行します。

    gcloud storage batch-operations jobs describe JOB_ID

    ここで

    JOB_ID は、ストレージ バッチ オペレーション ジョブの名前です。

REST API

JSON API

  1. gcloud CLI のインストールと初期化を行います。これにより、Authorization ヘッダーのアクセス トークンを生成できます。

  2. cURL を使用して、GET ストレージ バッチ オペレーション ジョブ リクエストで JSON API を呼び出します。

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs?JOB_ID"

    ここで

    • PROJECT_ID は、プロジェクトの ID または番号です。例: my-project
    • JOB_ID は、ストレージ バッチ オペレーション ジョブの名前です。

ストレージ バッチ オペレーション ジョブを一覧表示する

このセクションでは、プロジェクト内のストレージ バッチ オペレーション ジョブを一覧表示する方法について説明します。

コマンドライン

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 開発環境で、gcloud storage batch-operations jobs list コマンドを実行します。

    gcloud storage batch-operations jobs list

REST API

JSON API

  1. gcloud CLI のインストールと初期化を行います。これにより、Authorization ヘッダーのアクセス トークンを生成できます。

  2. cURL を使用して、LIST ストレージ バッチ オペレーション ジョブ リクエストで JSON API を呼び出します。

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs"

    ここで

    PROJECT_ID は、プロジェクトの ID または番号です。例: my-project

ストレージ バッチ オペレーション ジョブをキャンセルする

このセクションでは、プロジェクト内のストレージ バッチ オペレーション ジョブをキャンセルする方法について説明します。

コマンドライン

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 開発環境で、gcloud storage batch-operations jobs cancel コマンドを実行します。

    gcloud storage batch-operations jobs cancel JOB_ID

    ここで

    JOB_ID は、ストレージ バッチ オペレーション ジョブの名前です。

REST API

JSON API

  1. gcloud CLI のインストールと初期化を行います。これにより、Authorization ヘッダーのアクセス トークンを生成できます。

  2. cURL を使用して、CANCEL ストレージ バッチ オペレーション ジョブ リクエストで JSON API を呼び出します。

    curl -X CANCEL \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_ID"

    ここで

    • PROJECT_ID は、プロジェクトの ID または番号です。例: my-project

    • JOB_ID は、ストレージ バッチ オペレーション ジョブの名前です。

ストレージ バッチ オペレーション ジョブを削除する

このセクションでは、ストレージ バッチ オペレーション ジョブを削除する方法について説明します。

コマンドライン

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 開発環境で、gcloud storage batch-operations jobs delete コマンドを実行します。

    gcloud storage batch-operations jobs delete JOB_ID

    ここで

    JOB_ID は、ストレージ バッチ オペレーション ジョブの名前です。

REST API

JSON API

  1. gcloud CLI のインストールと初期化を行います。これにより、Authorization ヘッダーのアクセス トークンを生成できます。

  2. cURL を使用して、DELETE ストレージ バッチ オペレーション ジョブ リクエストで JSON API を呼び出します。

    curl -X DELETE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_ID"

    ここで

    • PROJECT_ID は、プロジェクトの ID または番号です。例: my-project

    • JOB_ID は、ストレージ バッチ オペレーション ジョブの名前です。

Storage Insights データセットを使用してストレージ バッチ オペレーション ジョブを作成する

Storage Insights データセットを使用してストレージ バッチ オペレーション ジョブを作成するには、次のセクションの手順を完了します。

Storage Insights データセットを使用してマニフェストを作成する

BigQuery からデータを抽出して、ストレージ バッチ オペレーション ジョブのマニフェストを作成できます。そのためには、リンクされたデータセットをクエリし、結果のデータを CSV ファイルとしてエクスポートして、Cloud Storage バケットに保存する必要があります。ストレージ バッチ オペレーション ジョブは、この CSV ファイルをマニフェストとして使用できます。

Storage Insights データセット ビューで次の SQL クエリを BigQuery で実行すると、Temp_Training という名前の 1 KiB より大きいオブジェクトが取得されます。

  EXPORT DATA OPTIONS(
   uri=`URI`,
   format=`CSV`,
   overwrite=OVERWRITE_VALUE,
   field_delimiter=',') AS
  SELECT bucket, name, generation
  FROM DATASET_VIEW_NAME
  WHERE bucket = BUCKET_NAME
  AND name LIKE (`Temp_Training%`)
  AND size > 1024 * 1024
  AND snapshotTime = SNAPSHOT_TIME
  

ここで

  • URI は、マニフェストを含むバケットの URI です。例: gs://bucket_name/path_to_csv_file/*.csv*.csv ワイルドカードを使用すると、BigQuery は結果を複数の CSV ファイルにエクスポートします。
  • OVERWRITE_VALUE はブール値です。true に設定すると、エクスポート オペレーションによって指定された場所にある既存のファイルが上書きされます。
  • DATASET_VIEW_NAME は、PROJECT_ID.DATASET_ID.VIEW_NAME 形式の Storage Insights データセット ビューの完全修飾名です。データセットの名前を確認するには、リンクされたデータセットを表示します。

    ここで

    • PROJECT_ID は、プロジェクトの ID または番号です。例: my-project
    • DATASET_ID はデータセットの名前です。例: objects-deletion-dataset
    • VIEW_NAME は、データセット ビューの名前です。例: bucket_attributes_view
  • BUCKET_NAME はバケットの名前です。例: my-bucket

  • SNAPSHOT_TIME は、Storage Insights データセット ビューのスナップショット時間です。例: 2024-09-10T00:00:00Z

ストレージ バッチ オペレーション ジョブを作成する

マニフェストに含まれるオブジェクトを処理するストレージ バッチ オペレーション ジョブを作成するには、次の操作を行います。

コマンドライン

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 開発環境で、gcloud storage batch-operations jobs create コマンドを実行します。

    gcloud storage batch-operations jobs create \
    JOB_ID \
    --bucket=SOURCE_BUCKET_NAME \
    --manifest-location=URI \
    --JOB_TYPE_FLAG

    ここで

    • JOB_ID は、ストレージ バッチ オペレーション ジョブの名前です。

    • SOURCE_BUCKET_NAME は、処理する 1 つ以上のオブジェクトを含むバケットです。例: my-bucket

    • URI は、マニフェストを含むバケットの URI です。例: gs://bucket_name/path_to_csv_file/*.csv*.csv ワイルドカードを使用すると、BigQuery は結果を複数の CSV ファイルにエクスポートします。

    • JOB_TYPE_FLAG は、ジョブタイプに応じて、次のいずれかのフラグです。

      • --delete-object: 1 つ以上のオブジェクトを削除します。

      • --put-metadata: オブジェクト メタデータを更新します。オブジェクト メタデータは Key-Value ペアとして保存されます。変更するメタデータの Key-Value ペアを指定します。1 つ以上の Key-Value ペアをリストとして指定できます。

      • --rewrite-object: 1 つ以上のオブジェクトの顧客管理の暗号鍵を更新します。

      • --put-object-event-based-hold: イベントベースのオブジェクト保持を有効にします。

      • --no-put-object-event-based-hold: イベントベースのオブジェクト保持を無効にします。

      • --put-object-temporary-hold: 一時的なオブジェクト保持を有効にします。

      • --no-put-object-temporary-hold: 一時的なオブジェクト保持を無効にします。

VPC Service Controls との統合

VPC Service Controls を使用すると、ストレージ バッチ オペレーション リソースのセキュリティを強化できます。VPC Service Controls を使用すると、境界の外から発生したリクエストからリソースとサービスを保護するプロジェクトをサービス境界に追加できます。ストレージ バッチ オペレーションの VPC Service Controls サービス境界の詳細については、サポートされているプロダクトと制限事項をご覧ください。

ストレージ バッチ オペレーション ジョブに Cloud Audit Logs を使用する

ストレージ バッチ オペレーション ジョブは、Cloud Storage オブジェクトの変換を Cloud Storage Cloud Audit Logs に記録します。Cloud Storage で Cloud Audit Logs を使用すると、ストレージ バッチ オペレーション ジョブが実行するオブジェクト変換を追跡できます。監査ログの有効化については、監査ログの有効化をご覧ください。監査ログエントリで、値が StorageBatchOperationscallUserAgent メタデータ フィールドは、ストレージ バッチ オペレーションの変換を示します。

次のステップ