このページでは、特定のバケット内のすべてのオブジェクトのメタデータの概要を作成できるように、インベントリ レポートの構成を作成し、生成されたインベントリ レポートを管理する方法について説明します。インベントリ レポートの概要については、Storage Insights のインベントリ レポートの概要のドキュメントをご覧ください。
始める前に
必要なロールを取得する
インベントリ レポートの作成と管理に必要な権限を取得するには、インベントリ レポートを管理するプロジェクトまたはソースバケットと宛先バケットに対する次の IAM ロールの付与を管理者に依頼します。
インベントリ レポートの構成を作成して管理するには:
ソースバケットと宛先バケットに対する
roles/storage.admin
プロジェクトに対する
roles/storageinsights.admin
インベントリ レポートを表示してダウンロードするには:
宛先バケットに対する
roles/storage.objectViewer
プロジェクトに対する
roles/storageinsights.viewer
これらの事前定義ロールには、インベントリ レポートと構成を作成するために必要な権限が含まれています。必要な権限を正確に確認するには、「必要な権限」セクションを開いてください。
必要な権限
インベントリ レポートの構成を作成して管理するには:
- ソースバケットに対する
storage.buckets.get
- ソースバケットに対する
storage.objects.list
- ソースバケットに対する
storage.buckets.getObjectInsights
- 宛先バケットに対する
storage.buckets.get
- 宛先バケットに対する
storage.objects.create
- プロジェクトに対する
storageinsights.reportConfigs.delete
- プロジェクトに対する
storageinsights.reportConfigs.get
- プロジェクトに対する
storageinsights.reportConfigs.create
- プロジェクトに対する
storageinsights.reportConfigs.list
- プロジェクトに対する
storageinsights.reportConfigs.update
インベントリ レポートを表示してダウンロードするには:
- 宛先バケットに対する
storage.objects.get
- プロジェクトに対する
storageinsights.reportDetails.get
- プロジェクトに対する
storageinsights.reportDetails.list
他の事前定義ロールでこれらの権限を取得することもできます。どのロールがどの権限に関連付けられているかを確認するには、Cloud Storage に適用される IAM のロールをご覧ください。
ロールを使用してバケットへのアクセスを制御する手順については、IAM を使用するをご覧ください。ロールを使用してプロジェクトへのアクセスを制御する手順については、アクセスを管理するをご覧ください。
Storage Insights API を有効にする
コンソール
storageinsights.googleapis.com
API を有効にするには、サービスを有効にするの手順に沿って操作します。
コマンドライン
現在のプロジェクトで Storage Insights API を有効にするには、次のコマンドを実行します。
gcloud services enable storageinsights.googleapis.com
Google Cloud プロジェクトのサービスを有効にする方法について詳しくは、サービスの有効化と無効化をご覧ください。
REST API
JSON API
Google Cloud コンソールまたは Google Cloud CLI を使用して、Storage Insights API を有効にします。
インベントリ レポートの構成を作成する
コンソール
インベントリ レポートの構成を作成する手順は次のとおりです。
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、ソースバケットとして使用するバケットの名前をクリックします。
[バケットの詳細] ページで、[インベントリ レポート] タブをクリックします。
[レポート構成を作成] をクリックします。
[レポート構成の指定] セクションで、インベントリ レポート構成の表示名を作成します。表示名には最大 256 文字を使用できます。
[メタデータ フィールドの選択] セクションで、インベントリ レポートに含めるメタデータ フィールドを選択します。
[続行] をクリックします。
[ファイル形式の選択] セクションで、インベントリ レポートを生成するファイル形式を選択します。
[転送先バケットの選択] セクションで、転送先バケットとして使用するバケットを選択します。
[宛先のパスを入力(省略可)] セクションで、インベントリ レポートを生成する宛先パスを指定できます。
[スケジュールのオプション] セクションで、レポートを生成する頻度、開始日、終了日を指定します。
[作成] をクリックします。
[レポート構成の詳細] ページが表示されます。生成されたインベントリ レポートのメタデータがページに表示されます。
コマンドライン
インベントリ レポート構成を作成するには、
gcloud storage insights inventory-reports create
コマンドを実行します。gcloud storage insights inventory-reports create SOURCE_BUCKET_URL \ --csv-separator=SEPARATOR \ --csv-delimiter=DELIMITER \ --[no]-csv-header \ --parquet \ --display-name=DISPLAY_NAME \ --destination=DESTINATION_PATH \ --metadata-fields=METADATA_FIELD \ --schedule-starts=START_DATE \ --schedule-repeats=FREQUENCY \ --schedule-repeats-until=END_DATE
次のように置き換えます。
SOURCE_BUCKET_URL
は、ソースバケットの URL に置き換えます。例:gs://my_example_source_bucket
SEPARATOR
は、インベントリ レポートの CSV ファイルでレコードの区切りを表す文字で置き換えます。\n
または\r\n
のいずれかを指定する必要があります。デフォルト値は\n
です。省略可。--csv-separator
フラグが使用されている場合、--parquet
は使用できません。DELIMITER
は、インベントリ レポートの CSV ファイルでフィールドの区切りを表す文字で置き換えます。値には 1 つの文字を含めることができます。SEPARATOR
と同じ値にすることはできません。デフォルト値は,
です。省略可。--csv-delimiter
が使用されている場合、--parquet
は使用できません。--[no]-csv-header
は、インベントリ レポートの CSV ファイルにヘッダーが含まれているかどうかを示すフラグに置き換えます。ヘッダーを含める場合は--csv-header
を使用し、ヘッダーを除外する場合は--no-csv-header
を使用します。いずれかのフラグが使用されている場合、--parquet
は使用できません。DISPLAY_NAME
は、インベントリ レポートの構成の名前で置き換えます。この名前は編集可能です。省略可。--parquet
は、CSV ではなく Apache Parquet 形式でインベントリ レポートを生成するフラグに置き換えます。これを使用した場合、--csv-delimiter
、--csv-separator
、--[no-]csv-header
は使用できません。DESTINATION_PATH
は、インベントリ レポートが生成されるバケットまたはそのバケット内のフォルダに置き換えます。例:gs://my_example_destination_bucket
、gs://my_example_destination_bucket/path/to/inventory/report
バケット内のフォルダのパスを指定する場合は、パスにキーワードを使用できます。これらは、レポートの生成時に対応する値に置き換えられます。これにより、Hive パーティション分割形式でレポートを生成できるため、追加処理を行うことなく、BigQuery でのデータの読み込みやクエリを実行できます。
METADATA_FIELD
は、インベントリ レポートに含めるメタデータ フィールドのカンマ区切りのリストに置き換えます。START_DATE
は、インベントリ レポートの生成を開始する日付(UTC)に置き換えます。例:2022-01-15
FREQUENCY
は、インベントリ レポートを生成する頻度に置き換えます。値はdaily
かweekly
です。END_DATE
は、インベントリ レポートの生成を停止する日付(UTC)に置き換えます。START_DATE
より後の日付にする必要があります。たとえば、2022-02-15
を指定した場合、2022 年 2 月 16 日以降、インベントリ レポートは生成されなくなります。
クライアント ライブラリ
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
インベントリ レポートの構成を作成する手順は次のとおりです。
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。次の情報が含まれる JSON ファイルを作成します。特に指定しない限り、すべてのフィールドは必須となります。
{ "display_name": "DISPLAY_NAME", "frequency_options": { "frequency": "FREQUENCY", "start_date": "START_DATE", "end_date": "END_DATE", }, "csv_options": { "record_separator": "RECORD_SEPARATOR", "delimiter": "DELIMITER", "header_required": HEADER_REQUIRED }, "object_metadata_report_options": { "metadata_fields": [ "METADATA_FIELD", ... ], "storage_filters": { "bucket": "SOURCE_BUCKET_NAME" }, "storage_destination_options": { "bucket": "DESTINATION_BUCKET_NAME", "destination_path": "DESTINATION_PATH" } } }
次のように置き換えます。
DISPLAY_NAME
は、インベントリ レポートの構成の名前で置き換えます。これは編集可能な名前です。256 文字以内にする必要があります。FREQUENCY
は、インベントリ レポートの生成頻度で置き換えます。値はDAILY
かWEEKLY
です。START_DATE
は、インベントリ レポートの生成を開始する日付(UTC)に置き換えます。今日の日付や過去の日付は指定できません。値は、キーday
、month
、year
を含むオブジェクトにする必要があります。例:{"day": 15, "month": 8, "year": 2022}
END_DATE
は、インベントリ レポートの生成を停止する日付(UTC)に置き換えます。値は、キーday
、month
、year
を含むオブジェクトにする必要があります。たとえば、{"day": 15, "month": 9, "year": 2022}
を指定した場合、2022 年 9 月 16 日以降、インベントリ レポートは生成されなくなります。RECORD_SEPARATOR
は、インベントリ レポートの CSV ファイルでレコードの区切りを表す文字で置き換えます。\n
または\r\n
のいずれかを指定する必要があります。デフォルト値は\n
です。このフィールドは省略可能です。DELIMITER
は、インベントリ レポートの CSV ファイルでフィールドの区切りを表す文字で置き換えます。値には 1 つの文字を含めることができます。RECORD_SEPARATOR
と同じ値にすることはできません。デフォルト値は,
です。このフィールドは省略可能です。HEADER_REQUIRED
は、CSV ファイルにヘッダーを含めるかどうかを示すブール値で置き換えます。このフィールドは省略可能です。SOURCE_BUCKET_NAME
は、インベントリ レポートを生成するオブジェクトを含むソースバケットの名前に置き換えます。例:my_example_bucket
METADATA_FIELD
は、インベントリ レポートに含めるメタデータ フィールドのカンマ区切りのリストに置き換えます。DESTINATION_BUCKET_NAME
は、インベントリ レポートが生成されて保存される転送先バケットの名前に置き換えます。例:my_example_destination_bucket
DESTINATION_PATH
は、生成されたインベントリ レポートの宛先バケットのパスに置き換えます。このフィールドは省略可能です。バケット内のフォルダのパスを指定する場合は、パスにキーワードを使用できます。これらは、レポートの生成時に対応する値に置き換えられます。これにより、Hive パーティション分割形式でレポートを生成できるため、追加処理を行うことなく、BigQuery でのデータの読み込みやクエリを実行できます。
たとえば、次のコードサンプルでは、「インベントリ レポートの構成例」という名前のインベントリ レポートの構成を作成します。この構成では毎週レポートを生成します。
{ "display_name": "Example inventory report configuration", "frequency_options": { "frequency": "WEEKLY", "start_date": { "day": 15, "month": 8, "year": 2022 }, "end_date": { "day": 15, "month": 9, "year": 2022 }, }, "csv_options": { "record_separator": "\n", "delimiter": ",", "header_required": true }, "object_metadata_report_options": { "metadata_fields": [ "project", "name", "bucket" ], "storage_filters": { "bucket": "example_source_bucket" }, "storage_destination_options": { "bucket": "example_destination_bucket" } } }
インベントリ レポートの構成を適用するには、
cURL
を使用して、Insert
ReportConfig リクエストで JSON API を呼び出します。curl -X POST --data-binary @JSON_FILE_NAME \ "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \
次のように置き換えます。
JSON_FILE_NAME
は、前の手順で作成した JSON ファイルのパスに置き換えます。YOUR_PROJECT
は、ソースバケットと宛先バケットが存在するプロジェクトの名前で置き換えます。LOCATION
は、ソースバケットと宛先バケットのロケーションで置き換えます。例:us-west1
。
サービス エージェントに必要なロールを付与する
インベントリ レポートの構成を初めて設定するときに、プロジェクト レベルのサービス エージェントが自動的に作成されます。サービス エージェントは命名形式 service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com
に従います。この名前は、[Google 提供のロール付与を含みます] チェックボックスが選択されているときに、Google Cloud コンソールの [IAM] ページに表示されます。
Storage Insights でインベントリ レポートを生成して書き込むようにするには、サービス エージェントに次の IAM ロールを付与するよう管理者に依頼してください。
- ソースバケットに対する
roles/storage.insightsCollectorService
(storage.buckets.getObjectInsights
権限とstorage.buckets.get
権限を含む) - 転送先バケットに対する
roles/storage.objectCreator
(storage.objects.create
権限を含む)
ロールの付与手順については、IAM を使用するをご覧ください。roles/storage.insightsCollectorService
ロールを付与するには、Google Cloud コンソールまたは Google Cloud CLI を使用します。次に例を示します。
gcloud storage buckets add-iam-policy-binding SOURCE_BUCKET_URL \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com \ --role=roles/storage.insightsCollectorService
必要な権限がサービス エージェントに付与されてから、最初のインベントリ レポートが転送先バケットに書き込まれるまでに最大で 24 時間かかります。
インベントリ レポートの構成を編集する
インベントリ レポートの構成が作成されたら、構成の特定のプロパティを変更できます。
コンソール
インベントリ レポートの構成を編集する手順は次のとおりです。
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、編集するインベントリ レポート構成を含むソースバケットの名前をクリックします。
転送元バケットの [バケットの詳細] ページで、[インベントリ レポート] タブをクリックします。
編集するインベントリ レポート構成の構成名をクリックします。
表示された [レポート構成の詳細] ページで、
[編集] ボタンを使用して目的のプロパティを編集します。
コマンドライン
インベントリ レポートの構成を編集する手順は次のとおりです。
編集するインベントリ レポートの構成名を確認するには、
gcloud storage insights inventory-reports list
コマンドを使用して、ソースバケット内のすべてのインベントリ構成を一覧表示します。gcloud storage insights inventory-reports list \ --source=SOURCE_BUCKET \ --filter=EXPRESSION \ --page-size=SIZE \ --sort-by=FIELD \ --format="yaml(name)"
次のように置き換えます。
SOURCE_BUCKET
は、インベントリ レポートの構成を含むソースバケットの URL で置き換えます。EXPRESSION
は、一覧表示する各リソース項目に適用するブール値フィルタで置き換えます。式が True と評価された場合、項目がリストされます。フィルタ式の詳細と例を表示するには、$ gcloud topic filters
を実行します。SIZE
は、1 ページあたりの最大リソース数で置き換えます。デフォルト値は 50 です。FIELD
は、並べ替えるリソース フィールド キー名のカンマ区切りのリストで置き換えます。デフォルトの順序は昇順です。フィールドを降順で並べ替えるには、フィールドの先頭に~
を付けます。
gcloud storage insights inventory-reports update
コマンドを使用して、更新するインベントリ レポートの構成フィールドを編集します。次の例では、インベントリ レポートを Apache Parquet 形式で毎日生成するように、インベントリ レポートの構成を更新しています。gcloud storage insights inventory-reports update CONFIG_NAME \ --parquet \ --schedule-repeats="daily"
クライアント ライブラリ
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
インベントリ レポートの構成を編集する手順は次のとおりです。
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。編集するインベントリ レポートの構成名を取得するには、
cURL
を使用して、Get
ReportConfig リクエストで JSON API を呼び出します。curl --request GET \ "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs?" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \
次のように置き換えます。
YOUR_PROJECT
は、ソースバケットと宛先バケットが存在するプロジェクトの名前で置き換えます。LOCATION
は、ソースバケットと宛先バケットのロケーションで置き換えます。例:us-west1
。
特定のソースバケットのすべてのインベントリ レポートの構成を取得するには、
filter
クエリ パラメータをリクエストに追加します。curl --request GET \ "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs?filter=objectMetadataReportOptions.storageFilters.bucket=BUCKET_NAME" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \
次のように置き換えます。
YOUR_PROJECT
は、ソースバケットと宛先バケットが存在するプロジェクトの名前で置き換えます。LOCATION
は、ソースバケットと宛先バケットのロケーションで置き換えます。例:us-west1
。BUCKET_NAME
は、編集するインベントリ レポート構成を含むソースバケットの名前で置き換えます。
編集するプロパティへの変更を含む JSON ファイルを作成します。次の例では、インベントリ レポートを Apache Parquet 形式で毎日生成するように、インベントリ レポートの構成を更新しています。
{ "ReportConfig": { "frequency_options": { "frequency": "DAILY" }, "parquet_options": { } }
インベントリ レポートの構成を適用するには、
cURL
を使用して、Patch
ReportConfig リクエストで JSON API を呼び出します。curl --request PATCH \ "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --data-binary "@JSON_FILE_NAME.json" \
次のように置き換えます。
YOUR_PROJECT
は、ソースバケットと宛先バケットが存在するプロジェクトの名前で置き換えます。LOCATION
は、ソースバケットと宛先バケットのロケーションで置き換えます。例:us-west1
。REPORT_CONFIG_UUID
は、インベントリ レポートの構成の自動生成 UUID で置き換えます。
インベントリ レポートの構成を一覧表示する
コンソール
ソースバケット内のインベントリ レポート構成を一覧表示するには、次の操作を行います。
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、表示するインベントリ レポート構成を含むソースバケットの名前をクリックします。
[バケットの詳細] ページで、[インベントリ レポート] タブをクリックします。
ソースバケットのインベントリ レポート構成が表示されます。
コマンドライン
gcloud storage insights inventory-reports list
コマンドを使用すると、ソースバケット内のすべてのインベントリ構成を一覧表示できます。
gcloud storage insights inventory-reports list \ --source=SOURCE_BUCKET \ --filter=EXPRESSION \ --page-size=SIZE \ --sort-by=FIELD \ --format="yaml(name)"
次のように置き換えます。
SOURCE_BUCKET
は、インベントリ レポートの構成を含むソースバケットの URL で置き換えます。EXPRESSION
は、一覧表示する各リソース項目に適用するブール値フィルタで置き換えます。式が True と評価された場合、項目がリストされます。フィルタ式の詳細と例を表示するには、$ gcloud topic filters
を実行します。SIZE
は、1 ページあたりの最大リソース数で置き換えます。デフォルト値は 50 です。FIELD
は、並べ替えるリソース フィールド キー名のカンマ区切りのリストで置き換えます。デフォルトの順序は昇順です。フィールドを降順で並べ替えるには、フィールドの先頭に~
を付けます。
クライアント ライブラリ
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。特定のロケーションのプロジェクト内のすべてのインベントリ レポートの構成を一覧表示するには、インベントリ レポート構成を一覧表示するリクエストを使用します。
curl --request GET \ "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs?" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \
次のように置き換えます。
YOUR_PROJECT
は、ソースバケットと宛先バケットが存在するプロジェクトの名前で置き換えます。LOCATION
は、ソースバケットと宛先バケットのロケーションで置き換えます。例:us-west1
。
特定のソースバケットのすべてのインベントリ レポートの構成を一覧表示するには、
filter
クエリ パラメータをリクエストに追加します。curl --request GET \ "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs?filter=objectMetadataReportOptions.storageFilters.bucket=BUCKET_NAME" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \
次のように置き換えます。
YOUR_PROJECT
は、ソースバケットと宛先バケットが存在するプロジェクトの名前で置き換えます。LOCATION
は、ソースバケットと宛先バケットのロケーションで置き換えます。例:us-west1
。BUCKET_NAME
は、一覧表示するインベントリ レポート構成を含むソースバケットの名前で置き換えます。
インベントリ レポートをダウンロードする
コンソール
レポートを個別にダウンロードする
インベントリ レポートは宛先バケット内に生成され、オブジェクトとして保存されるため、通常のオブジェクトと同様にダウンロードできます。
インベントリ レポートをダウンロードするには、次の手順を完了します。
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、ダウンロードするインベントリ レポートを含む転送先バケットの名前をクリックします。
[バケットの詳細] ページで、[オブジェクト] タブが選択されていることを確認します。
ダウンロードするインベントリ レポートに関連付けられた [
ダウンロード] をクリックします。
転送先バケットがわからない場合は、生成元のインベントリ レポート構成を通してインベントリ レポートをダウンロードすることもできます。
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、ダウンロードするレポートを生成したインベントリ レポート構成を含む、転送元バケットの名前をクリックします。
[バケットの詳細] ページで、インベントリ レポート構成の構成名をクリックします。
表示される [レポート構成の詳細] ページで、[インベントリ レポートの履歴] セクションに移動し、ダウンロードするインベントリ レポートの宛先オブジェクトのパスをクリックします。
インベントリ レポートを含む転送先バケットの [バケットの詳細] ページが表示されます。
ダウンロードするインベントリ レポートに関連付けられた [
ダウンロード] をクリックします。
レポート シャードをダウンロードする
1 つ以上のシャードに分割されたインベントリ レポートをダウンロードするには、次の手順を完了します。
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、インベントリ レポート構成の作成時に指定した転送先バケットの名前をクリックします。
[バケットの詳細] ページで、マニフェスト ファイルが存在するかどうかを確認します。マニフェスト ファイルが存在する場合は、インベントリ レポートのすべてのシャードが生成されています。
マニフェスト ファイルには
fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json
のような名前が付いています。転送先バケットで、マニフェスト ファイルに関連付けられた
[ダウンロード] をクリックします。ダウンロードするシャード ファイルの名前をreport_shards_file_names
フィールドからメモします。転送先バケットで、ダウンロードするシャード ファイルに関連付けられた [
ダウンロード] をクリックします。
コマンドライン
レポートを個別にダウンロードする
インベントリ レポートをダウンロードするには、次の手順を完了します。
インベントリ レポートの構成によって生成されたすべてのインベントリ レポートを一覧表示し、その
REPORT_DETAIL_ID
を取得するには、gcloud storage insights inventory-reports details list
コマンドを使用します。gcloud storage insights inventory-reports details list CONFIG_NAME \ --filter=EXPRESSION \ --page-size=SIZE \ --sort-by=FIELD
次のように置き換えます。
CONFIG_NAME
は、インベントリ レポートの構成の一意の名前(projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID
形式)で置き換えます。EXPRESSION
は、一覧表示する各リソース項目に適用するブール値フィルタで置き換えます。式が True と評価された場合、そのアイテムがリストされます。フィルタ式の詳細と例を表示するには、$ gcloud topic filters
を実行します。SIZE
は、1 ページあたりの最大リソース数で置き換えます。デフォルト値は 50 です。FIELD
は、並べ替えるリソース フィールド キー名のカンマ区切りのリストで置き換えます。デフォルトの順序は昇順です。フィールドを降順で並べ替えるには、フィールドの先頭に~
を付けます。
成功した場合、コマンドは次のような出力を返します。
REPORT_DETAIL_ID SNAPSHOT_TIME Report_2023-04-10T00-00 2023-04-10T00:53:03Z Report_2023-04-12T00-00 2023-04-12T00:52:54Z Report_2023-04-05T00-00 2023-04-05T00:53:01Z
インベントリ レポートをダウンロードするには、まず ReportDetail オブジェクトの
reportPathPrefix
プロパティを取得する必要があります。レポートのreportPathPrefix
を取得するには、gcloud storage insights inventory-reports details describe
コマンドを使用します。gcloud storage insights inventory-reports details describe REPORT_DETAIL_NAME
REPORT_DETAIL_NAME
は、インベントリ レポートの名前に置き換えます。形式はprojects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID/reportDetails/REPORT_DETAIL_ID
です。
レポート シャードをダウンロードする
1 つ以上のシャードに分割されたインベントリ レポートをダウンロードするには、次の手順を完了します。
gcloud storage cp
コマンドを使用して、インベントリ レポートのマニフェスト ファイルをダウンロードします。gcloud storage cp gs://BUCKET_NAME/MANIFEST_FILE_NAME DOWNLOAD_PATH
次のように置き換えます。
BUCKET_NAME
は、宛先バケットの名前に置き換えます。MANIFEST_FILE_NAME
は、転送先バケットのマニフェスト ファイルの名前に置き換えます。次の命名規則を使用します。REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json
ここで
REPORT_CONFIG_UUID
は、ダウンロードするレポート シャードを生成したインベントリ レポート構成の自動生成 UUID です。TARGET_DATETIME
は、インベントリ レポートが生成された日時です。
例:
fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json
。DOWNLOAD_PATH
は、インベントリ レポートを保存するファイル システムのパスに置き換えます。例:./example_report.csv
。
シャード ファイルをダウンロードするには、
gcloud storage cp
コマンドを使用します。gcloud storage cp gs://BUCKET_NAME/SHARD_FILE_NAME DOWNLOAD_PATH
次のように置き換えます。
BUCKET_NAME
は、宛先バケットの名前に置き換えます。SHARD_FILE_NAME
は、ダウンロードするシャード ファイルの URL エンコードされた名前に置き換えます。例:fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv
DOWNLOAD_PATH
は、インベントリ レポートを保存するファイル システムのパスに置き換えます。例:./example_report.csv
。
クライアント ライブラリ
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
レポートを個別にダウンロードする
インベントリ レポートをダウンロードするには、次の手順を完了します。
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。次のように、
cURL
でインベントリ レポートの詳細を一覧表示するリクエストを指定して JSON API を呼び出し、インベントリ レポートの構成で生成されたすべてのインベントリ レポートを一覧表示します。curl --request GET \ "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID/reportDetails/" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \
次のように置き換えます。
YOUR_PROJECT
は、ソースバケットと宛先バケットが存在するプロジェクトの名前で置き換えます。LOCATION
は、ソースバケットと宛先バケットのロケーションで置き換えます。例:us-west1
。REPORT_CONFIG_UUID
は、ダウンロードするレポートを生成したインベントリ レポート構成の自動生成 UUID で置き換えます。
個々のレポートの詳細を取得するには、次のように
cURL
でGet
ReportDetails リクエストを指定して JSON API を呼び出します。curl --request GET \ "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID/reportDetails/REPORT_DETAIL_ID" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \
次のように置き換えます。
YOUR_PROJECT
は、ソースバケットと宛先バケットが存在するプロジェクトの名前で置き換えます。LOCATION
は、ソースバケットと宛先バケットのロケーションで置き換えます。例:us-west1
。REPORT_CONFIG_UUID
は、ダウンロードするレポートを生成したインベントリ レポート構成の自動生成 UUID で置き換えます。REPORT_DETAIL_ID
は、ダウンロードするインベントリ レポートの名前で置き換えます。
レポート シャードをダウンロードする
1 つ以上のシャードに分割されたインベントリ レポートをダウンロードするには、次の手順を完了します。
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。インベントリ レポートのマニフェスト ファイルをダウンロードするには、
cURL
を使用してGET
Object リクエストで JSON API を呼び出します。curl -X GET \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/MANIFEST_FILE_NAME?alt=media" \
次のように置き換えます。
BUCKET_NAME
は、宛先バケットの名前に置き換えます。MANIFEST_FILE_NAME
は、転送先バケットのマニフェスト ファイルの名前に置き換えます。次の命名規則を使用します。REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json
ここで
REPORT_CONFIG_UUID
は、ダウンロードするレポート シャードを生成したインベントリ レポート構成の自動生成 UUID です。TARGET_DATETIME
は、インベントリ レポートが生成された日付です。
例:
fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json
。マニフェスト ファイルの
report_shards_file_names
フィールドに、ダウンロード可能なインベントリ レポート シャードの名前が含まれています。インベントリ レポートのシャード ファイルをダウンロードするには、
curl
でGet
Object リクエストを指定して Cloud Storage JSON API を呼び出します。curl -X GET \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ -o "DOWNLOAD_PATH" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/SHARD_FILE_NAME?alt=media"
次のように置き換えます。
DOWNLOAD_PATH
は、オブジェクトを保存するローカル ファイル システムのパスに置き換えます。例:Desktop/dog.png
BUCKET_NAME
は、インベントリ レポートを含む宛先バケットの名前で置き換えます。例:my-bucket
SHARD_FILE_NAME
は、ダウンロードするシャード ファイルの URL エンコードされた名前に置き換えます。例:fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv
インベントリ レポートの構成を削除する
コンソール
インベントリ レポートの構成を削除する手順は次のとおりです。
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、削除するインベントリ レポート構成を含むソースバケットの名前をクリックします。
転送元バケットの [バケットの詳細] ページで、[インベントリ レポート] タブをクリックします。
削除するインベントリ レポート構成の構成名をクリックします。
表示された [レポート構成の詳細] ページで、[
削除] をクリックします。
コマンドライン
インベントリ レポート構成を削除するには、gcloud storage insights inventory-reports delete
コマンドを使用します。
gcloud storage insights inventory-reports delete CONFIG_NAME --force
CONFIG_NAME
は、インベントリ レポート構成の一意の名前(projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID
形式)に置き換えます。
--force
フラグを指定すると、指定されたインベントリ レポートの構成によって生成されたインベントリ レポートのメタデータがすべて削除されます。インベントリ レポート オブジェクト自体は削除されません。
クライアント ライブラリ
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
インベントリ レポートの構成を削除する手順は次のとおりです。
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。インベントリ レポートの構成を削除するには、
cURL
を使用して、Delete
ReportConfig リクエストで JSON API を呼び出します。curl --request DELETE \ 'https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID?force=true' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \
次のように置き換えます。
YOUR_PROJECT
は、ソースバケットと宛先バケットが存在するプロジェクトの名前で置き換えます。LOCATION
は、ソースバケットと宛先バケットのロケーションで置き換えます。例:us-west1
。REPORT_CONFIG_UUID
は、削除するインベントリ レポート構成の自動生成 UUID で置き換えます。
force
クエリ パラメータは、指定されたインベントリ レポートの構成によって生成されたインベントリ レポートのメタデータをすべて削除します。インベントリ レポート オブジェクト自体は削除されません。
高度な設定: Hive パーティション分割形式でインベントリ レポートを生成する
インベントリ レポート構成を作成する際、インベントリ レポートが生成される宛先バケット内の場所である宛先パスを指定できます。これにより、Hive パーティション分割形式でインベントリ レポートを生成できます。
プレースホルダ キーワードを使用して宛先パスを指定します。インベントリ レポートの生成時に、リンク先のパスのキーワードが対応する値に置き換えられます。たとえば、宛先のパス config={{report-config-id}}/date={{date}}
は、config=1A34-F2E456-12B456-1C3D/date=2022-05-20
に解決されます。
宛先パスのキーワード
キーワード report-config-id
、date
、または datetime
を {{ と }} で囲んで指定できます。ここで、
report-config-id
は、インベントリ レポートの構成の UUID です。date
は、インベントリ レポートが生成される日付です。ISO 8601 形式に従います。datetime
は、インベントリ レポートが生成される日時です。ISO 8601 形式に従います。
キーワードは、次のいずれかのツールを使用して指定できます。
Google Cloud コンソールを使用する場合は、[宛先のパスを入力(省略可)] セクションでキーワードを指定します。このセクションは、インベントリ レポートの構成を作成するときに表示されます。
Google Cloud CLI を使用する場合は、
--destination
フラグを使用してプレースホルダ キーワードを指定します。JSON API を使用する場合は、ReportConfig オブジェクトの
storage_destination_options.destination_path
フィールドにプレースホルダ キーワードを指定します。
アクセス制御とセキュリティ
インベントリ レポートとその構成のセキュリティや使用に関連する推奨事項と考慮事項は次のとおりです。
オブジェクトやメタデータの読み取りなど、バケット内のすべてのリソースの使用に対する制御を維持できるように、
roles/storage.admin
ロールが付与されたユーザーにもstorageinsights.reportConfigs.*
権限を付与することをおすすめします。storageinsights.reportConfigs.*
権限を必要な個人にのみ付与することで、インベントリ レポート リソースへのアクセスを制限することをおすすめします。インベントリ レポートの構成を作成した後、その構成を作成したユーザーが必要な権限を失った場合でも、インベントリ レポートは引き続き生成されます。インベントリ レポートの生成を停止するには、インベントリ レポート構成の終了日を編集するか、構成を完全に削除します。
次のステップ
- インベントリ レポートの生成で問題が発生した場合は、トラブルシューティングをご覧ください。