このページでは、 ストレージ バッチ オペレーション ジョブの作成、表示、一覧表示、キャンセル、削除を行う方法について説明します。また、ストレージ バッチ オペレーション ジョブで 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
マニフェストを作成する
オブジェクトの選択にマニフェストを使用するには、マニフェストを作成します。
ストレージ バッチ オペレーション ジョブを作成する
このセクションでは、ストレージ バッチ オペレーション ジョブを作成する方法について説明します。
コマンドライン
-
In the Google Cloud console, 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.
開発環境で、
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
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。ストレージ バッチ オペレーション ジョブの設定を含む 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 ファイルで次のいずれかの属性を使用します。
処理するジョブに応じて、次のいずれかのオプションを指定します。
オブジェクトを削除します。
"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
の場合、ホールドが無効になります。
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
は、ストレージ バッチ オペレーション ジョブの名前です。
ストレージ バッチ オペレーション ジョブの詳細を取得する
このセクションでは、ストレージ バッチ オペレーション ジョブの詳細を取得する方法について説明します。
コマンドライン
-
In the Google Cloud console, 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.
開発環境で、
gcloud storage batch-operations jobs describe
コマンドを実行します。gcloud storage batch-operations jobs describe JOB_ID
ここで
JOB_ID
は、ストレージ バッチ オペレーション ジョブの名前です。
REST API
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。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
は、ストレージ バッチ オペレーション ジョブの名前です。
ストレージ バッチ オペレーション ジョブを一覧表示する
このセクションでは、プロジェクト内のストレージ バッチ オペレーション ジョブを一覧表示する方法について説明します。
コマンドライン
-
In the Google Cloud console, 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.
開発環境で、
gcloud storage batch-operations jobs list
コマンドを実行します。gcloud storage batch-operations jobs list
REST API
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。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
ストレージ バッチ オペレーション ジョブをキャンセルする
このセクションでは、プロジェクト内のストレージ バッチ オペレーション ジョブをキャンセルする方法について説明します。
コマンドライン
-
In the Google Cloud console, 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.
開発環境で、
gcloud storage batch-operations jobs cancel
コマンドを実行します。gcloud storage batch-operations jobs cancel JOB_ID
ここで
JOB_ID
は、ストレージ バッチ オペレーション ジョブの名前です。
REST API
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。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
は、ストレージ バッチ オペレーション ジョブの名前です。
ストレージ バッチ オペレーション ジョブを削除する
このセクションでは、ストレージ バッチ オペレーション ジョブを削除する方法について説明します。
コマンドライン
-
In the Google Cloud console, 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.
開発環境で、
gcloud storage batch-operations jobs delete
コマンドを実行します。gcloud storage batch-operations jobs delete JOB_ID
ここで
JOB_ID
は、ストレージ バッチ オペレーション ジョブの名前です。
REST API
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。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
ストレージ バッチ オペレーション ジョブを作成する
マニフェストに含まれるオブジェクトを処理するストレージ バッチ オペレーション ジョブを作成するには、次の操作を行います。
コマンドライン
-
In the Google Cloud console, 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.
開発環境で、
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 を使用すると、ストレージ バッチ オペレーション ジョブが実行するオブジェクト変換を追跡できます。監査ログの有効化については、監査ログの有効化をご覧ください。監査ログエントリで、値が StorageBatchOperations
の callUserAgent
メタデータ フィールドは、ストレージ バッチ オペレーションの変換を示します。
次のステップ
- Storage Insights データセットについて学習する