Pesquisar recursos

É possível pesquisar recursos em um projeto, uma pasta ou uma organização e filtrar os resultados retornados usando uma consulta.

Antes de começar

  1. Ative a API Cloud Asset Inventory no projeto em que você está executando comandos do Inventário de recursos do Cloud.

    Ativar a API Cloud Asset Inventory

  2. Verifique se a conta tem o papel correto para chamar a API Cloud Asset Inventory. Para permissões individuais de cada tipo de chamada, consulte Permissões.

Criar uma consulta

Antes de criar uma consulta, pode ser útil começar com uma solicitação de pesquisa que não especifique uma consulta. Use os campos e valores da resposta completa para criar uma consulta usando a sintaxe de consulta de pesquisa e refine-a até que os resultados desejados sejam retornados.

Os campos que podem ser usados em uma consulta estão detalhados na documentação de referência do searchAllResources.

Nem todos os recursos podem ser pesquisados. Consulte Tipos de recursos para conferir os nomes de recursos e verificar se eles estão disponíveis para as APIs de pesquisa.

Pesquisar recursos

Console

Para pesquisar metadados de recursos, siga estas etapas.

  1. Acesse a página Inventário de recursos no console do Google Cloud .

    Acessar o inventário de recursos

  2. Mude para o projeto, a pasta ou a organização que você quer pesquisar.
  3. Clique na guia Recurso.
  4. Para pesquisar recursos, insira uma consulta no campo Filtro. Consulte Sintaxe da consulta de pesquisa para saber como escrever uma consulta de pesquisa.

    Para facilitar a criação de consultas, clique no campo Filtrar para mostrar e adicionar os campos pesquisáveis disponíveis à consulta.

Depois de realizar uma pesquisa, os recursos correspondentes à consulta são listados na tabela Resultados. Clique duas vezes na consulta para editá-la ou use o painel Filtrar resultados para restringir os resultados da pesquisa por critérios específicos.

Para visualizar a consulta como um comando da Google Cloud CLI, clique em Visualizar consulta.

Para exportar os resultados, clique em Fazer o download do 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"

Forneça os valores a seguir:

  • SCOPE_PATH: use um dos seguintes valores:

    Os valores permitidos são:

    • projects/PROJECT_ID, em que PROJECT_ID é o ID do projeto que tem os recursos que você quer pesquisar.
    • projects/PROJECT_NUMBER, em que PROJECT_NUMBER é o número do projeto que tem os recursos que você quer pesquisar.

      Como encontrar um número de projeto da nuvem soberana da T-Systems .

      Google Cloud console

      Para encontrar um número de projeto do Google Cloud , siga estas etapas:

      1. Acesse a página Welcome no console Google Cloud .

        Acessar a página de boas-vindas

      2. Clique na caixa de lista switcher na barra de menu.
      3. Selecione sua organização na caixa de lista e pesquise o nome do projeto. O nome, o número e o ID do projeto são mostrados perto do título Welcome.

        Até 4.000 recursos são exibidos. Se você não encontrar o projeto que está procurando, acesse a página Gerenciar recursos e filtre a lista usando o nome dele.

      CLI da gcloud

      É possível extrair um número de projeto do Google Cloud com o seguinte comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    • folders/FOLDER_ID, em que FOLDER_ID é o ID da pasta que tem os recursos que você quer pesquisar.

      Como encontrar o ID de uma pasta do Google Cloud

      Google Cloud console

      Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:

      1. Acesse o console Google Cloud .

        Acesse o console do Google Cloud

      2. Clique na caixa de lista switcher na barra de menu.
      3. Selecione sua organização no campo de lista.
      4. Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.

      CLI da gcloud

      É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:

      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)"

      Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag --format para conferir mais informações sobre as pastas encontradas.

      O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o comando abaixo usando o ID de uma pasta de nível superior:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organizations/ORGANIZATION_ID, em que ORGANIZATION_ID é o ID da organização que tem os recursos que você quer pesquisar.

      Como encontrar o ID de uma organização do Google Cloud

      Google Cloud console

      Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:

      1. Acesse o console Google Cloud .

        Acesse o console do Google Cloud

      2. Clique na caixa de lista switcher na barra de menu.
      3. Selecione sua organização no campo de lista.
      4. Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.

      CLI da gcloud

      É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
  • QUERY: opcional. A expressão de consulta. Se não for especificado ou estiver vazio, todos os recursos serão pesquisados no escopo especificado. Para saber como escrever uma consulta de pesquisa, consulte Sintaxe da consulta de pesquisa.
  • ASSET_TYPE_#: opcional. Uma lista separada por vírgulas de tipos de recursos pesquisáveis. As expressões regulares compatíveis com RE2 são aceitas. Se a expressão regular não corresponder a nenhum tipo de recurso aceito, um erro INVALID_ARGUMENT será retornado. Quando --asset-types não é especificado, todos os tipos de recursos são retornados.
  • ORDER_BY: opcional. Uma lista de campos separada por vírgulas que especifica a ordem de classificação dos resultados. A ordem padrão é crescente. Adicione DESC depois do nome do campo para indicar a ordem decrescente. Consulte a documentação de referência para saber quais campos podem ser classificados.
  • READ_MASK: opcional. Uma lista separada por vírgulas de campos que especifica quais campos devem ser retornados nos resultados. Consulte os campos que são retornados por padrão e outras condições a serem consideradas ao especificar uma máscara de leitura.

É possível usar as flags --format e --flatten para formatar a saída da CLI gcloud.

Consulte a referência da CLI do gcloud para conferir todas as opções.

Exemplo

Execute o comando a seguir para receber uma lista de todas as instâncias do Compute Engine no projeto my-project com a palavra instance seguida por um 1 no nome completo do recurso. Os resultados estão em ordem decrescente pelo nome e, devido à máscara de leitura, apenas os campos name e location são retornados.

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"

Exemplo de resposta

---
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

Método HTTP e URL:

POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:searchAllResources

Solicitar corpo JSON:

{
  "query": "QUERY",
  "assetTypes": [
    "ASSET_TYPE_1",
    "ASSET_TYPE_2",
    "..."
  ],
  "orderBy": "ORDER_BY",
  "pageSize": "PAGE_SIZE",
  "pageToken": "PAGE_TOKEN",
  "readMask": "READ_MASK"
}

Forneça os valores a seguir:

  • SCOPE_PATH: use um dos seguintes valores:

    Os valores permitidos são:

    • projects/PROJECT_ID, em que PROJECT_ID é o ID do projeto que tem os recursos que você quer pesquisar.
    • projects/PROJECT_NUMBER, em que PROJECT_NUMBER é o número do projeto que tem os recursos que você quer pesquisar.

      Como encontrar um número de projeto da nuvem soberana da T-Systems .

      Google Cloud console

      Para encontrar um número de projeto do Google Cloud , siga estas etapas:

      1. Acesse a página Welcome no console Google Cloud .

        Acessar a página de boas-vindas

      2. Clique na caixa de lista switcher na barra de menu.
      3. Selecione sua organização na caixa de lista e pesquise o nome do projeto. O nome, o número e o ID do projeto são mostrados perto do título Welcome.

        Até 4.000 recursos são exibidos. Se você não encontrar o projeto que está procurando, acesse a página Gerenciar recursos e filtre a lista usando o nome dele.

      CLI da gcloud

      É possível extrair um número de projeto do Google Cloud com o seguinte comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    • folders/FOLDER_ID, em que FOLDER_ID é o ID da pasta que tem os recursos que você quer pesquisar.

      Como encontrar o ID de uma pasta

      Google Cloud console

      Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:

      1. Acesse o console Google Cloud .

        Acesse o console do Google Cloud

      2. Clique na caixa de lista switcher na barra de menu.
      3. Selecione sua organização no campo de lista.
      4. Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.

      CLI da gcloud

      É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:

      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)"

      Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag --format para conferir mais informações sobre as pastas encontradas.

      O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o comando abaixo usando o ID de uma pasta de nível superior:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organizations/ORGANIZATION_ID, em que ORGANIZATION_ID é o ID da organização que tem os recursos que você quer pesquisar.

      Como encontrar o ID de uma organização do Google Cloud

      Google Cloud console

      Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:

      1. Acesse o console Google Cloud .

        Acesse o console do Google Cloud

      2. Clique na caixa de lista switcher na barra de menu.
      3. Selecione sua organização no campo de lista.
      4. Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.

      CLI da gcloud

      É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
  • QUERY: opcional. A expressão de consulta. Se não for especificado ou estiver vazio, todos os recursos serão pesquisados no escopo especificado. Para saber como escrever uma consulta de pesquisa, consulte Sintaxe da consulta de pesquisa.
  • ASSET_TYPE_#: opcional. Uma matriz de tipos de recursos pesquisáveis. As expressões regulares compatíveis com RE2 são aceitas. Se a expressão regular não corresponder a nenhum tipo de recurso aceito, um erro INVALID_ARGUMENT será retornado. Quando assetTypes não é especificado, todos os tipos de recurso são retornados.
  • ORDER_BY: opcional. Uma lista de campos separada por vírgulas que especifica a ordem de classificação dos resultados. A ordem padrão é crescente. Adicione DESC depois do nome do campo para indicar a ordem decrescente. Consulte a documentação de referência para saber quais campos podem ser classificados.
  • PAGE_SIZE: opcional. O número de resultados a serem retornados por página. O valor máximo é 500. Se o valor for definido como 0 ou um valor negativo, um padrão apropriado será selecionado. Um nextPageToken é retornado para recuperar resultados subsequentes.

  • PAGE_TOKEN: opcional. Respostas longas são separadas em várias páginas. Quando pageToken não é especificado, a primeira página é retornada. As páginas seguintes podem ser chamadas usando o nextPageToken da resposta anterior como o valor de pageToken.
  • READ_MASK: opcional. Uma lista separada por vírgulas de campos que especifica quais campos devem ser retornados nos resultados. Consulte os campos que são retornados por padrão e outras condições a serem consideradas ao especificar uma máscara de leitura.

Consulte a referência REST para conferir todas as opções.

Exemplos de comando

Execute um dos comandos a seguir para receber uma lista de todas as instâncias do Compute Engine no projeto my-project com a palavra instance seguida por um 1 no nome completo do recurso. Os resultados são classificados em ordem decrescente por nome, e apenas os campos name e location são retornados.

curl (Linux, macOS ou 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 '{
            "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

Exemplo de resposta

{
  "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#

Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.

Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


using Google.Api.Gax;
using Google.Cloud.Asset.V1;
using System.Collections.Generic;
using System.Linq;

public class SearchAllResourcesSample
{
    public SearchAllResourcesResponse SearchAllResources(string scope, string query)
    {
        // Create the client.
        AssetServiceClient client = AssetServiceClient.Create();

        // Build the request.
        SearchAllResourcesRequest request = new SearchAllResourcesRequest
        {
            Scope = scope,
            Query = query,
        };

        // Call the API.
        PagedEnumerable<SearchAllResourcesResponse, ResourceSearchResult> response = client.SearchAllResources(request);

        // Return the first page.
        IEnumerable<SearchAllResourcesResponse> byPages = response.AsRawResponses();
        return byPages.First();
    }
}

Go

Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.

Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


// Sample search-all-resources searches all resources within the given scope.
package main

import (
	"context"
	"flag"
	"fmt"
	"log"

	asset "cloud.google.com/go/asset/apiv1"
	"cloud.google.com/go/asset/apiv1/assetpb"
	"google.golang.org/api/iterator"
)

func main() {
	scope := flag.String("scope", "", "Scope of the search.")
	query := flag.String("query", "", "Query statement.")
	flag.Parse()
	ctx := context.Background()
	client, err := asset.NewClient(ctx)
	if err != nil {
		log.Fatalf("asset.NewClient: %v", err)
	}
	defer client.Close()

	req := &assetpb.SearchAllResourcesRequest{
		Scope: *scope,
		Query: *query,
	}
	it := client.SearchAllResources(ctx, req)
	for {
		resource, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			log.Fatal(err)
		}
		fmt.Println(resource)
	}
}

Java

Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.

Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

import com.google.api.gax.rpc.ApiException;
import com.google.api.gax.rpc.InvalidArgumentException;
import com.google.cloud.asset.v1.AssetServiceClient;
import com.google.cloud.asset.v1.AssetServiceClient.SearchAllResourcesPagedResponse;
import com.google.cloud.asset.v1.SearchAllResourcesRequest;
import java.io.IOException;
import java.util.Arrays;

public class SearchAllResourcesExample {

  // Searches for all the resources within the given scope.
  public static void searchAllResources(String scope, String query) {
    // TODO(developer): Replace these variables before running the sample.
    String[] assetTypes = {};
    int pageSize = 0;
    String pageToken = "";
    String orderBy = "";

    SearchAllResourcesRequest request =
        SearchAllResourcesRequest.newBuilder()
            .setScope(scope)
            .setQuery(query)
            .addAllAssetTypes(Arrays.asList(assetTypes))
            .setPageSize(pageSize)
            .setPageToken(pageToken)
            .setOrderBy(orderBy)
            .build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AssetServiceClient client = AssetServiceClient.create()) {
      SearchAllResourcesPagedResponse response = client.searchAllResources(request);
      System.out.println("Search completed successfully:\n" + response.getPage().getValues());
    } catch (IOException e) {
      System.out.println(String.format("Failed to create client:%n%s", e.toString()));
    } catch (InvalidArgumentException e) {
      System.out.println(String.format("Invalid request:%n%s", e.toString()));
    } catch (ApiException e) {
      System.out.println(String.format("Error during SearchAllResources:%n%s", e.toString()));
    }
  }
}

Node.js

Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.

Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const scope = '';
// const query = '';
// const assetTypes = [];
// const pageSize = 0;
// const pageToken = '';
// const orderBy = '';

const util = require('util');
const {AssetServiceClient} = require('@google-cloud/asset');

const client = new AssetServiceClient();
const projectId = await client.getProjectId();

async function searchAllResources() {
  const request = {
    scope: `projects/${projectId}`,
    query: query,
    assetTypes: assetTypes,
    pageSize: pageSize,
    pageToken: pageToken,
    orderBy: orderBy,
  };
  const options = {
    autoPaginate: false,
  };

  // Handle the operation using the promise pattern.
  const result = await client.searchAllResources(request, options);
  // Do things with with the response.
  console.log(util.inspect(result, {depth: null}));
}

PHP

Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.

Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

use Google\Cloud\Asset\V1\Client\AssetServiceClient;
use Google\Cloud\Asset\V1\SearchAllResourcesRequest;

/**
 * @param string   $scope      Scope of the search
 * @param string   $query      (Optional) Query statement
 * @param string[] $assetTypes (Optional) Asset types to search for
 * @param int      $pageSize   (Optional) Size of each result page
 * @param string   $pageToken  (Optional) Token produced by the preceding call
 * @param string   $orderBy    (Optional) Fields to sort the results
 */
function search_all_resources(
    string $scope,
    string $query = '',
    array $assetTypes = [],
    int $pageSize = 0,
    string $pageToken = '',
    string $orderBy = ''
): void {
    // Instantiate a client.
    $asset = new AssetServiceClient();

    // Run request
    $request = (new SearchAllResourcesRequest())
        ->setScope($scope)
        ->setQuery($query)
        ->setAssetTypes($assetTypes)
        ->setPageSize($pageSize)
        ->setPageToken($pageToken)
        ->setOrderBy($orderBy);
    $response = $asset->searchAllResources($request);

    // Print the resource names in the first page of the result
    foreach ($response->getPage() as $resource) {
        print($resource->getName() . PHP_EOL);
    }
}

Python

Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.

Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

from google.cloud import asset_v1

# TODO scope = 'Scope of the search'
# TODO query = 'Query statement'
# TODO asset_types = 'List of asset types to search for'
# TODO page_size = Size of each result page
# TODO order_by = 'Fields to sort the results'

client = asset_v1.AssetServiceClient()
response = client.search_all_resources(
    request={
        "scope": scope,
        "query": query,
        "asset_types": asset_types,
        "page_size": page_size,
        "order_by": order_by,
    }
)
for resource in response:
    print(resource)

Ruby

Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.

Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

require "google/cloud/asset"

# scope = 'SCOPE_OF_THE_QUERY'
# query = 'QUERY_STATEMENT'
# asset_types = 'AN_ARRAY_OF_ASSET_TYPES_TO_SEARCH_FOR'
# page_size = 'SIZE_OF_EACH_RESULT_PAGE'
# page_token = 'TOKEN_PRODUCED_BY_THE_PRECEDING_CALL'
# order_by = 'FIELDS_TO_SORT_THE RESULTS'
asset_service = Google::Cloud::Asset.asset_service

response = asset_service.search_all_resources(
  scope:       scope,
  query:       query,
  asset_types: asset_types,
  page_size:   page_size,
  page_token:  page_token,
  order_by:    order_by
)
# Do things with the response
response.page.each do |resource|
  puts resource
end

Outros exemplos de pesquisa

Os exemplos de código a seguir mostram consultas de pesquisa específicas para o gcloud e o REST para ajudar você a criar suas próprias pesquisas.

Todos os recursos em um projeto

O exemplo a seguir mostra como pesquisar todos os recursos no projeto 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

Método HTTP e URL:

GET https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources

Exemplos de comando

curl (Linux, macOS ou Cloud Shell)

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources

PowerShell (Windows)

$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

Instâncias do Compute Engine por descrição

O exemplo a seguir mostra como pesquisar instâncias do Compute Engine no projeto my-project com o nome exato instance-prod.

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

Método HTTP e URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources

Solicitar corpo JSON:

{
  "assetTypes": "compute.googleapis.com/Instance",
  "pageSize": 1,
  "query": "description=instance-prod",
  "readMask": "name,assetType,location"
}

Exemplos de comando

curl (Linux, macOS ou 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": "description=instance-prod",
            "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": "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

Para pesquisar instâncias com instance-prod no nome (como instance-prod-1 e instance-prod-2) em vez de uma correspondência exata, substitua =instance-prod por :instance-prod.

Instâncias do Compute Engine por rótulo

O exemplo a seguir mostra como pesquisar instâncias do Compute Engine no projeto my-project com um rótulo chamado env.

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

Método HTTP e URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources

Solicitar corpo JSON:

{
  "assetTypes": "compute.googleapis.com/Instance",
  "pageSize": 1,
  "query": "labels.env:*",
  "readMask": "name,assetType,labels"
}

Exemplos de comando

curl (Linux, macOS ou 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": "labels.env:*",
            "readMask": "name,assetType,labels"
          }' \
     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": "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

Instâncias do Compute Engine por TagKey

O exemplo a seguir mostra como pesquisar instâncias do Compute Engine no projeto my-project que tenham tags anexadas diretamente com um TagKey.namespacedName contendo env.

Para pesquisar por TagKeys eficazes, substitua tagKeys por 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

Método HTTP e URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources

Solicitar corpo JSON:

{
  "assetTypes": "compute.googleapis.com/Instance",
  "pageSize": 1,
  "query": "tagKeys:env",
  "readMask": "name,assetType,tags"
}

Exemplos de comando

curl (Linux, macOS ou 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)

$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

Instâncias do Compute Engine por TagValue

O exemplo a seguir mostra como pesquisar instâncias do Compute Engine no projeto my-project que tenham tags anexadas diretamente onde o TagValue.namespacedName contém prod ou sea, e o nome da instância não contém instance1.

Para pesquisar por TagValues eficazes, substitua tagValues por 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

Método HTTP e URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources

Solicitar corpo JSON:

{
  "assetTypes": "compute.googleapis.com/Instance",
  "pageSize": 1,
  "query": "tagValues:(prod OR sea) (NOT name:instance1)",
  "readMask": "name,assetType,tags"
}

Exemplos de comando

curl (Linux, macOS ou 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

Instâncias do Compute Engine criadas após um período específico

O exemplo a seguir mostra como pesquisar instâncias do Compute Engine no projeto my-project que foram criadas após 31 de dezembro de 2023.

Para mais informações sobre comparações de data/hora, consulte Comparação numérica e de carimbo de data/hora.

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

Método HTTP e URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources

Solicitar corpo JSON:

{
  "assetTypes": "compute.googleapis.com/Instance",
  "pageSize": 1,
  "query": "createTime>2023-31-12",
  "readMask": "name,assetType,location"
}

Exemplos de comando

curl (Linux, macOS ou 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": "createTime>2023-31-12",
            "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": "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

Instâncias do Compute Engine localizadas nos EUA

O exemplo a seguir mostra como pesquisar instâncias do Compute Engine no projeto my-project localizado nos EUA.

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

Método HTTP e URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources

Solicitar corpo JSON:

{
  "assetTypes": "compute.googleapis.com/Instance",
  "pageSize": 1,
  "query": "location:us-*",
  "readMask": "name,assetType,location"
}

Exemplos de comando

curl (Linux, macOS ou 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": "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

Instâncias do Compute Engine em execução

O exemplo a seguir mostra como pesquisar instâncias do Compute Engine que estão em execução no projeto 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

Método HTTP e URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources

Solicitar corpo JSON:

{
  "assetTypes": "compute.googleapis.com/Instance",
  "pageSize": 1,
  "query": "state=RUNNING",
  "readMask": "name,assetType,location,versionedResources"
}

Exemplos de comando

curl (Linux, macOS ou 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)

$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

Políticas de negação do IAM

O exemplo a seguir mostra como pesquisar políticas de negação do IAM no projeto my-project.

gcloud

gcloud asset search-all-resources \
    --scope=projects/my-project \
    --asset-types=iam.googleapis.com/PolicyV2 \
    --query="name:denypolicies"

REST

Método HTTP e URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources

Solicitar corpo JSON:

{
  "assetTypes": "iam.googleapis.com/PolicyV2",
  "pageSize": 1,
  "query": "name:denypolicies"
}

Exemplos de comando

curl (Linux, macOS ou 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": "iam.googleapis.com/PolicyV2",
            "pageSize": 1,
            "query": "name:denypolicies"
          }' \
     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": "iam.googleapis.com/PolicyV2",
  "pageSize": 1,
  "query": "name:denypolicies"
}
"@

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

Para pesquisar instâncias do Compute Engine que não estão em execução, substitua state=RUNNING por NOT state:running.

Recursos relacionados do Google Cloud

As consultas de relacionamento exigem acesso ao nível Premium ou Enterprise do Security Command Center ou ao Gemini Cloud Assist.

O exemplo a seguir mostra como pesquisar recursos relacionados no projeto my-project para tipos de relacionamento com suporte. Por exemplo, pesquise todas as instâncias do Compute Engine que fazem parte de grupos de instâncias que têm instance-group nos nomes de recursos completos.

gcloud

gcloud asset search-all-resources \
    --scope=projects/my-project \
    --query="relationships:instance-group" \
    --format="table(name, assetType, relationships)"

REST

Método HTTP e URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources

Solicitar corpo JSON:

{
  "pageSize": 1,
  "query": "relationships:instance-group",
  "readMask": "name,assetType,relationships"
}

Exemplos de comando

curl (Linux, macOS ou 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

Você também pode especificar o tipo de relação que quer pesquisar. Por exemplo, para pesquisar o tipo de relacionamento INSTANCE_TO_INSTANCEGROUP, use a consulta relationships.INSTANCE_TO_INSTANCEGROUP. Para pesquisar esse tipo de relacionamento com um nome de recurso completo que contenha instance-group, use a consulta relationships.INSTANCE_TO_INSTANCEGROUP:instance-group.