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 stai eseguendo i comandi di 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, consulta Autorizzazioni.

Creare una query

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

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

Non è possibile eseguire ricerche in tutte le risorse. Consulta la sezione Tipi di risorse per conoscere i nomi delle risorse e 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 Inventario asset nella console Google Cloud.

    Vai ad Asset Inventory

  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 alla query i campi disponibili per la ricerca.

Dopo aver eseguito una ricerca, le risorse corrispondenti alla query vengono elencate nella tabella Risultati. Fai doppio clic sulla query per modificarla o 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 è ID del progetto che contiene le risorse che vuoi cercare.
    • projects/PROJECT_NUMBER, dove PROJECT_NUMBER è il numero del progetto che contiene gli asset che vuoi cercare.

      Come trovare il numero di un progetto Google Cloud

      Console Google Cloud

      Per trovare il numero di un progetto Google Cloud:

      1. Vai alla pagina Ti diamo il 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 progetto. Il nome, il numero e l'ID progetto vengono visualizzati vicino all'intestazione Ti diamo il 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 il numero di un progetto Google Cloud con il seguente comando:

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

      Come trovare l'ID di una cartella Google Cloud

      Console Google Cloud

      Per trovare l'ID di una cartella Google Cloud:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      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 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 seguente comando 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'organizzazione Google Cloud

      Console Google Cloud

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

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      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 se è vuoto, vengono cercate tutte le risorse 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 disponibili per la ricerca. 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. Se --asset-types non è specificato, vengono restituiti tutti i tipi di asset.
  • ORDER_BY: facoltativo. Un elenco di campi separati da virgole che specifica 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 sapere quali campi possono essere ordinati.
  • READ_MASK: facoltativo. Un elenco di campi separati da virgole che specifica quali campi devono essere restituiti nei risultati. Consulta la sezione relativa ai campi restituiti per impostazione predefinita e ad altre condizioni da tenere presenti quando specifichi una maschera di lettura.

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

Consulta il riferimento all'interfaccia a riga di comando gcloud per tutte le opzioni.

Esempio

Esegui il seguente comando per ottenere un elenco di tutte le istanze Compute Engine nel progetto my-project con la parola instance seguita da 1 nel nome completo della risorsa. 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"

Risposta di esempio

---
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 è ID del progetto che contiene le risorse che vuoi cercare.
    • projects/PROJECT_NUMBER, dove PROJECT_NUMBER è il numero del progetto che contiene gli asset che vuoi cercare.

      Come trovare il numero di un progetto Google Cloud

      Console Google Cloud

      Per trovare il numero di un progetto Google Cloud:

      1. Vai alla pagina Ti diamo il 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 progetto. Il nome, il numero e l'ID progetto vengono visualizzati vicino all'intestazione Ti diamo il 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 il numero di un progetto Google Cloud con il seguente comando:

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

      Come trovare l'ID di una cartella Google Cloud

      Console Google Cloud

      Per trovare l'ID di una cartella Google Cloud:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      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 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 seguente comando 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'organizzazione Google Cloud

      Console Google Cloud

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

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      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 se è vuoto, vengono cercate tutte le risorse 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 disponibili per la ricerca. 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. Se assetTypes non è specificato, vengono restituiti tutti i tipi di asset.
  • ORDER_BY: facoltativo. Un elenco di campi separati da virgole che specifica 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 sapere quali campi possono essere ordinati.
  • PAGE_SIZE: facoltativo. Il numero di risultati da restituire per pagina. Il numero 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 pageToken.
  • READ_MASK: facoltativo. Un elenco di campi separati da virgole che specifica quali campi devono essere restituiti nei risultati. Consulta la sezione relativa ai campi restituiti per impostazione predefinita e ad altre condizioni da tenere presenti quando specifichi una maschera di lettura.

Per tutte le opzioni, consulta la sezione Documentazione di riferimento REST.

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 completo della risorsa. 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

Risposta di esempio

{
  "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 a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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

I seguenti esempi di codice mostrano query di ricerca specifiche sia per gcloud sia per REST per aiutarti a creare le tue ricerche.

Tutte le risorse di 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

L'esempio seguente 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 con 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 che hanno tag direttamente collegati con un TagKey.namespacedName contenente env.

Per eseguire ricerche in base a TagKey efficaci, 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

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

Per eseguire invece una 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'ora specifica

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 di date e ora, consulta Confronto numerico e di 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 progettomy-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 criteri di rifiuto 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 non in esecuzione, sostituisci state=RUNNING con NOT state:running.

Risorse Google Cloud correlate

Le query sulle relazioni sono disponibili solo per gli abbonati al livello Security Command Center Premium ed Enterprise.

L'esempio seguente mostra come cercare le risorse correlate nel progetto my-project per i tipi di relazioni supportati. Ad esempio, cerca tutte le istanze Compute Engine che fanno parte di gruppi di istanze che contengono instance-group nel nome completo della risorsa.

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 da 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 risorsa completo che contiene instance-group, utilizza la query relationships.INSTANCE_TO_INSTANCEGROUP:instance-group.