
Cloud StorageのObject ContextsがGAになったので変更点を確認してみる
はじめに
データアナリティクス事業本部のkobayashiです。
以前、Cloud StorageのObject Contextsがプレビューで利用可能になった際に紹介記事を書きました。
2026年4月6日にObject ContextsがGA(一般提供) になりました。GAに伴いいくつかの機能追加や変更がありましたので、前回の記事で紹介できていなかった内容をまとめます。
Preview → GA での主な変更点
Object ContextsがGAになったことで以下の変更・機能追加がありました。
| 変更点 | 内容 |
|---|---|
| gcloudコマンドのGA昇格 | gcloud alpha storage → gcloud storage に昇格 |
| コンテキストによるオブジェクトフィルタリング | --metadata-filter でコンテキストのキーバリューに基づくオブジェクトの絞り込みが可能に |
| Batch Operationsでのコンテキスト一括操作 | 数十億オブジェクト規模でコンテキストの一括更新・削除が可能に |
| コピー/リライト/コンポーズ時のコンテキスト制御 | --update-custom-contexts、--remove-custom-contexts、--clear-custom-contexts オプションが追加 |
以下、主要な変更点を実際のコマンドとともに確認していきます。
gcloudコマンドのGA昇格
プレビュー時は gcloud alpha storage コマンドでの操作が必要でしたが、GAになったことで gcloud storage コマンドで操作できるようになりました。
Preview時(旧)
$ gcloud alpha storage cp ./sample.csv gs://my-bucket/ --custom-contexts=department=sales,status=active
$ gcloud alpha storage objects update gs://my-bucket/sample.csv --update-custom-contexts=status=processed
$ gcloud alpha storage objects describe gs://my-bucket/sample.csv --format="yaml(name,contexts)"
GA(新)
$ gcloud storage cp ./sample.csv gs://my-bucket/ --custom-contexts=department=sales,status=active
$ gcloud storage objects update gs://my-bucket/sample.csv --update-custom-contexts=status=processed
$ gcloud storage objects describe gs://my-bucket/sample.csv --format="yaml(name,contexts)"
alpha サブコマンドが不要になりgcloudの最新版であればそのまま利用できます。
コンテキストによるオブジェクトフィルタリング
GA化で追加された機能の中で最も実用的な機能がコンテキストによるオブジェクトのフィルタリングです。gcloud storage objects list コマンドの --metadata-filter オプションを使用してコンテキストのキーバリューに基づいてオブジェクトを絞り込むことができます。
キーバリューでの完全一致フィルタリング
特定のキーバリューペアに一致するオブジェクトのみを取得できます。
$ gcloud storage objects list gs://my-bucket/ --metadata-filter='contexts."status"="processed"'
キーの存在チェック
値に関係なく、特定のキーが付与されているオブジェクトを取得できます。
$ gcloud storage objects list gs://my-bucket/ --metadata-filter='contexts."department":*'
除外フィルタ
NOT または - を使用して特定のコンテキストを持つオブジェクトを除外できます。
# 特定のキーバリューを除外
$ gcloud storage objects list gs://my-bucket/ --metadata-filter='NOT contexts."status"="draft"'
# 特定のキーを持つオブジェクトを除外
$ gcloud storage objects list gs://my-bucket/ --metadata-filter='-contexts."temporary":*'
フィルタ構文まとめ
| 構文 | 説明 |
|---|---|
contexts."KEY"="VALUE" |
キーバリューの完全一致 |
contexts."KEY":* |
キーの存在チェック |
NOT contexts."KEY"="VALUE" |
特定のキーバリューを除外 |
-contexts."KEY":* |
特定のキーを持つオブジェクトを除外 |
JSON APIでもオブジェクト一覧取得時に filter クエリパラメータで同様のフィルタリングが可能です。
GET https://storage.googleapis.com/storage/v1/b/BUCKET/o?filter=contexts."status"="processed"
この機能によりObject Contextsはデータの分類だけでなく、実際のワークロードで「処理済みのオブジェクトだけを対象にする」「特定部門のデータだけを取得する」といったユースケースが効率的に実現できるようになりました。
コピー/リライト/コンポーズ時のコンテキスト制御
プレビュー時はオブジェクトのコピーやリライトの際にコンテキストが自動的に引き継がれる動作でしたが、GA化に伴いコピー時のコンテキスト制御オプションが追加されました。
コピー時にコンテキストを更新・追加
$ gcloud storage cp gs://src-bucket/data.csv gs://dst-bucket/data.csv \
--update-custom-contexts=environment=production,migrated=true
ソースオブジェクトのコンテキストを引き継ぎつつ、新しいコンテキストの追加や既存コンテキストの値の更新ができます。
コピー時にコンテキストを削除
$ gcloud storage cp gs://src-bucket/data.csv gs://dst-bucket/data.csv \
--remove-custom-contexts=temporary,draft_version
ソースオブジェクトから特定のキーのコンテキストを除外してコピーできます。
コピー時にコンテキストをすべてクリア
$ gcloud storage cp gs://src-bucket/data.csv gs://dst-bucket/data.csv \
--clear-custom-contexts
ソースオブジェクトのコンテキストを引き継がずにコピーできます。
Batch Operationsでのコンテキスト一括操作
GA化に伴い、Storage Batch Operationsでオブジェクトのコンテキストを一括で操作できるようになりました。大量のオブジェクトに対してコンテキストの付与・更新・削除を効率的に行うことができます。
Batch Operationsで利用可能な操作
Batch Operationsでは以下のコンテキスト操作が可能です。
| 操作 | 説明 |
|---|---|
| コンテキストの更新・追加 | 指定したキーバリューペアでコンテキストを追加または更新 |
| 特定キーのコンテキスト削除 | 指定したキーのコンテキストを削除 |
| 全コンテキストのクリア | オブジェクトのすべてのコンテキストを削除 |
gcloudコマンドでは以下のフラグがGA昇格しています。
--update-object-custom-contexts: コンテキストの追加・更新--update-object-custom-contexts-file: ファイルからコンテキストを読み込んで更新--clear-object-custom-contexts: 特定キーのコンテキスト削除--clear-all-object-custom-contexts: すべてのコンテキストのクリア
Python Client Libraryの UpdateObjectCustomContext クラスでは custom_context_updates フィールドで個別のキーを指定した更新、clear_all フィールドですべてのコンテキストのクリアが可能です。これらは排他的なフィールドで、どちらか一方のみ指定できます。
数十億オブジェクト規模のデータレイクで「すべてのオブジェクトに新しいコンテキストを付与する」「特定条件のオブジェクトのコンテキストを一括更新する」といったユースケースに対応できます。
まとめ
Cloud StorageのObject ContextsがGAになったのでプレビューからの変更点を紹介しました。gcloud storageコマンドにそのまま昇格し、--metadata-filterでのフィルタリングやBatch Operationsでの一括操作など実用的な機能も追加されたので、データパイプラインやマルチテナント環境でのデータ管理に活用していくと良いと思います。Object Contextsの基本的な使い方は前回の記事を参照してください。
最後まで読んで頂いてありがとうございました。





