Configura le esportazioni

Questa pagina spiega come esportare le tracce utilizzando l'Cloud Trace API e Google Cloud CLI. Devi utilizzare la versione 274.0.0 o successive di Google Cloud CLI. Per informazioni su come aggiornare Google Cloud CLI, consulta gcloud components update .

Alcuni esempi in questa pagina sono stati generati utilizzando curl. Per informazioni sulla configurazione di questo strumento, consulta Utilizzo di curl.

Per un esempio che illustra l'utilizzo dei comandi dell'interfaccia a riga di comando di Google Cloud per elencare, creare, descrivere, aggiornare ed eliminare un sink, vedi Esempio end-to-end.

Terminologia

Per semplificare gli esempi in questa pagina, sono state utilizzate le variabili di ambiente.

Gli esempi di interfaccia a riga di comando di Google Cloud utilizzano le seguenti variabili di ambiente:

  • SINK_ID: il nome o l'identificatore del sink. Ad esempio, my-sink. Non è necessario fornire il comando completo a Google Cloud CLI, poiché può determinare il tuo progetto Google Cloud.
  • DESTINATION: memorizza il nome completo della destinazione. Deve essere un set di dati BigQuery. Ad esempio, una destinazione valida è:

    bigquery.googleapis.com/projects/DESTINATION_PROJECT_NUMBER/datasets/DATASET_ID
    

    dove DESTINATION_PROJECT_NUMBER è il numero di progetto Google Cloud della destinazione e DATASET_ID è l'identificatore del set di dati BigQuery.

Gli esempi di curl utilizzano le seguenti variabili di ambiente:

  • ACCESS_TOKEN: memorizza il token di autorizzazione. Per ulteriori informazioni, consulta la sezione Utilizzare curl.
  • PROJECT_ID: memorizza l'identificatore del progetto o il numero di progetto Google Cloud.
  • PROJECT_NUMBER: memorizza il numero di progetto Google Cloud.
  • SINK_ID: il nome o l'identificatore del sink. Ad esempio, my-sink.
  • SINK_BODY: memorizza la descrizione di una risorsa TraceSink. La risorsa TraceSink include un nome e la destinazione del sink. Il nome deve specificare il numero del progetto Google Cloud.
  • DESTINATION: memorizza il nome completo della destinazione. Deve essere un set di dati BigQuery.

Configurazione della destinazione

Per esportare le tracce in BigQuery:

  1. Crea il set di dati di destinazione.

  2. Crea il sink utilizzando l'Cloud Trace API o Google Cloud CLI. Per maggiori dettagli, consulta la sezione Creazione di un sink.

  3. Concedi al sink il ruolo dataEditor per il set di dati BigQuery:

    1. Ottieni l'identità dello scrittore dal lavandino. Per informazioni sull'identità dello scrittore, consulta Proprietà e terminologia dei sink.

      L'identità dell'autore di un sink è inclusa nei dati di risposta al comando create. È inclusa anche nei dati di risposta del comando list.

    2. Aggiungi l'identità dell'autore del sink come account di servizio al tuo set di dati BigQuery e assegnagli il ruolo di Editor dati BigQuery.

      • Per aggiungere le autorizzazioni utilizzando la console Google Cloud, consulta Controllo dell'accesso a un set di dati.

      • Per aggiungere le autorizzazioni utilizzando Google Cloud CLI, utilizza il comando add-iam-policy-binding e fornisci l'identificatore del progetto Google Cloud e l'identità del autore del sink:

        gcloud projects add-iam-policy-binding ${DESTINATION_PROJECT_ID} \
          --member serviceAccount:${WRITER_IDENTITY} \
          --role roles/bigquery.dataEditor
        

        Nel comando precedente, WRITER_IDENTITY è una variabile di ambiente che memorizza l'identità dell'autore del sink e DESTINATION_PROJECT_ID è l'identificatore del progetto Google Cloud del set di dati BigQuery.

Scheda dei sink

Per elencare tutti i sink nel tuo progetto Google Cloud, incluse le relative identità di scrittore, richiama il metodo traceSinks.list.

gcloud

Per elencare i sink definiti con il progetto predefinito utilizzando Google Cloud CLI, esegui questo comando:

gcloud alpha trace sinks list

Protocollo

Per elencare i sink utilizzando curl, invia una richiesta GET a:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Ad esempio, la seguente richiesta recupera tutti i sink:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Mostra i dettagli di un sink specifico

Per visualizzare i dettagli di un sink specifico presente nel tuo progetto Google Cloud, richiama il metodo traceSinks.get.

gcloud

Per visualizzare i dettagli del sink il cui identificatore è archiviato in SINK_ID utilizzando Google Cloud CLI, esegui questo comando:

gcloud alpha trace sinks describe ${SINK_ID}

Protocollo

Per visualizzare i dettagli del sink il cui identificatore è archiviato in SINK_ID utilizzando curl, invia una richiesta GET a:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/%{SINK_ID}

Ad esempio, la seguente richiesta recupera i dettagli del sink specificato:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Creazione di un sink

Per creare un sink nel progetto Google Cloud, richiama il metodo traceSinks.create. La destinazione di un sink deve essere un set di dati BigQuery.

Questo set di dati deve esistere prima di creare il sink. Trace non verifica l'esistenza della destinazione. Consulta Creazione di set di dati per informazioni sulla creazione di set di dati BigQuery.

gcloud

Per creare un sink utilizzando Google Cloud CLI, esegui questo comando:

gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}

Protocollo

Per creare un sink utilizzando curl, invia una richiesta POST a:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Ad esempio, per creare un sink denominato test_sink per esportare gli intervalli di traccia in test_dataset nel progetto con ${PROJECT_NUMBER}, definisci la variabile di ambiente SINK_BODY come mostrato di seguito:

SINK_BODY='{"name":"projects/12345/traceSinks/test_sink","output_config":{"destination":"bigquery.googleapis.com/projects/12345/datasets/test_dataset"}}'

Per creare il sink, esegui questo comando:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  --header "Content-Type: application/json"  -X POST -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Dopo la creazione di un sink, potrebbero essere necessari diversi minuti prima che gli intervalli delle tracce vengano esportati nella destinazione.

Eliminazione di un sink

Per eliminare un sink presente nel tuo progetto Google Cloud, richiama il comando traceSinks.delete.

gcloud

Per eliminare il sink il cui identificatore è archiviato in SINK_ID utilizzando Google Cloud CLI, esegui questo comando:

gcloud alpha trace sinks delete ${SINK_ID}

Protocollo

Per eliminare il sink il cui identificatore è archiviato in SINK_ID utilizzando curl, invia una richiesta DELETE a:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Ad esempio, la seguente richiesta elimina un sink:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  -X DELETE https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Aggiornamento di un sink

Per aggiornare un sink presente nel tuo progetto Google Cloud, richiama il comando traceSinks.patch.

Questo set di dati deve esistere prima di creare il sink. Trace non verifica l'esistenza della destinazione.

gcloud

Per aggiornare il sink il cui identificatore è archiviato in SINK_ID utilizzando Google Cloud CLI, esegui questo comando:

gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}

La variabile di ambiente DESTINATION archivia la nuova destinazione per il sink.

Protocollo

Per aggiornare la destinazione del sink il cui identificatore è archiviato in SINK_ID utilizzando curl, invia una richiesta PATCH a:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Ad esempio, la richiesta seguente aggiorna la destinazione di un sink:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  --header "Content-Type: application/json"  -X PATCH -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}?update_mask=output_config.destination

Per un esempio di SINK_BODY, vedi l'esempio di creazione di un sink.

Dopo l'aggiornamento di un sink, potrebbero essere necessari diversi minuti prima che gli intervalli delle tracce vengano esportati nella nuova destinazione.

Esempio end-to-end

Questa sezione illustra l'utilizzo dei comandi di Google Cloud CLI per elencare, creare, descrivere, aggiornare ed eliminare un sink. I comandi sono stati eseguiti per un progetto con l'identificatore del progetto a-sample-project. Questo progetto è stato preconfigurato per contenere 2 set di dati BigQuery. Infine, in questi esempi, il sink e la destinazione si trovano nello stesso progetto. Questo non è un requisito. Il sink e la destinazione possono essere in progetti Google Cloud diversi.

Passaggi di configurazione

  1. Verifica l'impostazione predefinita del progetto:

    $ gcloud config list
    

    Esempio di risposta:

    [compute]
    zone = us-east1-b
    [core]
    account = user@example.com
    disable_usage_reporting = True
    project = a-sample-project
    
    Your active configuration is: [default]
    
  2. Verifica che Google Cloud CLI sia almeno 274.0.0:

    $ gcloud --version
    

    Esempio di risposta:

    Google Cloud SDK 275.0.0
    alpha 2020.01.03
    beta 2020.01.03
    bq 2.0.51
    core 2020.01.03
    gsutil 4.46
    kubectl 2020.01.03
    
  3. Identifica i set di dati disponibili nel progetto predefinito:

    $ bq ls
    

    Esempio di risposta:

        datasetId
     ---------------
      dataset_1
      dataset_other
    

    Tieni presente che la prima volta che utilizzi i comandi bq, potresti dover selezionare il progetto.

Configura le variabili di ambiente

  1. Imposta le variabili env utilizzate dal comando Google Cloud CLI:

    $ PROJECT_ID=a-sample-project
    $ PROJECT_NUMBER=123456789000
    $ SINK_ID=a-sample-sink
    $ DATA_SET_NAME=dataset_1
    $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME}
    

    In questo esempio, destinazione e sink si trovano nello stesso progetto. Questo non è un requisito. Il sink e la destinazione possono essere in progetti Google Cloud diversi.

  2. Verifica le impostazioni:

    $ echo $SINK_ID
    a-sample-sink
    $ echo $DATA_SET_NAME
    dataset_1
    $ echo $DESTINATION
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
    

Elenca sink

Per elencare tutti i sink, esegui questo comando:

$ gcloud alpha trace sinks list

Poiché questo progetto non ha sink, la risposta è:

Listed 0 items.

Creazione di un sink

  1. Per creare un sink, esegui questo comando:

    $ gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}
    

    Esempio di risposta:

    You can give permission to the service account by running the following command.
    gcloud projects add-iam-policy-binding bigquery-project \
    --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com \
    --role roles/bigquery.dataEditor
    

    Nota che il nome dell'account di servizio include export-0000001cbe991a08-3434. Il numero 0000001cbe991a08 è la rappresentazione esadecimale di PROJECT_NUMBER. Il valore 3434 è un valore casuale.

    Prima di eseguire Google Cloud CLI nella risposta precedente, devi sostituire bigquery-project con l'identificatore del progetto.

  2. Verifica che il sink sia stato creato:

    $ gcloud alpha trace sinks list
    

    Esempio di risposta:

    NAME           DESTINATION                                                       WRITER_IDENTITY
    a-sample-sink  bigquery.googleapis.com/projects/123456789000/datasets/dataset_1  export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    
  3. Descrivi il lavandino in modo dettagliato:

    $ gcloud alpha trace sinks describe ${SINK_ID}
    

    Esempio di risposta:

    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    
  4. Concedi l'autorizzazione bigquery.dataEditor all'identità di scrittura del sink. Il comando sink create restituisce un comando Google Cloud CLI che puoi utilizzare per aggiornare l'autorizzazione.

    Affinché questo comando venga eseguito correttamente, procedi nel seguente modo:

    • Assicurati di disporre dell'autorizzazione per modificare le autorizzazioni della destinazione.
    • Sostituisci bigquery-project con l'identificatore del progetto:
    gcloud projects add-iam-policy-binding ${PROJECT_ID} --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com --role roles/bigquery.dataEditor
    

    Nota che la prima voce in questa risposta di esempio è l'identità dell'autore del sink:

    Updated IAM policy for project [a-sample-project].
    bindings:
    - members:
      - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
      role: roles/bigquery.dataEditor
    - members:
      - user:user@example.com
      role: roles/cloudtrace.admin
    - members:
      - serviceAccount:service-123456789000@compute-system.iam.gserviceaccount.com
      role: roles/compute.serviceAgent
    - members:
      - serviceAccount:service-123456789000@container-engine-robot.iam.gserviceaccount.com
      role: roles/container.serviceAgent
    - members:
      - serviceAccount:service-123456789000@container-analysis.iam.gserviceaccount.com
      role: roles/containeranalysis.ServiceAgent
    - members:
      - serviceAccount:service-123456789000@containerregistry.iam.gserviceaccount.com
      role: roles/containerregistry.ServiceAgent
    - members:
      - serviceAccount:123456789000-compute@developer.gserviceaccount.com
      - serviceAccount:123456789000@cloudservices.gserviceaccount.com
      role: roles/editor
    - members:
      - user:user@example.com
      role: roles/owner
    etag: BwWbqGVnShQ=
    version: 1

Modifica la destinazione del sink

In questo esempio, la destinazione è cambiata da dataset_1 a dataset_other:

  1. Aggiorna le variabili di ambiente DATA_SET_NAME e DESTINATION:

    $ DATA_SET_NAME=dataset_other
    $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME}
    $ echo ${DESTINATION}
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    

    Assicurati di aggiornare il valore di DESTINATION dopo aver modificato DATA_SET_NAME o PROJECT_NUMBER.

  2. Modifica la destinazione del sink:

    $ gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}
    

    Un output di esempio è:

    Updated [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink].
    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    

    Esegui il comando describe per visualizzare i dettagli del sink:

    $ gcloud alpha trace sinks describe ${SINK_ID}
    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    

    Quando aggiorni la destinazione di un sink, non modifichi l'identità del autore dei sink e pertanto non devi aggiornare le autorizzazioni per il sink.

Eliminazione di un sink

Per eliminare un sink, esegui questo comando:

$ gcloud alpha trace sinks delete ${SINK_ID}

L'output di esempio è:

Really delete sink [a-sample-sink]?

Do you want to continue (y/N)? y

Deleted [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink].

Puoi verificare il risultato eseguendo il comando list:

$ gcloud alpha trace sinks list
Listed 0 items.

Convalida

Puoi utilizzare la metrica exported_span_count di Cloud Monitoring come base per un grafico che mostra gli errori durante l'esportazione dei dati di Trace in BigQuery. Puoi anche creare un criterio di avviso per ricevere una notifica in caso di errori di esportazione.

Creazione di un grafico

Per visualizzare le metriche per una risorsa monitorata utilizzando Metrics Explorer, procedi come segue:

  1. Nel pannello di navigazione della console Google Cloud, seleziona Monitoring e poi  Metrics Explorer:

    Vai a Metrics Explorer

  2. Nell'elemento Metrica, espandi il menu Seleziona una metrica, inserisci Spans Exported to BigQuery nella barra dei filtri, quindi utilizza i sottomenu per selezionare un tipo di risorsa e una metrica specifici:
    1. Nel menu Risorse attive, seleziona Cloud Trace.
    2. Nel menu Categorie di metriche attive, seleziona Bigquery_explort.
    3. Nel menu Metriche attive, seleziona Intervalli esportati in BigQuery.
    4. Fai clic su Applica.
  3. Configurare il modo in cui i dati vengono visualizzati.
    1. Lascia vuoto l'elemento Filter. Se selezioni questa opzione, il grafico mostra tutti i dati sullo stato.
    2. Nell'elemento Aggregation, imposta il primo menu su Mean e imposta il secondo su status.

      Queste selezioni generano una singola serie temporale per ogni valore di stato univoco. La seguente tabella mostra i possibili valori di stato:

      Valore StatusSignificato e azione correttiva
      ok Il trasferimento dei dati è stato completato.
      bigquery_permission_denied L'esportazione dei dati nella destinazione non è riuscita. L'esportazione può non riuscire per uno dei seguenti motivi:
      • L'account di servizio nel sink di traccia non ha l'autorizzazione per scrivere nel set di dati di destinazione. Vedi Autorizzazione negata.
      • La destinazione del set di dati nel sink non esiste. Consulta Destinazione non valida.
      • Errori interni di BigQuery. Si tratta di un errore imprevisto e temporaneo.
      bigquery_quota_exceeded Il progetto BigQuery ha superato la quota di inserimento di flussi di BigQuery. Consulta Quota esaurita.
      invalid_span
      internal_errors

      invalid_destination
      Errore sconosciuto che impedisce l'esportazione dei dati in BigQuery. Per risolvere questa condizione, contatta l'assistenza tecnica o poni una domanda su Stack Overflow. Per informazioni, vedi Ricevere assistenza.

    Per maggiori informazioni sulla configurazione di un grafico, consulta Selezionare le metriche quando si utilizza Metrics Explorer.

Se il sink di Trace esporta i dati correttamente, il grafico creato con le impostazioni precedenti mostra una singola serie temporale con il valore di stato ok. Se si verificano errori durante l'esportazione, le serie temporali aggiuntive vengono visualizzate nel grafico.

Creazione di un criterio di avviso

Per creare un criterio di avviso che si attivi in caso di errori durante l'esportazione dei dati di Cloud Trace in BigQuery, utilizza le impostazioni seguenti.

Campo Nuova condizione

Valore
Risorse e metriche Nel menu Risorse, seleziona Cloud Trace.
Nel menu Categorie di metriche, seleziona BigQuery_export.
Nel menu Metriche, seleziona Intervalli esportati in BigQuert.
Filtro status != ok
In serie temporali
Raggruppa di serie temporali per
status
In tutte le serie temporali
Aggregazione di serie temporali
sum
Finestra temporale continua 1 m
Funzione finestra temporale continua rate
Configura trigger di avviso
Campo

Valore
Tipo di condizione Threshold
Attivazione degli avvisi Any time series violates
Posizione soglia Above threshold
Valore soglia 0
Periodo di nuovo test 1 minute

Utilizzo di curl

Questa sezione descrive le convenzioni e la configurazione utilizzate per richiamare l'Cloud Trace API mediante lo strumento curl:

Autenticazione

  1. Crea una variabile di ambiente in cui inserire l'identificatore del progetto Google Cloud:

    PROJECT_ID=my-project
    
  2. Crea una variabile di ambiente in cui inserire il numero del tuo progetto Google Cloud:

    PROJECT_NUMBER=12345
    
  3. Autentica Google Cloud CLI:

    gcloud auth login
    
  4. Imposta l'identificatore del progetto Google Cloud predefinito:

    gcloud config set project ${PROJECT_ID}
    
  5. Crea un token di autorizzazione e salvalo in una variabile di ambiente:

    ACCESS_TOKEN=`gcloud auth print-access-token`
    
  6. Verifica il token di accesso:

    echo ${ACCESS_TOKEN}
    

    La risposta al comando deve essere una lunga stringa di caratteri. Ad esempio, su un sistema, la risposta inizia come:

    y29.GluiBjo....
    

Richiamo di curl in corso...

Ogni comando curl include un insieme di argomenti, seguito dall'URL di una risorsa Cloud Trace API. Gli argomenti comuni includono i valori specificati dalle variabili di ambiente PROJECT_ID e ACCESS_TOKEN.

Ogni chiamata di curl ha il seguente formato generale:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" [OTHER_ARGS]
https://cloudtrace.googleapis.com/[API_VERSION]/projects/${PROJECT_ID}/[RESOURCE]

dove:

  • [OTHER_ARGS] (facoltativo): ometti questo campo se stai inviando una richiesta GET. Per altri tipi di richieste HTTP, sostituisci questo segnaposto con il tipo di richiesta e gli eventuali dati aggiuntivi necessari per soddisfare la richiesta.
  • [API_VERSION]: specifica la versione dell'API.
  • [RESOURCE]: specifica il nome della risorsa Cloud Trace API.

Ad esempio, per elencare le 1000 tracce più recenti nel tuo progetto, esegui questo comando:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v1/projects/${PROJECT_ID}/traces

Risoluzione dei problemi

Questa sezione contiene informazioni per la risoluzione dei problemi che potrebbero aiutarti a risolvere gli errori durante la configurazione di un'esportazione.

Errore relativo a un argomento non valido per il set di dati

Il seguente messaggio di errore indica che il nome del set di dati non è valido:

ERROR: (gcloud.alpha.trace.sinks.create) INVALID_ARGUMENT: Request contains an invalid argument.
- '@type': type.googleapis.com/google.rpc.DebugInfo
  detail: '[ORIGINAL ERROR] generic::invalid_argument: sink destination is malformed:
    bigquery.googleapis.com/projects/123456789000/datasets/a-sample-project:dataset_1.

L'errore è causato dalla destinazione, che include l'identificatore del progetto Google Cloud, a-sample-project, come qualificatore per il nome del set di dati.

Per risolvere questo errore, sostituisci a-sample-project:dataset_1 con dataset_1 ed esegui il comando create.

Tieni presente che puoi elencare i tuoi set di dati con il comando bq ls.

Non vengono ricevuti dati di traccia

Esistono diversi motivi per cui potresti non ricevere dati di traccia in BigQuery.

Destinazione non valida

Verifica che il nome del set di dati e il numero di progetto siano corretti.

  • Verifica che il nome del set di dati sia corretto. Per elencare i set di dati nel progetto attuale, esegui bq ls.

    Se hai scelto di utilizzare le variabili di ambiente, verifica che il valore di ogni variabile sia corretto inviando un comando echo. Ad esempio, verifica che la destinazione sia corretta:

    $ echo ${DESTINATION}
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    

    Poiché DESTINATION dipende dal valore di PROJECT_NUMBER e DATA_SET_NAME, queste due variabili devono essere impostate per prime. Inoltre, se modifichi una di queste due variabili, devi aggiornare il valore archiviato in DESTINATION.

  • Per determinare il numero di progetti attuali, esegui questo comando:

    gcloud projects list --filter="${PROJECT_ID}"
    

    Puoi impostare PROJECT_NUMBER in modo programmatico utilizzando il seguente comando:

    $ PROJECT_NUMBER=`gcloud projects list --filter="${PROJECT_ID}" --format="value(PROJECT_NUMBER)"`
    

Autorizzazioni non valide

Verifica che all'account di servizio sia stato concesso il ruolo DataEditor per BigQuery. Puoi verificare le autorizzazioni eseguendo questo comando:

$ gcloud projects get-iam-policy ${PROJECT_ID}

La risposta di questo comando descrive tutte le associazioni IAM. In questo caso, il risultato è come mostrato. Nota che l'identità autore sink ha il ruolo di dataEditor:

bindings:
- members:
  - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
  role: roles/bigquery.dataEditor
- members:
  [Note, content truncated]

Quota esaurita

Se i dati ricevuti si arrestano improvvisamente o sono incompleti, potresti esaurire la quota di flussi di dati di BigQuery. Per visualizzare la tua quota, vai alla pagina IAM e amministrazione e seleziona Quote. Cerca l'API BigQuery. Esistono due voci pertinenti: Streaming di righe al minuto per risorsa, Streaming di byte al minuto per risorsa.

Vai a Quote

Passaggi successivi

Per informazioni sullo schema di BigQuery, consulta Esportazione in BigQuery.