您可以搜索项目、文件夹或组织中的资源,还可以过滤 使用查询返回的结果。
准备工作
在您将运行 Cloud Asset Inventory 命令的项目中启用 Cloud Asset Inventory API。
确保您的账号具有调用 Cloud Asset Inventory API 的正确角色。如需了解每种通话类型的具体权限,请参阅权限。
构建查询
在构建查询之前,不妨先使用不指定查询的搜索请求。使用完整响应中的字段和值,使用搜索查询语法创建查询,并对其进行优化,直到返回您想要的结果。
如需详细了解可在查询中使用的字段,请参阅 searchAllResources 参考文档。
并非所有资源都可搜索。如需了解资源名称,并检查它们是否可供搜索 API 使用,请参阅资源类型。
搜索资源
控制台
如需搜索资源元数据,请完成以下步骤。
-
前往 Google Cloud 控制台中的资产库存页面。
- 更改为要搜索的项目、文件夹或组织。
- 点击资源标签页。
-
如需搜索资源,请在过滤条件字段中输入查询。请参阅 <ph type="x-smartling-placeholder"></ph> 搜索查询语法,了解如何编写搜索查询。
为了更轻松地构建查询,您可以点击过滤条件 字段,您可以将可用的可搜索字段添加到 查询。
执行搜索后,结果表中会列出与查询匹配的资源。双击您的查询以进行修改,或使用 过滤结果窗格,以按特定条件限制搜索结果 条件。
如需以 Google Cloud CLI 命令的形式来查看查询,请点击查看查询。
要导出结果,请点击下载 CSV 文件。
gcloud
gcloud asset search-all-resources \ --scope=SCOPE_PATH \ --query="QUERY" \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --order-by="ORDER_BY" \ --read-mask="READ_MASK"
请提供以下值:
-
SCOPE_PATH
:使用以下某个值:允许使用的值包括:
-
projects/PROJECT_ID
,其中PROJECT_ID
是包含要搜索的资源的项目的 ID。 -
projects/PROJECT_NUMBER
,其中PROJECT_NUMBER
是包含您要搜索的资产的项目编号。如何查找 Google Cloud 项目编号
Google Cloud 控制台
如需查找 Google Cloud 项目编号,请完成以下步骤:
gcloud CLI
您可以使用以下命令检索 Google Cloud 项目编号:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
,其中FOLDER_ID
为 包含您要搜索的资产的文件夹的 ID。如何查找 Google Cloud 文件夹的 ID
Google Cloud 控制台
如需查找 Google Cloud 文件夹的 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
<ph type="x-smartling-placeholder"></ph> 前往 Google Cloud 控制台
- 点击菜单栏中的切换器列表框。
- 从列表框中选择您的组织。
- 搜索您的文件夹名称。文件夹 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。为此, 使用顶级文件夹的 ID 运行以下命令:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
,其中ORGANIZATION_ID
是包含您要搜索的资产的组织的 ID。如何查找 Google Cloud 组织的 ID
Google Cloud 控制台
如需查找 Google Cloud 组织的 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
<ph type="x-smartling-placeholder"></ph> 前往 Google Cloud 控制台
- 点击菜单栏中的切换器列表框。
- 从列表框中选择您的组织。
- 点击全部标签页。组织 ID 会显示在组织名称旁边。
gcloud CLI
您可以使用以下命令检索 Google Cloud 组织的 ID:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
:可选。查询表达式。如果未指定,或者 为空,则系统会搜索指定范围内的所有资源。如需了解如何编写搜索查询,请参阅搜索查询语法。 ASSET_TYPE_#
:可选。可搜索的素材资源类型以英文逗号分隔的列表。 <ph type="x-smartling-placeholder"></ph> 支持与 RE2 兼容的正则表达式。如果正则表达式不匹配 任何受支持的素材资源类型都会返回INVALID_ARGUMENT
错误。如果未指定--asset-types
,系统会返回所有资产类型。-
ORDER_BY
:可选。以英文逗号分隔的字段列表 用于指定结果的排序顺序。默认顺序是升序。 在字段名称后添加DESC
可指示降序顺序。如需了解哪些字段可以排序,请参阅参考文档。 READ_MASK
:可选。答 以逗号分隔的字段列表,用于指定要在结果中返回的字段。如需了解默认返回的字段以及指定读取掩码时应注意的其他条件,请参阅
您可以使用 --format
和 --flatten
标志来设置 gcloud CLI 输出的格式。
如需了解所有选项,请参阅 gcloud CLI 参考文档。
示例
运行以下命令可获取 my-project
项目中所有 Compute Engine 实例的列表,其中完整资源名称中包含 instance
后跟 1
的字样。结果按名称降序排序,并且由于读取掩码,系统只会返回 name
和 location
字段。
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="name:instance 1" \ --asset-types=compute.googleapis.com/Instance \ --order-by="name DESC" \ --read-mask="name,location"
示例响应
--- location: us-central1-a name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-2-1 --- location: us-central1-a name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1
REST
HTTP 方法和网址:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:searchAllResources
请求 JSON 正文:
{ "query": "QUERY", "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "orderBy": "ORDER_BY", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN", "readMask": "READ_MASK" }
请提供以下值:
-
SCOPE_PATH
:使用以下某个值:允许使用的值包括:
-
projects/PROJECT_ID
,其中PROJECT_ID
是包含要搜索的资源的项目的 ID。 -
projects/PROJECT_NUMBER
,其中PROJECT_NUMBER
是包含您要搜索的资产的项目编号。如何查找 Google Cloud 项目编号
Google Cloud 控制台
如需查找 Google Cloud 项目编号,请完成以下步骤:
gcloud CLI
您可以使用以下命令检索 Google Cloud 项目编号:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
,其中FOLDER_ID
为 包含您要搜索的资产的文件夹的 ID。如何查找 Google Cloud 文件夹的 ID
Google Cloud 控制台
如需查找 Google Cloud 文件夹的 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
<ph type="x-smartling-placeholder"></ph> 前往 Google Cloud 控制台
- 点击菜单栏中的切换器列表框。
- 从列表框中选择您的组织。
- 搜索您的文件夹名称。文件夹 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。为此, 使用顶级文件夹的 ID 运行以下命令:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
,其中ORGANIZATION_ID
是包含您要搜索的资产的组织的 ID。如何查找 Google Cloud 组织的 ID
Google Cloud 控制台
如需查找 Google Cloud 组织的 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器列表框。
- 从列表框中选择您的组织。
- 点击全部标签页。组织 ID 会显示在组织名称旁边。
gcloud CLI
您可以使用以下命令检索 Google Cloud 组织的 ID:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
:可选。查询表达式。如果未指定,或者 为空,则系统会搜索指定范围内的所有资源。了解如何编写搜索内容 请参阅搜索查询语法。 ASSET_TYPE_#
:可选。可搜索资产类型数组。 <ph type="x-smartling-placeholder"></ph> 支持与 RE2 兼容的正则表达式。如果正则表达式与任何支持的资源类型均不匹配,则会返回INVALID_ARGUMENT
错误。如果未指定assetTypes
,系统会返回所有资产类型。-
ORDER_BY
:可选。以英文逗号分隔的字段列表 用于指定结果的排序顺序。默认顺序是升序。 在字段名称后添加DESC
可指示降序顺序。如需了解哪些字段可以排序,请参阅参考文档。 -
PAGE_SIZE
:可选。每页返回的结果数。最大值是 500。如果该值设为0
或负值,系统会选择相应的默认值。系统会返回nextPageToken
以检索后续结果。 -
PAGE_TOKEN
:可选。长请求响应会分开显示 多个页面如果未指定pageToken
,则返回第一页。 您可以使用上一个响应的nextPageToken
作为pageToken
值来调用后续页面。 READ_MASK
:可选。用于指定要在结果中返回的字段的英文逗号分隔列表。请参阅默认返回的字段,以及在使用时需要注意的其他条件。 指定读取掩码
如需了解详情,请参阅 REST 参考 选项。
命令示例
运行以下命令之一,即可获取 my-project
项目中所有 Compute Engine 实例的列表,其中完整资源名称中包含 instance
后跟 1
的字样。结果按名称降序排序,并且仅返回 name
和 location
字段。
curl(Linux、macOS 或 Cloud Shell)
<ph type="x-smartling-placeholder">curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "query": "name:instance 1", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "name DESC", "readMask": "name,location" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "query": "name:instance 1", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "name DESC", "readMask": "name,location" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
示例响应
{ "results": [ { "name": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-2-1", "location": "us-central1-a" }, { "name": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1", "location": "us-central1-a" } ] }
C#
如需了解如何安装和使用 Cloud Asset Inventory 的客户端库,请参阅 Cloud Asset Inventory 客户端库。
如需向 Cloud Asset Inventory 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Cloud Asset Inventory 客户端库,请参阅 Cloud Asset Inventory 客户端库。
如需向 Cloud Asset Inventory 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Cloud Asset Inventory 的客户端库,请参阅 Cloud Asset Inventory 客户端库。
如需向 Cloud Asset Inventory 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Cloud Asset Inventory 的客户端库,请参阅 Cloud Asset Inventory 客户端库。
如需向 Cloud Asset Inventory 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Cloud Asset Inventory 的客户端库,请参阅 Cloud Asset Inventory 客户端库。
如需向 Cloud Asset Inventory 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Cloud Asset Inventory 的客户端库,请参阅 Cloud Asset Inventory 客户端库。
如需向 Cloud Asset Inventory 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需了解如何安装和使用 Cloud Asset Inventory 的客户端库,请参阅 Cloud Asset Inventory 客户端库。
如需向 Cloud Asset Inventory 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
其他搜索示例
以下代码示例展示了 gcloud 和 REST 的特定搜索查询,可帮助您构建自己的搜索。
项目中的所有资源
以下示例展示了如何在 my-project
中搜索所有资源
项目。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --format="table(assetType.basename(), name.basename(), name.scope(projects).segment(0):label=PROJECT_ID, labels)"
REST
HTTP 方法和网址:
GET https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
命令示例
curl(Linux、macOS 或 Cloud Shell)
<ph type="x-smartling-placeholder">curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell (Windows)
<ph type="x-smartling-placeholder">$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
Compute Engine 实例(按说明)
以下示例展示了如何在
确切名称为“instance-prod
”的 my-project
项目。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="description=instance-prod" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, location)"
REST
HTTP 方法和网址:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
请求 JSON 正文:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "description=instance-prod", "readMask": "name,assetType,location" }
命令示例
curl(Linux、macOS 或 Cloud Shell)
<ph type="x-smartling-placeholder">curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "description=instance-prod", "readMask": "name,assetType,location" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell (Windows)
<ph type="x-smartling-placeholder">$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "description=instance-prod", "readMask": "name,assetType,location" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
如需搜索名称中包含 instance-prod
的实例(例如 instance-prod-1
和 instance-prod-2
),而不是完全匹配的实例,请将 =instance-prod
替换为 :instance-prod
。
按标签划分的 Compute Engine 实例
以下示例展示了如何在
标签为 env
的 my-project
项目。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="labels.env:*" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, labels)"
REST
HTTP 方法和网址:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
请求 JSON 正文:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "labels.env:*", "readMask": "name,assetType,labels" }
命令示例
curl(Linux、macOS 或 Cloud Shell)
<ph type="x-smartling-placeholder">curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "labels.env:*", "readMask": "name,assetType,labels" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell (Windows)
<ph type="x-smartling-placeholder">$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "labels.env:*", "readMask": "name,assetType,labels" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
按 TagKey 划分的 Compute Engine 实例
以下示例展示了如何在 my-project
项目中搜索已使用 TagKey
直接附加标记的 Compute Engine 实例。包含 env
的 namespacedName
。
要改为按有效的 TagKeys 进行搜索,请将 tagKeys
替换为
effectiveTagKeys
。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="tagKeys:env" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, tags)"
REST
HTTP 方法和网址:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
请求 JSON 正文:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagKeys:env", "readMask": "name,assetType,tags" }
命令示例
curl(Linux、macOS 或 Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagKeys:env", "readMask": "name,assetType,tags" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell (Windows)
<ph type="x-smartling-placeholder">$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagKeys:env", "readMask": "name,assetType,tags" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
按 TagValue 划分的 Compute Engine 实例
以下示例展示了如何在
my-project
个已直接关联代码且
TagValue
。namespacedName
包含 prod
或 sea
,并且实例名称不包含 instance1
。
要改为按有效的 TagValues 进行搜索,请将 tagValues
替换为
effectiveTagValues
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="tagValues:(prod OR sea) (NOT name:instance1)" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, tags)"
REST
HTTP 方法和网址:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
请求 JSON 正文:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagValues:(prod OR sea) (NOT name:instance1)", "readMask": "name,assetType,tags" }
命令示例
curl(Linux、macOS 或 Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagValues:(prod OR sea) (NOT name:instance1)", "readMask": "name,assetType,tags" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagValues:(prod OR sea) (NOT name:instance1)", "readMask": "name,assetType,tags" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
在特定时间之后创建的 Compute Engine 实例
以下示例展示了如何在
2023 年 12 月 31 日之后创建的 my-project
项目。
有关日期时间比较的详情,请参见 数值和时间戳比较。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="createTime>2023-31-12" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, location)"
REST
HTTP 方法和网址:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
请求 JSON 正文:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "createTime>2023-31-12", "readMask": "name,assetType,location" }
命令示例
curl(Linux、macOS 或 Cloud Shell)
<ph type="x-smartling-placeholder">curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "createTime>2023-31-12", "readMask": "name,assetType,location" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell (Windows)
<ph type="x-smartling-placeholder">$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "createTime>2023-31-12", "readMask": "name,assetType,location" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
位于美国的 Compute Engine 实例
以下示例展示了如何在
位于美国的 my-project
项目。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="location:us-*" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, location)"
REST
HTTP 方法和网址:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
请求 JSON 正文:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "location:us-*", "readMask": "name,assetType,location" }
命令示例
curl(Linux、macOS 或 Cloud Shell)
<ph type="x-smartling-placeholder">curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "location:us-*", "readMask": "name,assetType,location" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "location:us-*", "readMask": "name,assetType,location" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
正在运行的 Compute Engine 实例
以下示例展示了如何搜索
正在 my-project
项目中运行。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="state=RUNNING" \ --asset-types=compute.googleapis.com/Instance \ --read-mask="name,assetType,location,versionedResources" \ --format="table(name, assetType, location, versionedResources)"
REST
HTTP 方法和网址:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
请求 JSON 正文:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "state=RUNNING", "readMask": "name,assetType,location,versionedResources" }
命令示例
curl(Linux、macOS 或 Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "state=RUNNING", "readMask": "name,assetType,location,versionedResources" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell (Windows)
<ph type="x-smartling-placeholder">$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "state=RUNNING", "readMask": "name,assetType,location,versionedResources" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
要搜索未运行的 Compute Engine 实例,请将
NOT state:running
会员价为 state=RUNNING
。
相关的 Google Cloud 资源
关系查询仅适用于 Security Command Center 高级层级和企业层级订阅者。
以下示例展示了如何在 my-project
项目中搜索相关资源(针对受支持的关系类型)。例如:
所有 Compute Engine 实例,
在以下位置包含 instance-group
的实例组:
完整资源名称
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="relationships:instance-group" \ --format="table(name, assetType, relationships)"
REST
HTTP 方法和网址:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
请求 JSON 正文:
{ "pageSize": 1, "query": "relationships:instance-group", "readMask": "name,assetType,relationships" }
命令示例
curl(Linux、macOS 或 Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "relationships:instance-group", "readMask": "name,assetType,relationships" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "relationships:instance-group", "readMask": "name,assetType,relationships" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
您还可以指定要搜索的关系类型。对于
例如,要搜索 INSTANCE_TO_INSTANCEGROUP
关系类型,请使用
查询 relationships.INSTANCE_TO_INSTANCEGROUP
。如需搜索具有包含 instance-group
的完整资源名称的关系类型,请使用查询 relationships.INSTANCE_TO_INSTANCEGROUP:instance-group
。