このページでは、特定のバケット内のすべてのオブジェクトのメタデータの概要を把握できるように、インベントリ レポートの構成と生成されたインベントリ レポートを作成、管理する方法について説明します。インベントリ レポートの概要については、インベントリ レポートの概要ドキュメントをご覧ください。
始める前に
インベントリ レポートとインベントリ レポートの構成の作成と管理を開始する前に、次のサブセクションの手順に沿って操作してください。
必要なロールを取得する
インベントリ レポートの作成と管理に必要な権限を取得するには、インベントリ レポートを管理するプロジェクトまたはソースバケットと宛先バケットに対する次の 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 を有効にする
コンソール
Enable the Storage Insights API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
コマンドライン
Enable the Storage Insights API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which contains the
serviceusage.services.enable permission. Learn how to grant
roles.
gcloud services enable storageinsights.googleapis.com
REST API
gcloud CLI のインストールと初期化を行います。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。Storage Insights API を有効にするには、
cURLを使用してservices.enableメソッドを呼び出します。curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://serviceusage.googleapis.com/v1/projects/PROJECT_ID/services/storageinsights.googleapis.com:enable
次のように置き換えます。
PROJECT_IDは、API を有効にするプロジェクトの ID に置き換えます。
インベントリ レポートの構成を作成する
コンソール
インベントリ レポートの構成を作成する手順は次のとおりです。
- 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_bucketSEPARATORは、インベントリ レポートの 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-15FREQUENCYは、インベントリ レポートを生成する頻度に置き換えます。値はdailyかweeklyです。END_DATEは、インベントリ レポートの生成を停止する日付(UTC)に置き換えます。START_DATEより後の日付にする必要があります。たとえば、2022-02-15を指定した場合、2022 年 2 月 16 日以降、インベントリ レポートは生成されなくなります。
クライアント ライブラリ
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
REST API
JSON API
インベントリ レポートの構成を作成する手順は次のとおりです。
gcloud CLI のインストールと初期化を行います。これにより、
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_bucketMETADATA_FIELDは、インベントリ レポートに含めるメタデータ フィールドのカンマ区切りのリストに置き換えます。DESTINATION_BUCKET_NAMEは、インベントリ レポートが生成されて保存される転送先バケットの名前に置き換えます。例:my_example_destination_bucketDESTINATION_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を使用して、CreateReportConfig リクエストで 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
インベントリ レポートの構成を編集する手順は次のとおりです。
gcloud CLI のインストールと初期化を行います。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。編集するインベントリ レポートの構成名を取得するには、
cURLを使用して、GetReportConfig リクエストで 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を使用して、PatchReportConfig リクエストで 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
gcloud CLI のインストールと初期化を行います。これにより、
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.csvDOWNLOAD_PATHは、インベントリ レポートを保存するファイル システムのパスに置き換えます。例:./example_report.csv。
クライアント ライブラリ
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
REST API
JSON API
レポートを個別にダウンロードする
インベントリ レポートをダウンロードする手順は次のとおりです。
gcloud CLI のインストールと初期化を行います。これにより、
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でGetReportDetails リクエストを指定して 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 つ以上のシャードに分割されたインベントリ レポートをダウンロードするには、次の手順を完了します。
gcloud CLI のインストールと初期化を行います。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。インベントリ レポートのマニフェスト ファイルをダウンロードするには、
cURLを使用して、GETObject リクエストで 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でGetObject リクエストを指定して 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.pngBUCKET_NAMEは、インベントリ レポートを含む宛先バケットの名前で置き換えます。例:my-bucketSHARD_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
インベントリ レポートの構成を削除する手順は次のとおりです。
gcloud CLI のインストールと初期化を行います。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。インベントリ レポートの構成を削除するには、
cURLを使用して、DeleteReportConfig リクエストで 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.*権限を必要な個人にのみ付与することで、インベントリ レポート リソースへのアクセスを制限することをおすすめします。インベントリ レポートの構成を作成した後、その構成を作成したユーザーが必要な権限を失った場合でも、インベントリ レポートは引き続き生成されます。インベントリ レポートの生成を停止するには、インベントリ レポート構成の終了日を編集するか、構成を完全に削除します。
次のステップ
- インベントリ レポートの生成で問題が発生した場合は、トラブルシューティングをご覧ください。