Puoi eseguire query sulle risorse nel tuo progetto, nella tua cartella o nella tua organizzazione utilizzando un dialetto compatibile con BigQuery SQL.
Prima di iniziare
- Abilita l'API Cloud Asset Inventory nel progetto da cui esegui i comandi Cloud Asset Inventory. 
- 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. 
Limitazioni
- I nomi dei tipi di asset hanno - .e- /sostituiti con- _. Ad esempio,- compute.googleapis.com/Instancediventa- compute_googleapis_com_Instance.
- La richiesta deve essere una query - SELECT.
- SQL precedente di BigQuery non è supportato. 
- I risultati delle query più grandi di 10 GB non sono supportati. 
- I risultati della query superiori a 10 MB o 1000 righe vengono sempre paginati. 
- L'elaborazione delle query deve richiedere meno di 6 ore. 
- I risultati della query possono essere esportati solo in un set di dati BigQuery nella multi-region - US.
Tabelle su cui puoi eseguire query
Puoi eseguire query sulle seguenti tabelle:
- Per i tipi di contenuti - RESOURCE, i nomi delle tabelle nel set di dati corrispondono al nome del tipo di asset, se esiste. Ad esempio, la tabella- compute_googleapis_com_Instancecontiene i metadati delle istanze di Compute Engine.
- Per i tipi di contenuti non - RESOURCE, i nomi delle tabelle nel set di dati corrispondono ai nomi dei tipi di contenuti RPC/REST. Ad esempio:- ACCESS_POLICY.
- Per eseguire query sui metadati standard delle risorse in tutti i tipi di risorse, utilizza il nome della tabella - STANDARD_METADATA. Sono inclusi tutti i campi, ad eccezione di- resource.DATA, che è specifico per ogni tipo di risorsa.
Eseguire query sui metadati degli asset
Console
Per eseguire query sui metadati delle risorse per il tuo progetto, la tua cartella o la tua organizzazione, completa i seguenti passaggi:
- 
        Nella console Google Cloud , vai alla scheda Query sugli asset nella pagina Inventario asset. Se la scheda Query sugli asset non viene visualizzata, devi accedere al livello Security Command Center Premium o Enterprise, o Gemini Cloud Assist. 
- Passa al progetto, alla cartella o all'organizzazione per cui vuoi eseguire la query.
- Fai clic sulla scheda Query asset.
- 
        Per eseguire query sui metadati delle risorse, utilizza una query di esempio o creane una personalizzata: - Per utilizzare un esempio, fai clic su una voce nella scheda Libreria di query per visualizzare l'anteprima della query. Fai clic su Applica per copiare il campione nella casella Modifica query, quindi modifica la query o fai clic su Esegui per eseguirla.
- Per creare una query personalizzata, inserisci il testo della query direttamente nella casella Modifica query, quindi fai clic su Esegui per eseguirla. Per aiutarti a scrivere la tua query, puoi fare clic su una tabella nel riquadro Seleziona tabella per visualizzarne l'anteprima dello schema e dei contenuti. Consulta Sintassi delle query per scoprire come creare una query.
 I metadati dell'asset corrispondenti alla query vengono visualizzati nella scheda Risultato query. 
- 
        (Facoltativo) Per scaricare i set di risultati delle query in formato CSV, fai clic su Esporta. La dimensione massima del file CSV è di 2 MB. Se la richiesta di download non va a buon fine perché le dimensioni del file superano questo limite, viene visualizzato un messaggio con le istruzioni per esportare i risultati completi. 
gcloud
gcloud asset query \ --SCOPE \ --statement="SQL_SELECT_QUERY" \ --timeout="TIMEOUTs"
Fornisci i seguenti valori:
- 
    SCOPE: utilizza uno dei seguenti valori:- 
        project=PROJECT_ID, dovePROJECT_IDè l'ID del progetto che contiene gli asset che vuoi interrogare.
- 
        folder=FOLDER_ID, doveFOLDER_IDè l'ID della cartella che contiene gli asset che vuoi interrogare.Come trovare l'ID di una Google Cloud cartella ConsoleGoogle CloudPer trovare l'ID di una Google Cloud cartella: - 
            Vai alla Google Cloud console. 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.
 Interfaccia a riga di comando gcloudPuoi 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 --formatper 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 
- 
            
- 
        organization=ORGANIZATION_ID, doveORGANIZATION_IDè l'ID dell'organizzazione che contiene gli asset che vuoi interrogare.Come trovare l'ID di un' Google Cloud organizzazione ConsoleGoogle CloudPer trovare l'ID di un' Google Cloud organizzazione: - 
            Vai alla Google Cloud console. 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
 Interfaccia a riga di comando gcloudPuoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando: gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))" 
- 
            
 
- 
        
- 
    SQL_SELECT_QUERY: Una querySELECTSQL.
- 
    TIMEOUT: (Facoltativo). Il tempo massimo, in secondi, che un client deve attendere il completamento della query prima di continuare. Utilizza i timeout per eseguire la query in modo asincrono e recuperare i risultati in un secondo momento con i riferimenti ai job.
Per tutte le opzioni, consulta il riferimento gcloud CLI.
Esempio
Esegui il comando seguente per ottenere i nomi e i tipi di asset delle prime due istanze Compute Engine
  nel progetto my-project.
gcloud asset query \ --project=my-project \ --statement=" SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2"
Risposta al job completata
Il seguente esempio mostra una risposta alla query di esempio precedente. La
      risposta contiene un riferimento al job e indica se il job è
      terminato (done: true). Se il job è terminato, l'oggetto
      queryResult viene compilato con i dati appropriati e i risultati vengono elencati
      successivamente.
done: true jobReference: 0000000000000000000000000000000000000000000000000000000000000000 queryResult: nextPageToken: '' totalRows: '2' name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1 assetType: compute.googleapis.com/Instance name: //compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/instance-2 assetType: compute.googleapis.com/Instance
Risposta a una prestazione non completata
Se imposti un timeout nella richiesta, la query viene eseguita
      in modo asincrono e ti viene inviata una risposta che indica che il job è
      incompleto (done: false). Questo tipo di risposte contiene un
      riferimento al job e un oggetto queryResult non compilato:
done: false jobReference: 0000000000000000000000000000000000000000000000000000000000000000 queryResult: nextPageToken: '' totalRows: '0'
Puoi utilizzare il valore jobReference per
      recuperare i risultati della query in un secondo momento, dopo che il
      job è stato completato e i dati sono disponibili.
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:queryAssets
Corpo JSON della richiesta:
{ "statement": "SQL_SELECT_QUERY", "timeout": "TIMEOUTs", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN" }
Fornisci i seguenti valori:
- 
    SCOPE_PATH: utilizza uno dei seguenti valori:I valori consentiti sono: - 
        projects/PROJECT_ID, dovePROJECT_IDè l'ID del progetto che contiene gli asset che vuoi interrogare.
- 
        projects/PROJECT_NUMBER, dovePROJECT_NUMBERè il numero del progetto che contiene gli asset che vuoi interrogare.Come trovare un Google Cloud numero di progetto ConsoleGoogle CloudPer trovare un numero di progetto, completa i seguenti passaggi: Google Cloud - 
            Vai alla pagina Benvenuto nella console Google Cloud . 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- 
            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 gcloudPuoi recuperare un Google Cloud numero di progetto con il seguente comando: gcloud projects describe PROJECT_ID --format="value(projectNumber)" 
- 
            
- 
        folders/FOLDER_ID, doveFOLDER_IDè l'ID della cartella che contiene gli asset che vuoi interrogare.Come trovare l'ID di una Google Cloud cartella ConsoleGoogle CloudPer trovare l'ID di una Google Cloud cartella: - 
            Vai alla Google Cloud console. 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.
 Interfaccia a riga di comando gcloudPuoi 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 --formatper 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, doveORGANIZATION_IDè l'ID dell'organizzazione che contiene gli asset che vuoi interrogare.Come trovare l'ID di un' Google Cloud organizzazione ConsoleGoogle CloudPer trovare l'ID di un' Google Cloud organizzazione: - 
            Vai alla Google Cloud console. 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
 Interfaccia a riga di comando gcloudPuoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando: gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))" 
- 
            
 
- 
        
- 
    SQL_SELECT_QUERY: Una querySELECTSQL.
- 
    TIMEOUT: (Facoltativo). Il tempo massimo, in secondi, che un client deve attendere il completamento della query prima di continuare. Utilizza i timeout per eseguire la query in modo asincrono e recuperare i risultati in un secondo momento con i riferimenti ai job.
- 
    PAGE_SIZE: (Facoltativo). Il numero di risultati da restituire per pagina. Il massimo è 500. Se il valore è impostato su0o su un valore negativo, viene selezionato un valore predefinito appropriato. Viene restituito unnextPageTokenper recuperare i risultati successivi.
- 
    PAGE_TOKEN: (Facoltativo). Le risposte alle richieste lunghe sono separate su più pagine. SepageTokennon è specificato, viene restituita la prima pagina. Le pagine successive possono essere chiamate utilizzandonextPageTokendella risposta precedente come valore dipageToken.
Consulta il riferimento REST per tutte le opzioni.
Esempi di comandi
Esegui uno dei seguenti comandi per ottenere i nomi e i tipi di asset delle prime due istanze Compute Engine nel progetto my-project.
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "statement": " SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:queryAssets
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } $body = @" { "statement": " SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:queryAssets" | Select-Object -Expand Content
Risposta al job completata
Il seguente esempio mostra una risposta alla query di esempio precedente. La
      risposta contiene un riferimento al job e indica se il job è
      terminato ("done": true). Se il job è terminato, l'oggetto
      queryResult viene compilato con i dati
      appropriati.
I risultati della query sono suddivisi in rows, un array che contiene
      i metadati delle risorse, e schema, un oggetto che descrive lo
      schema per ogni risorsa nell'array rows. Questa operazione viene eseguita per
      ridurre al minimo la duplicazione di nomi e tipi di campi nelle risposte di grandi dimensioni.
Analogamente, f e v vengono utilizzati nell'array rows anziché fields e value per mantenere le risposte il più piccole possibile.
{ "jobReference": "0000000000000000000000000000000000000000000000000000000000000000", "done": true, "queryResult": { "rows": [ { "f": [ { "v": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1" }, { "v": "compute.googleapis.com/Instance" } ] }, { "f": [ { "v": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-2" }, { "v": "compute.googleapis.com/Instance" } ] } ], "schema": { "fields": [ { "field": "name", "type": "STRING", "mode": "NULLABLE", "fields": [] }, { "field": "assetType", "type": "STRING", "mode": "NULLABLE", "fields": [] } ] }, "nextPageToken": "", "totalRows": "1" } }
Risposta a una prestazione non completata
Se imposti un timeout nella richiesta, la query viene eseguita
      in modo asincrono e ti viene inviata una risposta che indica che il job è
      incompleto ("done": false). Questo tipo di risposte contiene
      un riferimento al job e un oggetto queryResult non compilato:
{ "jobReference": "0000000000000000000000000000000000000000000000000000000000000000", "done": false, "queryResult": { "rows": [], "schema": { "fields": [] }, "nextPageToken": "", "totalRows": "0" } }
Puoi utilizzare il valore jobReference per
      recuperare i risultati della query in un secondo momento, dopo che il
      job è stato completato e i dati sono disponibili.
Recuperare i risultati della query in un secondo momento
Per recuperare in un secondo momento una richiesta che ha richiesto tempo per essere completata, effettua una delle seguenti richieste.
gcloud
gcloud asset query \ --SCOPE \ --job-reference="JOB_REFERENCE"
Fornisci i seguenti valori:
- 
    SCOPE: utilizza uno dei seguenti valori:- 
        project=PROJECT_ID, dovePROJECT_IDè l'ID del progetto che contiene gli asset che vuoi interrogare.
- 
        folder=FOLDER_ID, doveFOLDER_IDè l'ID della cartella che contiene gli asset che vuoi interrogare.Come trovare l'ID di una Google Cloud cartella ConsoleGoogle CloudPer trovare l'ID di una Google Cloud cartella: - 
            Vai alla Google Cloud console. 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.
 Interfaccia a riga di comando gcloudPuoi 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 --formatper 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 
- 
            
- 
        organization=ORGANIZATION_ID, doveORGANIZATION_IDè l'ID dell'organizzazione che contiene gli asset che vuoi interrogare.Come trovare l'ID di un' Google Cloud organizzazione ConsoleGoogle CloudPer trovare l'ID di un' Google Cloud organizzazione: - 
            Vai alla Google Cloud console. 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
 Interfaccia a riga di comando gcloudPuoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando: gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))" 
- 
            
 
- 
        
- 
    JOB_REFERENCE: Il valore di riferimento del job restituito in una risposta precedente.
Esempio
Esegui questo comando per ottenere i risultati di una query eseguita in precedenza nel progetto my-project.
gcloud asset query \ --project=my-project \ --job-reference="0000000000000000000000000000000000000000000000000000000000000000"
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:queryAssets
Corpo JSON della richiesta:
{ "jobReference": "JOB_REFERENCE", "pageToken": "PAGE_TOKEN" }
Fornisci i seguenti valori:
- 
    SCOPE_PATH: utilizza uno dei seguenti valori:I valori consentiti sono: - 
        projects/PROJECT_ID, dovePROJECT_IDè l'ID del progetto che contiene gli asset che vuoi interrogare.
- 
        projects/PROJECT_NUMBER, dovePROJECT_NUMBERè il numero del progetto che contiene gli asset che vuoi interrogare.Come trovare un Google Cloud numero di progetto ConsoleGoogle CloudPer trovare un numero di progetto, completa i seguenti passaggi: Google Cloud - 
            Vai alla pagina Benvenuto nella console Google Cloud . 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- 
            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 gcloudPuoi recuperare un Google Cloud numero di progetto con il seguente comando: gcloud projects describe PROJECT_ID --format="value(projectNumber)" 
- 
            
- 
        folders/FOLDER_ID, doveFOLDER_IDè l'ID della cartella che contiene gli asset che vuoi interrogare.Come trovare l'ID di una Google Cloud cartella ConsoleGoogle CloudPer trovare l'ID di una Google Cloud cartella: - 
            Vai alla Google Cloud console. 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.
 Interfaccia a riga di comando gcloudPuoi 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 --formatper 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, doveORGANIZATION_IDè l'ID dell'organizzazione che contiene gli asset che vuoi interrogare.Come trovare l'ID di un' Google Cloud organizzazione ConsoleGoogle CloudPer trovare l'ID di un' Google Cloud organizzazione: - 
            Vai alla Google Cloud console. 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
 Interfaccia a riga di comando gcloudPuoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando: gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))" 
- 
            
 
- 
        
- 
    JOB_REFERENCE: Il valore di riferimento del job restituito in una risposta precedente.
- 
    PAGE_TOKEN: (Facoltativo). Le risposte alle richieste lunghe sono separate su più pagine. SepageTokennon è specificato, viene restituita la prima pagina. Le pagine successive possono essere chiamate utilizzandonextPageTokendella risposta precedente come valore dipageToken.
Esempi di comandi
Esegui uno dei seguenti comandi per ottenere i risultati di una query eseguita in precedenza.
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "jobReference": "0000000000000000000000000000000000000000000000000000000000000000" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:queryAssets
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } $body = @" { "jobReference": "0000000000000000000000000000000000000000000000000000000000000000" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:queryAssets" | Select-Object -Expand Content
Esportare i risultati della query in BigQuery
I risultati della query vengono restituiti come risposte dell'API Query Assets. Per esportare i risultati nella tua tabella BigQuery, specifica una destinazione BigQuery nella richiesta. Se non ne hai già uno, devi creare un set di dati BigQuery prima di effettuare queste richieste.
gcloud
gcloud asset query \ --SCOPE \ --billing-project=BILLING_PROJECT_ID \ --statement="SQL_SELECT_QUERY" \ --bigquery-table=projects/BIGQUERY_PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \ --write-disposition="WRITE_METHOD"
Fornisci i seguenti valori:
- 
    SCOPE: utilizza uno dei seguenti valori:- 
        project=PROJECT_ID, dovePROJECT_IDè l'ID del progetto che contiene i metadati della risorsa che vuoi esportare con una query SQL.
- 
        folder=FOLDER_ID, doveFOLDER_IDè l'ID della cartella che contiene i metadati dell'asset che vuoi esportare con una query SQL.Come trovare l'ID di una Google Cloud cartella ConsoleGoogle CloudPer trovare l'ID di una Google Cloud cartella: - 
            Vai alla Google Cloud console. 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.
 Interfaccia a riga di comando gcloudPuoi 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 --formatper 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 
- 
            
- 
        organization=ORGANIZATION_ID, doveORGANIZATION_IDè l'ID dell'organizzazione che contiene i metadati dell'asset che vuoi esportare con una query SQL.Come trovare l'ID di un' Google Cloud organizzazione ConsoleGoogle CloudPer trovare l'ID di un' Google Cloud organizzazione: - 
            Vai alla Google Cloud console. 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
 Interfaccia a riga di comando gcloudPuoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando: gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))" 
- 
            
 
- 
        
- 
    SQL_SELECT_QUERY: Una querySELECTSQL.
- 
    BIGQUERY_PROJECT_ID: l'ID del progetto in cui si trova la tabella BigQuery che vuoi esportare.
- 
    DATASET_ID: L'ID del set di dati BigQuery.
- 
    TABLE_NAME: La tabella BigQuery in cui esporti i metadati. Se non esiste, viene creato.
- 
    WRITE_METHOD: specifica il comportamento se la tabella o la partizione di destinazione BigQuery esiste già. Sono supportati i seguenti valori:- 
        write-empty: predefinito. Se la tabella esistente contiene dati, nel risultato del job viene restituito un errore di duplicazione.
- 
        write-append: aggiunge dati alla tabella o all'ultima partizione.
- 
        write-truncate: sovrascrive l'intera tabella o tutti i dati delle partizioni.
 
- 
        
Esempio
Esegui il seguente comando per ottenere i nomi e i tipi di asset delle prime due istanze Compute Engine nel progetto my-project ed esporta i risultati nella tabella BigQuery my-table nel progetto my-project, sovrascrivendo l'intera tabella se esiste già.
gcloud asset query \ --project=my-project \ --statement=" SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2" \ --bigquery-table=projects/my-project/datasets/my-dataset/tables/my-table \ --write-disposition="write-truncate"
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:queryAssets
Intestazioni:
X-Goog-User-Project: BILLING_PROJECT_ID
Corpo JSON della richiesta:
{ "statement": "SQL_SELECT_QUERY", "outputConfig": { "bigqueryDestination": { "dataset": "projects/BIGQUERY_PROJECT_ID/datasets/DATASET_ID", "table": "TABLE_NAME", "writeDisposition": "WRITE_METHOD" } }, "pageSize": "PAGE_SIZE" }
Fornisci i seguenti valori:
- 
    SCOPE_PATH: utilizza uno dei seguenti valori:I valori consentiti sono: - 
        projects/PROJECT_ID, dovePROJECT_IDè l'ID del progetto che contiene i metadati della risorsa che vuoi esportare con una query SQL.
- 
        projects/PROJECT_NUMBER, dovePROJECT_NUMBERè il numero del progetto che contiene i metadati dell'asset che vuoi esportare con una query SQL.Come trovare un Google Cloud numero di progetto ConsoleGoogle CloudPer trovare un numero di progetto, completa i seguenti passaggi: Google Cloud - 
            Vai alla pagina Benvenuto nella console Google Cloud . 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- 
            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 gcloudPuoi recuperare un Google Cloud numero di progetto con il seguente comando: gcloud projects describe PROJECT_ID --format="value(projectNumber)" 
- 
            
- 
        folders/FOLDER_ID, doveFOLDER_IDè l'ID della cartella che contiene i metadati dell'asset che vuoi esportare con una query SQL.Come trovare l'ID di una Google Cloud cartella ConsoleGoogle CloudPer trovare l'ID di una Google Cloud cartella: - 
            Vai alla Google Cloud console. 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.
 Interfaccia a riga di comando gcloudPuoi 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 --formatper 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, doveORGANIZATION_IDè l'ID dell'organizzazione che contiene i metadati dell'asset che vuoi esportare con una query SQL.Come trovare l'ID di un' Google Cloud organizzazione ConsoleGoogle CloudPer trovare l'ID di un' Google Cloud organizzazione: - 
            Vai alla Google Cloud console. 
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
 Interfaccia a riga di comando gcloudPuoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando: gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))" 
- 
            
 
- 
        
- 
    BILLING_PROJECT_ID: l'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i tuoi set di dati e tabelle BigQuery. Scopri di più sull'impostazione del progetto di fatturazione.
- 
    SQL_SELECT_QUERY: Una querySELECTSQL.
- 
    BIGQUERY_PROJECT_ID: l'ID del progetto in cui si trova la tabella BigQuery che vuoi esportare.
- 
    DATASET_ID: L'ID del set di dati BigQuery.
- 
    TABLE_NAME: La tabella BigQuery in cui esporti i metadati. Se non esiste, viene creato.
- 
    WRITE_METHOD: specifica il comportamento se la tabella o la partizione di destinazione BigQuery esiste già. Sono supportati i seguenti valori:- 
        WRITE_EMPTY: predefinito. Se la tabella esistente contiene dati, nel risultato del job viene restituito un errore di duplicazione.
- 
        WRITE_APPEND: aggiunge dati alla tabella o all'ultima partizione.
- 
        WRITE_TRUNCATE: sovrascrive l'intera tabella o tutti i dati delle partizioni.
 
- 
        
- 
    PAGE_SIZE: (Facoltativo). Il numero di risultati da restituire per pagina. Il massimo è 500. Se il valore è impostato su0o su un valore negativo, viene selezionato un valore predefinito appropriato. Viene restituito unnextPageTokenper recuperare i risultati successivi.
Esempi di comandi
Esegui uno dei seguenti comandi per ottenere i nomi e i tipi di asset delle prime due istanze Compute Engine nel progetto my-project ed esporta i risultati nella tabella BigQuery my-table nel progetto my-project, sovrascrivendo l'intera tabella se esiste già.
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-Goog-User-Project: BILLING_PROJECT_ID" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "statement": " SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2", "outputConfig": { "bigqueryDestination": { "dataset": "projects/my-project/datasets/my-dataset", "table": "my-table", "writeDisposition": "WRITE_TRUNCATE" } } }' \ https://cloudasset.googleapis.com/v1/projects/my-project:queryAssets
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-Goog-User-Project" = "BILLING_PROJECT_ID"; "Authorization" = "Bearer $cred" } $body = @" { "statement": " SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2", "outputConfig": { "bigqueryDestination": { "dataset": "projects/my-project/datasets/my-dataset", "table": "my-table", "writeDisposition": "WRITE_TRUNCATE" } } } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:queryAssets" | Select-Object -Expand Content
Altri esempi di query SQL
Gli esempi di codice seguenti mostrano query SQL specifiche che puoi utilizzare per cercare asset, per aiutarti a creare le tue query.
Istanze VM di Compute Engine in una regione specifica
Inoltre, restituisci il name e la data di creazione.
SELECT
  name,
  resource.DATA.creationTimestamp
FROM
  compute_googleapis_com_Instance
WHERE
  resource.location LIKE '%asia%'
Dettagli di un'app in esecuzione in un pod Kubernetes
Restituisce lo spazio dei nomi, la versione e il timestamp dell'app ingress-nginx. Scopri di più sulle funzioni JSON utilizzate in BigQuery.
SELECT
  name AS pod_name,
  JSON_EXTRACT_SCALAR(resource.data.metadata, '$.namespace') AS namespace,
  resource.data.metadata.creationTimestamp AS creation_time,
  JSON_EXTRACT_SCALAR(resource.data.metadata.labels, "$['app.kubernetes.io/name']") AS app_label,
  resource.data.metadata.labels['app.kubernetes.io/version'] AS version
FROM
  k8s_io_Pod
WHERE
  JSON_EXTRACT_SCALAR(resource.data.metadata, '$.namespace') = "default"
  AND JSON_EXTRACT_SCALAR(resource.data.metadata.labels, "$['app.kubernetes.io/name']") = "ingress-nginx"
Quanti set di dati BigQuery sono presenti in ogni progetto
  SELECT
    ancestor AS project,
    COUNT(*)
  FROM
    bigquery_googleapis_com_Dataset
  CROSS JOIN
    UNNEST (ancestors) AS ancestor
  WHERE
    ancestor LIKE '%project%'
  GROUP BY
    ancestor
  ORDER BY
    2 DESC
Quante istanze VM di Compute Engine sono presenti in ogni regione
SELECT
  resource.location,
  COUNT(*)
FROM
  compute_googleapis_com_Instance
GROUP BY
  resource.location
Nome e assetType di tutte le risorse in una regione
SELECT
  name,
  assetType
FROM
  STANDARD_METADATA
WHERE
  resource.location LIKE '%asia%'
Bucket Cloud Storage disponibili pubblicamente
Inoltre, restituisci il loro name.
SELECT
  name
FROM
  IAM_POLICY
CROSS JOIN
  UNNEST(iamPolicy.bindings) AS binding
WHERE
  ('allUsers' IN UNNEST(binding.members)
  OR 'allAuthenticatedUsers' IN UNNEST(binding.members))
  AND assetType = 'storage.googleapis.com/Bucket'
Subnet senza istanze VM collegate
SELECT
  subnetwork_table.name
FROM
  compute_googleapis_com_Subnetwork AS subnetwork_table
LEFT JOIN (
  SELECT
    interface.subnetwork AS subnetwork
  FROM
    compute_googleapis_com_Instance
  CROSS JOIN
    UNNEST(resource.DATA.networkInterfaces) AS interface) AS instance_table
ON
  SUBSTR(subnetwork_table.name, 25) = SUBSTR(instance_table.subnetwork,38)
WHERE
  instance_table.subnetwork IS NULL
  AND NOT subnetwork_table.name LIKE '%default%'