Cerca risorse

Puoi cercare risorse in un progetto, una cartella o un'organizzazione e filtrare i risultati restituiti utilizzando una query.

Prima di iniziare

  1. Abilita l'API Cloud Asset Inventory nel progetto da cui esegui i comandi Cloud Asset Inventory.

    Abilita l'API Cloud Asset Inventory

  2. Assicurati che il tuo account disponga del ruolo corretto per chiamare l'API Cloud Asset Inventory. Per le singole autorizzazioni per ogni tipo di chiamata, vedi Autorizzazioni.

Costruire una query

Prima di creare una query, può essere utile iniziare con una richiesta di ricerca che non specifichi una query. Utilizza i campi e i valori della risposta completa per creare una query utilizzando la sintassi della query di ricerca e perfezionala finché non vengono restituiti i risultati che ti interessano.

I campi che possono essere utilizzati in una query sono descritti in dettaglio nella documentazione di riferimento searchAllResources.

Non è possibile eseguire ricerche in tutte le risorse. Consulta la sezione Tipi di risorse per i nomi delle risorse e per verificare se sono disponibili per le API di ricerca.

Cercare le risorse

Console

Per cercare i metadati delle risorse, completa i seguenti passaggi.

  1. Vai alla pagina Asset Inventory nella console Google Cloud .

    Vai all'inventario degli asset

  2. Passa al progetto, alla cartella o all'organizzazione in cui vuoi eseguire la ricerca.
  3. Fai clic sulla scheda Risorsa.
  4. Per cercare risorse, inserisci una query nel campo Filtro. Consulta Sintassi delle query di ricerca per scoprire come scrivere una query di ricerca.

    Per semplificare la creazione delle query, puoi fare clic sul campo Filtro per visualizzare e aggiungere i campi disponibili per la ricerca alla tua query.

Dopo aver eseguito una ricerca, le risorse corrispondenti alla query vengono elencate nella tabella Risultati. Fai doppio clic sulla query per modificarla oppure utilizza il riquadro Filtra risultati per limitare i risultati di ricerca in base a criteri specifici.

Per visualizzare la query come comando Google Cloud CLI, fai clic su Visualizza query.

Per esportare i risultati, fai clic su Scarica 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"

Fornisci i seguenti valori:

  • SCOPE_PATH: utilizza uno dei seguenti valori:

    I valori consentiti sono:

    • projects/PROJECT_ID, dove PROJECT_ID è l'ID del progetto che contiene gli asset che vuoi cercare.
    • projects/PROJECT_NUMBER, dove PROJECT_NUMBER è il numero del progetto che contiene gli asset che vuoi cercare.

      Come trovare un Google Cloud numero di progetto

      ConsoleGoogle Cloud

      Per trovare un numero di progetto, completa i seguenti passaggi: Google Cloud

      1. Vai alla pagina Benvenuto nella console Google Cloud .

        Vai a Benvenuto

      2. Fai clic sulla casella di elenco selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco, quindi cerca il nome del tuo progetto. Il nome, il numero e l'ID progetto vengono visualizzati vicino all'intestazione Benvenuto.

        Vengono visualizzate fino a 4000 risorse. Se non vedi il progetto che stai cercando, vai alla pagina Gestisci risorse e filtra l'elenco utilizzando il nome del progetto.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un Google Cloud numero di progetto con il seguente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    • folders/FOLDER_ID, dove FOLDER_ID è l'ID della cartella che contiene gli asset che vuoi cercare.

      Come trovare l'ID di una Google Cloud cartella

      ConsoleGoogle Cloud

      Per trovare l'ID di una Google Cloud cartella:

      1. Vai alla Google Cloud console.

        Vai alla Google Cloud console

      2. Fai clic sulla casella di elenco selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco.
      4. Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.

      Interfaccia a riga di comando gcloud

      Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente 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)"

      dove TOP_LEVEL_FOLDER_NAME è una corrispondenza parziale o completa della stringa per il nome della cartella. Rimuovi il flag --format per visualizzare ulteriori informazioni sulle cartelle trovate.

      Il comando precedente non restituisce gli ID delle sottocartelle all'interno delle cartelle. Per farlo, esegui il comando seguente utilizzando l'ID di una cartella di primo livello:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organizations/ORGANIZATION_ID, dove ORGANIZATION_ID è l'ID dell'organizzazione che contiene gli asset che vuoi cercare.

      Come trovare l'ID di un' Google Cloud organizzazione

      ConsoleGoogle Cloud

      Per trovare l'ID di un' Google Cloud organizzazione:

      1. Vai alla Google Cloud console.

        Vai alla Google Cloud console

      2. Fai clic sulla casella di elenco selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco.
      4. Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.

      Interfaccia a riga di comando gcloud

      Puoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
  • QUERY: (Facoltativo). L'espressione di query. Se non specificato o vuoto, tutte le risorse vengono cercate nell'ambito specificato. Per scoprire come scrivere una query di ricerca, consulta Sintassi delle query di ricerca.
  • ASSET_TYPE_#: (Facoltativo). Un elenco separato da virgole di tipi di asset ricercabili. Sono supportate le espressioni regolari compatibili con RE2. Se l'espressione regolare non corrisponde a nessun tipo di asset supportato, viene restituito un errore INVALID_ARGUMENT. Quando --asset-types non è specificato, vengono restituiti tutti i tipi di asset.
  • ORDER_BY: (Facoltativo). Un elenco di campi separati da virgole che specificano l'ordine di ordinamento dei risultati. L'ordine predefinito è crescente. Aggiungi DESC dopo il nome del campo per indicare l'ordine decrescente. Consulta la documentazione di riferimento per scoprire quali campi possono essere ordinati.
  • READ_MASK: (Facoltativo). Un elenco di campi separati da virgole che specificano quali campi devono essere restituiti nei risultati. Consulta la sezione per i campi restituiti per impostazione predefinita e altre condizioni da tenere presente quando specifichi una maschera di lettura.

Puoi utilizzare i flag --format e --flatten per formattare l'output di gcloud CLI.

Per tutte le opzioni, consulta il riferimento gcloud CLI.

Esempio

Esegui il comando seguente per ottenere un elenco di tutte le istanze Compute Engine nel progetto my-project con la parola instance seguita da 1 nel nome della risorsa completo. I risultati sono in ordine decrescente per nome e, a causa della maschera di lettura, vengono restituiti solo i campi name e 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"

Esempio di risposta

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

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Fornisci i seguenti valori:

  • SCOPE_PATH: utilizza uno dei seguenti valori:

    I valori consentiti sono:

    • projects/PROJECT_ID, dove PROJECT_ID è l'ID del progetto che contiene gli asset che vuoi cercare.
    • projects/PROJECT_NUMBER, dove PROJECT_NUMBER è il numero del progetto che contiene gli asset che vuoi cercare.

      Come trovare un Google Cloud numero di progetto

      ConsoleGoogle Cloud

      Per trovare un numero di progetto, completa i seguenti passaggi: Google Cloud

      1. Vai alla pagina Benvenuto nella console Google Cloud .

        Vai a Benvenuto

      2. Fai clic sulla casella di elenco selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco, quindi cerca il nome del tuo progetto. Il nome, il numero e l'ID progetto vengono visualizzati vicino all'intestazione Benvenuto.

        Vengono visualizzate fino a 4000 risorse. Se non vedi il progetto che stai cercando, vai alla pagina Gestisci risorse e filtra l'elenco utilizzando il nome del progetto.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un Google Cloud numero di progetto con il seguente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    • folders/FOLDER_ID, dove FOLDER_ID è l'ID della cartella che contiene gli asset che vuoi cercare.

      Come trovare l'ID di una Google Cloud cartella

      ConsoleGoogle Cloud

      Per trovare l'ID di una Google Cloud cartella:

      1. Vai alla Google Cloud console.

        Vai alla Google Cloud console

      2. Fai clic sulla casella di elenco selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco.
      4. Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.

      Interfaccia a riga di comando gcloud

      Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente 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)"

      dove TOP_LEVEL_FOLDER_NAME è una corrispondenza parziale o completa della stringa per il nome della cartella. Rimuovi il flag --format per visualizzare ulteriori informazioni sulle cartelle trovate.

      Il comando precedente non restituisce gli ID delle sottocartelle all'interno delle cartelle. Per farlo, esegui il comando seguente utilizzando l'ID di una cartella di primo livello:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organizations/ORGANIZATION_ID, dove ORGANIZATION_ID è l'ID dell'organizzazione che contiene gli asset che vuoi cercare.

      Come trovare l'ID di un' Google Cloud organizzazione

      ConsoleGoogle Cloud

      Per trovare l'ID di un' Google Cloud organizzazione:

      1. Vai alla Google Cloud console.

        Vai alla Google Cloud console

      2. Fai clic sulla casella di elenco selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco.
      4. Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.

      Interfaccia a riga di comando gcloud

      Puoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
  • QUERY: (Facoltativo). L'espressione di query. Se non specificato o vuoto, tutte le risorse vengono cercate nell'ambito specificato. Per scoprire come scrivere una query di ricerca, consulta Sintassi delle query di ricerca.
  • ASSET_TYPE_#: (Facoltativo). Un array di tipi di asset ricercabili. Sono supportate le espressioni regolari compatibili con RE2. Se l'espressione regolare non corrisponde a nessun tipo di asset supportato, viene restituito un errore INVALID_ARGUMENT. Quando assetTypes non è specificato, vengono restituiti tutti i tipi di asset.
  • ORDER_BY: (Facoltativo). Un elenco di campi separati da virgole che specificano l'ordine di ordinamento dei risultati. L'ordine predefinito è crescente. Aggiungi DESC dopo il nome del campo per indicare l'ordine decrescente. Consulta la documentazione di riferimento per scoprire quali campi possono essere ordinati.
  • PAGE_SIZE: (Facoltativo). Il numero di risultati da restituire per pagina. Il massimo è 500. Se il valore è impostato su 0 o su un valore negativo, viene selezionato un valore predefinito appropriato. Viene restituito un nextPageToken per recuperare i risultati successivi.

  • PAGE_TOKEN: (Facoltativo). Le risposte alle richieste lunghe sono separate su più pagine. Se pageToken non è specificato, viene restituita la prima pagina. Le pagine successive possono essere chiamate utilizzando nextPageToken della risposta precedente come valore di pageToken.
  • READ_MASK: (Facoltativo). Un elenco di campi separati da virgole che specificano quali campi devono essere restituiti nei risultati. Consulta la sezione per i campi restituiti per impostazione predefinita e altre condizioni da tenere presente quando specifichi una maschera di lettura.

Consulta il riferimento REST per tutte le opzioni.

Esempi di comandi

Esegui uno dei seguenti comandi per ottenere un elenco di tutte le istanze Compute Engine nel progetto my-project con la parola instance seguita da 1 nel nome risorsa completo. I risultati sono in ordine decrescente per nome e vengono restituiti solo i campi name e location.

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

Esempio di risposta

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

Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.

Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


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();
    }
}

Vai

Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.

Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


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

Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.

Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

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

Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.

Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

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

Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.

Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

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

Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.

Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

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

Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.

Per autenticarti in Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

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

Altri esempi di ricerca

Gli esempi di codice riportati di seguito mostrano query di ricerca specifiche per gcloud e REST per aiutarti a creare le tue ricerche.

Tutte le risorse in un progetto

L'esempio riportato di seguito mostra come cercare tutte le risorse nel progetto 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

Metodo HTTP e URL:

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

Esempi di comandi

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

Istanze Compute Engine per descrizione

Il seguente esempio mostra come cercare le istanze Compute Engine nel progetto my-project con il nome esatto 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

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Esempi di comandi

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

Per cercare istanze che contengono instance-prod nel nome (ad esempio instance-prod-1 e instance-prod-2) anziché una corrispondenza esatta, sostituisci =instance-prod con :instance-prod.

Istanze Compute Engine per etichetta

L'esempio seguente mostra come cercare le istanze Compute Engine nel progetto my-project con un'etichetta denominata 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

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Esempi di comandi

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

Istanze Compute Engine per TagKey

Il seguente esempio mostra come cercare le istanze Compute Engine nel progetto my-project a cui sono collegati direttamente tag con un valore TagKey.namespacedName contenente env.

Per eseguire la ricerca in base alle TagKey effettive, sostituisci tagKeys con 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

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Esempi di comandi

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

Istanze Compute Engine per TagValue

Il seguente esempio mostra come cercare le istanze Compute Engine nel progetto my-project che hanno tag collegati direttamente in cui TagValue.namespacedName contiene prod o sea e il nome dell'istanza non contiene instance1.

Per eseguire la ricerca in base ai valori TagValues effettivi, sostituisci tagValues con 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

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Esempi di comandi

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

Istanze Compute Engine create dopo un orario specifico

L'esempio seguente mostra come cercare le istanze Compute Engine nel progetto my-project create dopo il 31 dicembre 2023.

Per ulteriori informazioni sui confronti tra date e ore, vedi Confronto numerico e dei timestamp.

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

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Esempi di comandi

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

Istanze Compute Engine situate negli Stati Uniti

L'esempio seguente mostra come cercare le istanze Compute Engine nel progetto my-project che si trovano negli Stati Uniti.

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

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Esempi di comandi

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

Istanze Compute Engine in esecuzione

L'esempio seguente mostra come cercare le istanze Compute Engine in esecuzione nel progetto 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

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Esempi di comandi

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

Criteri di negazione IAM

L'esempio seguente mostra come cercare le policy di negazione IAM nel progetto my-project.

gcloud

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

REST

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Esempi di comandi

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

Per cercare le istanze Compute Engine che non sono in esecuzione, sostituisci state=RUNNING con NOT state:running.

Risorse Google Cloud correlate

Le query sulle relazioni richiedono l'accesso al livello Premium o Enterprise di Security Command Center o a Gemini Cloud Assist.

L'esempio seguente mostra come cercare le risorse correlate nel progetto my-project per i tipi di relazione supportati. Ad esempio, cerca tutte le istanze Compute Engine che fanno parte di gruppi di istanze che hanno instance-group nei loro nomi completi delle risorse.

gcloud

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

REST

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Esempi di comandi

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

Puoi anche specificare il tipo di relazione che vuoi cercare. Ad esempio, per cercare il tipo di relazione INSTANCE_TO_INSTANCEGROUP, utilizza la query relationships.INSTANCE_TO_INSTANCEGROUP. Per cercare questo tipo di relazione con un nome completo della risorsa che contiene instance-group, utilizza la query relationships.INSTANCE_TO_INSTANCEGROUP:instance-group.