查询资产

本主题介绍如何在无需先将数据导出到 BigQuery 表的情况下查询项目、文件夹或组织的资产元数据。

限制

  • 请求中提供的查询必须是 SELECT 查询。

  • 不支持大于 10GB 的查询结果。

  • 大于 10MB 或 1000 行的查询结果始终分页。

  • 查询处理时间不得超过 6 小时

  • 不支持旧版 BigQuery SQL

  • 查询结果只能保存US 多区域内的 BigQuery 数据集中。

  • 对于支持的资产类型页面上列出的 Google Kubernetes Engine 资源,仅支持 container.googleapis.com/Clustercontainer.googleapis.com/NodePool

  • 对于新订阅的 Security Command Center 高级层级,最长可能需要 6 小时才能访问 API,最长需要 48 小时才能准备好历史数据。

准备工作

在开始之前,请完成以下步骤。

  1. 对要运行 API 命令的项目启用 Cloud Asset Inventory API。

    启用 Cloud Asset Inventory API

  2. 配置使用 gcloud CLIAPI 调用 Cloud Asset Inventory API 所需的权限。

  3. 完成以下步骤以设置您的环境。

    gcloud CLI

    如需设置环境以使用 gcloud CLI 调用 Cloud Asset Inventory API,请在本地客户端上安装 Google Cloud CLI

    REST

    如需设置环境以使用 curl 命令调用 Cloud Asset Inventory API,请完成以下步骤。

    1. 确认您可以使用 curl 命令。

    2. 请务必向您的帐号授予项目、文件夹或组织的以下角色之一。

      • Cloud Asset Viewer 角色 (roles/cloudasset.viewer)

      • Owner 基本角色 (roles/owner)

  4. 如果要将元数据从一个项目导出到另一个项目,请确保导出项目的默认 Cloud Asset Inventory 服务帐号已存在且具有正确的权限

权限

以下列表显示了请求中每个 ContentType 所需的权限。

内容类型 权限
gcloud 名称 REST 名称
access-policy ACCESS_POLICY cloudasset.assets.queryAccessPolicy
iam-policy IAM_POLICY cloudasset.assets.queryIamPolicy
os-inventory OS_INVENTORY cloudasset.assets.queryOSInventories
relationship RELATIONSHIP cloudasset.assets.queryResource
resource RESOURCE cloudasset.assets.queryResource

您在配置权限cloudasset.viewercloudasset.owner)时授予的角色包含这些权限。

设置查询格式

Query Assets API 要求查询使用与 BigQuery 标准 SQL 兼容的方言。

在查询资产时,其名称必须遵循特定格式。例如,查找虚拟机的查询会查询 compute_googleapis_com_Instance。详细了解支持的素材资源类型

查询中使用的名称会进行转换 - /. 替换为 _(例如,compute.googleapis.com/Instance 变为 compute_googleapis_com_Instance)。

数据集中的表名称与资产类型名称相对应。对于 content_type 不为 RESOURCE 的内容,表名称为大写的内容类型(例如 IAM_POLICYOS_INVENTORYACCESS_POLICY)。

如需跨资源类型查询资源标准元数据,表名称为 STANDARD_METADATA。支持的资源元数据包括除 resource.DATA(特定于资源类型)之外的所有字段。

您可以在 Google Cloud 控制台的“Asset Inventory”页面中参考各种资产使用的架构。

字段值响应格式

在响应中,schemarows 字段与 BigQuery 中的字段类似。字段元数据被委托给名为 schema 的单独结构体。这种格式可以避免字段名称和类型重复,有助于压缩可能非常大的响应。出于同样的原因,使用值 fv 来代替 fieldsvalue

以下示例展示了对于某个指定类型的所有素材资源,其 page-size 为 2 的查询的响应:

{
  "jobReference": "CiBqb2JfTHhIQ2xCeXlJejc1bHdQSTRNZ3NEVndXU2o5QxIBARjLq-_g5fO5t1I",
  "done": true,
  "queryResult": {
    "rows": [
      {
        "f": [
          {
            "v": "//compute.googleapis.com/projects/PROJECT1/zones/us-central1-a/instances/INSTANCE1"
          },
          {
            "v": "compute.googleapis.com/Instance"
          }
        ]
      },
      {
        "f": [
          {
            "v": "//compute.googleapis.com/projects/PROJECT2/zones/us-central1-a/instances/INSTANCE2"
          },
          {
            "v": "compute.googleapis.com/Instance"
          }
        ]
      }
    ],
    "schema": {
      "fields": [
        {
          "field": "name",
          "type": "STRING",
          "mode": "NULLABLE",
          "fields": []
        },
        {
          "field": "assetType",
          "type": "STRING",
          "mode": "NULLABLE",
          "fields": []
        }
      ]
    },
    "nextPageToken": "BHKVJIOAPUAQAAASA4EAAEEAQCAAKGQIBABBB7X7777QOIFQVYKQ====",
    "totalRows": "11"
  }
}

Google Cloud 控制台中的查询

控制台

如需查询项目、文件夹或组织的资产元数据,请完成以下步骤:

  1. 前往 Google Cloud 控制台中的 Asset Inventory 页面。

    前往 Asset Inventory

  2. 如需设置搜索范围,请选择一个项目、文件夹或组织。

  3. 点击素材资源查询标签页。

  4. 如需查询资产元数据,请使用示例查询或自行构建查询:

    • 如需使用示例,请点击查询库标签页中的条目以预览查询。点击应用,将该示例复制到修改查询框中,然后修改该查询,或点击运行以执行该查询。

    • 如需构建自己的查询,请直接在修改查询框中输入查询文本,然后点击运行以执行该查询。为帮助您编写自己的查询,您可以点击选择表窗格中的表,以预览其架构和内容。详细了解查询语法

    与查询匹配的资产元数据显示在查询结果标签页中。

  5. 可选:如需以 CSV 格式下载查询结果集,请点击导出

    CSV 文件的大小上限为 2 MB。如果下载请求因文件大小超过此限制而失败,系统会显示一条消息,其中包含有关导出完整结果的说明。

保存查询结果

查询结果以 Query Assets API 响应的形式返回。如需将结果导出到您自己的 BigQuery 表,请在请求中指定 BigQuery 目标位置。如果您还没有 BigQuery 数据集,必须先创建 BigQuery 数据集,然后再发出这些请求。

gcloud

项目

gcloud asset query \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --statement="
      SELECT
        name, assetType
      FROM
        compute_googleapis_com_Instance
      LIMIT 2" \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --write-disposition="write-truncate"

请提供以下值:

  • PROJECT_ID:您要查询其元数据的项目的 ID。

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 有权向 BigQuery 写入数据。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • DATASET_ID:BigQuery 数据集的 ID。

  • TABLE_NAME:要向其中导出元数据的表。如果不存在,系统会创建一个。

其他标志:

  • --write-disposition:通过设置写入处置方式,指定在 BigQuery 目标表或分区已存在时要执行的操作。支持以下值:

    • write-truncate:如果表或分区已存在,BigQuery 会覆盖整个表或所有分区数据。

    • write-append:如果表或分区已存在,BigQuery 会将数据附加到表或最新分区。

    • write-empty:如果表已存在且包含数据,作业结果中会返回 duplicate 错误。

    默认值为 write-empty

文件夹

gcloud asset query \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --statement="
      SELECT
        name, assetType
      FROM
        compute_googleapis_com_Instance
      LIMIT 2" \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --write-disposition="write-truncate"

请提供以下值:

  • FOLDER_ID:您要查询其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 有权向 BigQuery 写入数据。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • PROJECT_ID:BigQuery 表所属项目的 ID。

  • DATASET_ID:BigQuery 数据集的 ID。

  • TABLE_NAME:要向其中导出元数据的表。如果不存在,系统会创建一个。

其他标志:

  • --write-disposition:通过设置写入处置方式,指定在 BigQuery 目标表或分区已存在时要执行的操作。支持以下值:

    • write-truncate:如果表或分区已存在,BigQuery 会覆盖整个表或所有分区数据。

    • write-append:如果表或分区已存在,BigQuery 会将数据附加到表或最新分区。

    • write-empty:如果表已存在且包含数据,作业结果中会返回 duplicate 错误。

    默认值为 write-empty

组织

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --statement="
      SELECT
        name, assetType
      FROM
        compute_googleapis_com_Instance
      LIMIT 2" \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --write-disposition="write-truncate"

请提供以下值:

  • ORGANIZATION_ID:您要查询其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID:可选。默认 Cloud Asset Inventory 服务代理所属的项目 ID,该 ID 有权向 BigQuery 写入数据。如果您已切换到具有 gcloud config set project 的结算项目,则无需指定此项。详细了解结算项目

  • PROJECT_ID:BigQuery 表所属项目的 ID。

  • DATASET_ID:BigQuery 数据集的 ID。

  • TABLE_NAME:要向其中导出元数据的表。如果不存在,系统会创建一个。

其他标志:

  • --write-disposition:通过设置写入处置方式,指定在 BigQuery 目标表或分区已存在时要执行的操作。支持以下值:

    • write-truncate:如果表或分区已存在,BigQuery 会覆盖整个表或所有分区数据。

    • write-append:如果表或分区已存在,BigQuery 会将数据附加到表或最新分区。

    • write-empty:如果表已存在且包含数据,作业结果中会返回 duplicate 错误。

    默认值为 write-empty

以下是成功请求(将查询结果保存到指定 BigQuery 目标表)的示例响应:

done: true
jobReference: CiBqb2JfMkpzOERxN2l5RnRKeWJQRksxWUlmYkxWNTUzbhIBARixoYOcs9T_qcgB
outputConfig:
  bigqueryDestination:
    dataset: projects/test-project/datasets/my_dataset
    table: my-table
    writeDisposition: write-truncate

以下是未能保存查询结果的作业的示例响应:

done: true
error:
  code: 9
  message: '1 errors encountered during query: notFound'
jobReference: CiBqb2JfZWlmOUNsVFQ3b05hVzhpYkdVZ291dkZXc1VFXxIBARj73sbsmLmE1BggAQ

REST

curl -X POST \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              name, assetType
            FROM
              compute_googleapis_com_Instance
            LIMIT 2",
          "outputConfig": {
            "bigqueryDestination": {
              "dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
              "table": "TABLE_NAME",
              "writeDisposition": "WRITE_TRUNCATE"
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

请提供以下值:

  • BILLING_PROJECT_ID:默认 Cloud Asset Inventory 服务代理所属的项目 ID,该代理有权管理您的 BigQuery 数据集和表。详细了解结算项目

  • PROJECT_ID:BigQuery 表所属项目的 ID。

  • DATASET_ID:BigQuery 数据集的 ID。

  • TABLE_NAME:要向其中导出元数据的表。如果不存在,系统会创建一个。

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

其他参数:

  • writeDisposition:通过设置写入处置方式,指定在 BigQuery 目标表或分区已存在时要执行的操作。支持以下值:

    • WRITE_TRUNCATE:如果表或分区已存在,BigQuery 会覆盖整个表或所有分区数据。

    • WRITE_APPEND:如果表或分区已存在,BigQuery 会将数据附加到表或最新分区。

    • WRITE_EMPTY:如果表已存在且包含数据,作业结果中会返回 duplicate 错误。

    默认值为 WRITE_EMPTY

以下是成功请求(将查询结果保存到指定 BigQuery 目标表)的示例响应:

{
  "jobReference": "CiBqb2JfZmNlbTZ5SjVZcHFKajVIYjMycFNSd2xSRlZXdBIBARiAnb6R1I63wdkB",
  "done": true,
  "outputConfig": {
    "bigqueryDestination": {
      "dataset": "projects/test-project/datasets/my_dataset",
      "table": "my-table",
      "writeDisposition": "WRITE_TRUNCATE"
    }
  }
}

以下是未能保存查询结果的作业的示例响应:

{
  "jobReference": "CiBqb2JfZWlmOUNsVFQ3b05hVzhpYkdVZ291dkZXc1VFXxIBARj73sbsmLmE1BggAQ",
  "done": true,
  "error": {
    "code": 9,
    "message": "1 errors encountered during query: notFound"
  }
}

查询响应中不会直接返回架构和行。您可以在指定的 BigQuery 目标表中查看这些映像。

查询示例

查询资产

以下示例会查询项目、文件夹或组织中的资产。

gcloud

项目

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        name, assetType
      FROM
        compute_googleapis_com_Instance
      LIMIT 2"

请提供以下值:

  • PROJECT_ID:您要查询其元数据的项目的 ID。

文件夹

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        name, assetType
      FROM
        compute_googleapis_com_Instance
      LIMIT 2"

请提供以下值:

  • FOLDER_ID:您要查询其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

组织

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        name, assetType
      FROM
        compute_googleapis_com_Instance
      LIMIT 2"

请提供以下值:

  • ORGANIZATION_ID:您要查询其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

下面是返回所有行的成功请求的示例响应:

done: true
jobReference: CiBqb2JfMkpzOERxN2l5RnRKeWJQRksxWUlmYkxWNTUzbhIBARixoYOcs9T_qcgB
queryResult:
  nextPageToken: ''
  totalRows: '2'

name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/VM_INSTANCE_NAME
assetType: compute.googleapis.com/Instance

name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/VM_INSTANCE_NAME
assetType; compute.googleapis.com/Instance

REST

curl -X POST \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
      "statement": "
        SELECT
          name, assetType
        FROM
          compute_googleapis_com_Instance
        LIMIT 2" }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

下面是返回所有行的成功请求的示例响应:

{
  "jobReference": "CiBqb2JfZmNlbTZ5SjVZcHFKajVIYjMycFNSd2xSRlZXdBIBARiAnb6R1I63wdkB",
  "done": true,
  "queryResult": {
    "rows": [...],
    "schema": {...},
    "nextPageToken": "",
    "totalRows": "2"
  }
}

为了便于阅读,架构和行已被移除。您可以使用字段值响应格式查看它们。

跨资源类型查询资源标准元数据

以下示例针对特定区域中的所有资源类型查询资源标准元数据字段 nameassetType

gcloud

项目

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        name,
        assetType
      FROM
        STANDARD_METADATA
      WHERE
        resource.location LIKE '%asia%'"

请提供以下值:

  • PROJECT_ID:您要查询其元数据的项目的 ID。

文件夹

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        name,
        assetType
      FROM
        STANDARD_METADATA
      WHERE
        resource.location LIKE '%asia%'"

请提供以下值:

  • FOLDER_ID:您要查询其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

组织

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        name,
        assetType
      FROM
        STANDARD_METADATA
      WHERE
        resource.location LIKE '%asia%'"

请提供以下值:

  • ORGANIZATION_ID:您要查询其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              name,
              assetType
            FROM
              STANDARD_METADATA
            WHERE
              resource.location LIKE \"%asia%\""
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

按作业引用异步提取响应

运行以下超时的命令。

gcloud

项目

gcloud asset query \
    --project=PROJECT_ID \
    --timeout="1s" \
    --statement="
    SELECT
      name, assetType
    FROM
      compute_googleapis_com_Instance";

请提供以下值:

  • PROJECT_ID:您要查询其元数据的项目的 ID。

当请求没有及时完成时,其 done 字段将设置为 false,这意味着请求没有及时完成,但正在处理中。以下示例展示了一个响应,指明请求尚未完成处理。

done: false
job_reference: "JOB_REFERENCE_ID"

稍后,您可以使用此作业引用 ID 通过另一个 API 调用异步获取结果:

gcloud asset query \
    --project=PROJECT_ID \
    --job-reference=JOB_REFERENCE_ID

文件夹

gcloud asset query \
    --folder=FOLDER_ID \
    --timeout="1s" \
    --statement="
    SELECT
      name, assetType
    FROM
      compute_googleapis_com_Instance";

请提供以下值:

  • FOLDER_ID:您要查询其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

当请求没有及时完成时,其 done 字段将设置为 false,这意味着请求没有及时完成,但正在处理中。以下示例展示了一个响应,指明请求尚未完成处理。

done: false
job_reference: "JOB_REFERENCE_ID"

稍后,您可以使用此作业引用 ID 通过另一个 API 调用异步获取结果:

gcloud asset query \
    --folder=FOLDER_ID \
    --job-reference=JOB_REFERENCE_ID

组织

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --timeout="1s" \
    --statement="
    SELECT
      name, assetType
    FROM
      compute_googleapis_com_Instance";

请提供以下值:

  • ORGANIZATION_ID:您要查询其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

当请求没有及时完成时,其 done 字段将设置为 false,这意味着请求没有及时完成,但正在处理中。以下示例展示了一个响应,指明请求尚未完成处理。

done: false
job_reference: "JOB_REFERENCE_ID"

稍后,您可以使用此作业引用 ID 通过另一个 API 调用异步获取结果:

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --job-reference=JOB_REFERENCE_ID

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "timeout": "1s",
          "statement": "
            SELECT
              name, assetType
            FROM
              compute_googleapis_com_Instance"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

当请求没有及时完成时,其 done 字段会被设置为 false,这意味着请求没有及时完成,但系统正在处理。以下示例展示了一个响应,指明请求尚未处理完成。

{
  "jobReference": "JOB_REFERENCE_ID",
  "done": false,
  "queryResult": {
    "rows": [],
    "schema": {
      "fields": []
    },
    "nextPageToken": "",
    "totalRows": "0"
  }
}

您可以使用此作业引用 ID 稍后通过另一个 API 调用异步获取结果:

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "jobReference": "JOB_REFERENCE_ID"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

使用 REST API 提取分页请求的下一页结果

进行以下查询,将 pageSize 设置为 1

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "pageSize": "1",
          "statement": "
            SELECT
              name, assetType
            FROM
              compute_googleapis_com_Instance"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

其他参数:

  • pageSize:每页可显示的资源数量上限。

响应具有 nextPageToken,您可以在使用 jobReference 的请求中对其进行设置以获取下一页响应。

{
  "jobReference": "JOB_REFERENCE_ID",
  "done": true,
  "queryResult": {
    "rows": [ ... ],
    "schema": { ... },
    "nextPageToken": "NEXT_PAGE_TOKEN",
    "totalRows": "11"
  }
}

为了便于阅读,架构和行已被移除。您可以使用字段值响应格式查看它们。

您可以通过引用页面令牌来获取下一页结果:

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "jobReference": "JOB_REFERENCE_ID",
          "pageToken": "NEXT_PAGE_TOKEN"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

查询每个区域中的虚拟机数量

gcloud

项目

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        resource.location,
        COUNT(*)
      FROM
        compute_googleapis_com_Instance
      GROUP BY
        resource.location"

请提供以下值:

  • PROJECT_ID:您要查询其元数据的项目的 ID。

文件夹

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        resource.location,
        COUNT(*)
      FROM
        compute_googleapis_com_Instance
      GROUP BY
        resource.location"

请提供以下值:

  • FOLDER_ID:您要查询其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

组织

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        resource.location,
        COUNT(*)
      FROM
        compute_googleapis_com_Instance
      GROUP BY
        resource.location"

请提供以下值:

  • ORGANIZATION_ID:您要查询其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              resource.location,
              COUNT(*)
            FROM
              compute_googleapis_com_Instance
            GROUP BY
              resource.location"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

查询以确定特定区域中的虚拟机

gcloud

项目

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance
      WHERE
        resource.location LIKE '%asia%'"

请提供以下值:

  • PROJECT_ID:您要查询其元数据的项目的 ID。

文件夹

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance
      WHERE
        resource.location LIKE '%asia%'"

请提供以下值:

  • FOLDER_ID:您要查询其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

组织

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance
      WHERE
        resource.location LIKE '%asia%'"

请提供以下值:

  • ORGANIZATION_ID:您要查询其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              name,
              resource.DATA.creationTimestamp
            FROM
              compute_googleapis_com_Instance
            WHERE
              resource.location LIKE \"%asia%\""
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

用于确定每个可公开访问的 Cloud Storage 存储桶的查询

gcloud

项目

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        name
      FROM
        IAM_POLICY
      CROSS JOIN
        UNNEST(iamPolicy.bindings) AS binding
      WHERE
        ('allUsers' IN UNNEST(binding.members)
        OR 'allAuthenticatedUsers' IN UNNEST(binding.members))
        AND assetType = 'storage.googleapis.com/Bucket'"

请提供以下值:

  • PROJECT_ID:您要查询其元数据的项目的 ID。

文件夹

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        name
      FROM
        IAM_POLICY
      CROSS JOIN
        UNNEST(iamPolicy.bindings) AS binding
      WHERE
        ('allUsers' IN UNNEST(binding.members)
        OR 'allAuthenticatedUsers' IN UNNEST(binding.members))
        AND assetType = 'storage.googleapis.com/Bucket'"

请提供以下值:

  • FOLDER_ID:您要查询其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

组织

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        name
      FROM
        IAM_POLICY
      CROSS JOIN
        UNNEST(iamPolicy.bindings) AS binding
      WHERE
        ('allUsers' IN UNNEST(binding.members)
        OR 'allAuthenticatedUsers' IN UNNEST(binding.members))
        AND assetType = 'storage.googleapis.com/Bucket'"

请提供以下值:

  • ORGANIZATION_ID:您要查询其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              name
            FROM
              IAM_POLICY
            CROSS JOIN
              UNNEST(iamPolicy.bindings) AS binding
            WHERE
              (\"allUsers\" IN UNNEST(binding.members)
              OR \"allAuthenticatedUsers\" IN UNNEST(binding.members))
              AND assetType = \"storage.googleapis.com/Bucket\""
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

查询以查找未挂接虚拟机的子网

gcloud

项目

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        subnetwork_table.name
      FROM
        compute_googleapis_com_Subnetwork AS subnetwork_table
      LEFT JOIN (
        SELECT
          interface.subnetwork AS subnetwork
        FROM
          compute_googleapis_com_Instance
        CROSS JOIN
          UNNEST(resource.DATA.networkInterfaces) AS interface) AS instance_table
      ON
        SUBSTR(subnetwork_table.name, 25) = SUBSTR(instance_table.subnetwork,38)
      WHERE
        instance_table.subnetwork IS NULL
        AND NOT subnetwork_table.name LIKE '%default%'"

请提供以下值:

  • PROJECT_ID:您要查询其元数据的项目的 ID。

文件夹

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        subnetwork_table.name
      FROM
        compute_googleapis_com_Subnetwork AS subnetwork_table
      LEFT JOIN (
        SELECT
          interface.subnetwork AS subnetwork
        FROM
          compute_googleapis_com_Instance
        CROSS JOIN
          UNNEST(resource.DATA.networkInterfaces) AS interface) AS instance_table
      ON
        SUBSTR(subnetwork_table.name, 25) = SUBSTR(instance_table.subnetwork,38)
      WHERE
        instance_table.subnetwork IS NULL
        AND NOT subnetwork_table.name LIKE '%default%'"

请提供以下值:

  • FOLDER_ID:您要查询其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

组织

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        subnetwork_table.name
      FROM
        compute_googleapis_com_Subnetwork AS subnetwork_table
      LEFT JOIN (
        SELECT
          interface.subnetwork AS subnetwork
        FROM
          compute_googleapis_com_Instance
        CROSS JOIN
          UNNEST(resource.DATA.networkInterfaces) AS interface) AS instance_table
      ON
        SUBSTR(subnetwork_table.name, 25) = SUBSTR(instance_table.subnetwork,38)
      WHERE
        instance_table.subnetwork IS NULL
        AND NOT subnetwork_table.name LIKE '%default%'"

请提供以下值:

  • ORGANIZATION_ID:您要查询其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              subnetwork_table.name
            FROM
              compute_googleapis_com_Subnetwork AS subnetwork_table
            LEFT JOIN (
              SELECT
                interface.subnetwork AS subnetwork
              FROM
                compute_googleapis_com_Instance
              CROSS JOIN
                UNNEST(resource.DATA.networkInterfaces) AS interface) AS instance_table
            ON
              SUBSTR(subnetwork_table.name, 25) = SUBSTR(instance_table.subnetwork,38)
            WHERE
              instance_table.subnetwork IS NULL
              AND NOT subnetwork_table.name LIKE \"%default%\""
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

查询以查找每个项目中 BigQuery 数据集的数量

gcloud

项目

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        ancestor AS project,
        COUNT(*)
      FROM
        bigquery_googleapis_com_Dataset
      CROSS JOIN
        UNNEST (ancestors) AS ancestor
      WHERE
        ancestor LIKE '%project%'
      GROUP BY
        ancestor
      ORDER BY
        2 DESC"

请提供以下值:

  • PROJECT_ID:您要查询其元数据的项目的 ID。

文件夹

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        ancestor AS project,
        COUNT(*)
      FROM
        bigquery_googleapis_com_Dataset
      CROSS JOIN
        UNNEST (ancestors) AS ancestor
      WHERE
        ancestor LIKE '%project%'
      GROUP BY
        ancestor
      ORDER BY
        2 DESC"

请提供以下值:

  • FOLDER_ID:您要查询其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

组织

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        ancestor AS project,
        COUNT(*)
      FROM
        bigquery_googleapis_com_Dataset
      CROSS JOIN
        UNNEST (ancestors) AS ancestor
      WHERE
        ancestor LIKE '%project%'
      GROUP BY
        ancestor
      ORDER BY
        2 DESC"

请提供以下值:

  • ORGANIZATION_ID:您要查询其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              ancestor AS project,
              COUNT(*)
            FROM
              bigquery_googleapis_com_Dataset
            CROSS JOIN
              UNNEST (ancestors) AS ancestor
            WHERE
              ancestor LIKE \"%project%\"
            GROUP BY
              ancestor
            ORDER BY
              2 DESC"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

用于在特定时间戳识别特定区域中的虚拟机的查询

gcloud

项目

gcloud asset query \
    --project=PROJECT_ID \
    --snapshot-time="SNAPSHOT_TIME" \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance
      WHERE
        resource.location LIKE '%asia%'"

请提供以下值:

  • PROJECT_ID:您要查询其元数据的项目的 ID。

  • SNAPSHOT_TIME:可选。您希望截取资产快照的时间。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会在当前时间截取快照。如需了解时间格式,请参阅 gcloud topic DateTimes

文件夹

gcloud asset query \
    --folder=FOLDER_ID \
    --snapshot-time="SNAPSHOT_TIME" \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance
      WHERE
        resource.location LIKE '%asia%'"

请提供以下值:

  • FOLDER_ID:您要查询其元数据的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • SNAPSHOT_TIME:可选。您希望截取资产快照的时间。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会在当前时间截取快照。如需了解时间格式,请参阅 gcloud topic DateTimes

组织

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --snapshot-time="SNAPSHOT_TIME" \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance
      WHERE
        resource.location LIKE '%asia%'"

请提供以下值:

  • ORGANIZATION_ID:您要查询其元数据的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • SNAPSHOT_TIME:可选。您希望截取资产快照的时间。值必须是当前时间或不超过过去 35 天的时间。如果未提供,系统会在当前时间截取快照。如需了解时间格式,请参阅 gcloud topic DateTimes

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              name,
              resource.DATA.creationTimestamp
            FROM
              compute_googleapis_com_Instance
            WHERE
              resource.location LIKE \"%asia%\"",
          "readTime": "SNAPSHOT_TIME"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

请提供以下值:

  • SNAPSHOT_TIME:可选。您希望截取资源快照的时间,采用 RFC 3339 格式。值必须是当前时间或不超过过去 35 天的时间。如果未提供,则截取当前时间的快照。

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

用于确定特定时间范围内虚拟机的更改历史记录的查询

gcloud

项目

gcloud asset query \
    --project=PROJECT_ID \
    --start-time="START_TIME" \
    --end-time="END_TIME" \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance"

请提供以下值:

  • PROJECT_ID:您要列出其资产的项目的 ID。

  • START_TIME:可选。时间范围的开始时间。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如需了解时间格式,请参阅 gcloud topic DateTimes

  • END_TIME:可选。时间范围的终点。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如果未提供,则假定结束时间为当前时间。如需了解时间格式,请参阅 gcloud topic DateTimes

文件夹

gcloud asset query \
    --folder=FOLDER_ID \
    --start-time="START_TIME" \
    --end-time="END_TIME" \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance"

请提供以下值:

  • FOLDER_ID:您要列出其资产的文件夹的 ID。

    如何查找 Google Cloud 文件夹 ID

    控制台

    如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

    gcloud CLI

    您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

    如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • START_TIME:可选。时间范围的开始时间。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如需了解时间格式,请参阅 gcloud topic DateTimes

  • END_TIME:可选。时间范围的终点。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如果未提供,则假定结束时间为当前时间。如需了解时间格式,请参阅 gcloud topic DateTimes

组织

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --start-time="START_TIME" \
    --end-time="END_TIME" \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance"

请提供以下值:

  • ORGANIZATION_ID:您要列出其资产的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • START_TIME:可选。时间范围的开始时间。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如需了解时间格式,请参阅 gcloud topic DateTimes

  • END_TIME:可选。时间范围的终点。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如果未提供,则假定结束时间为当前时间。如需了解时间格式,请参阅 gcloud topic DateTimes

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              name,
              resource.DATA.creationTimestamp
            FROM
              compute_googleapis_com_Instance",
          "readTimeWindow": {
            "startTime": "START_TIME",
            "endTime": "END_TIME"
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

请提供以下值:

  • START_TIME:可选。时间范围的开始时间。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如需了解时间格式,请参阅 gcloud topic DateTimes

  • END_TIME:可选。时间范围的终点。最长时间范围为 7 天。值必须是当前时间或不超过过去 35 天的时间。如果未提供,则假定结束时间为当前时间。如需了解时间格式,请参阅 gcloud topic DateTimes

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 转到 Google Cloud 控制台中的信息中心页面。

        前往信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择:框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到该项目。项目信息卡片中会显示项目编号。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 会显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是完整的字符串匹配,也可以是部分字符串匹配。移除 --format 选项可查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中某个文件夹的 ID,请列出各个子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"