Questo documento spiega come monitorare le modifiche dello stato di job e attività configurando le notifiche Pub/Sub. Puoi utilizzare le notifiche per vari casi d'uso. Ad esempio, questo documento spiega come trasmettere le notifiche a una tabella BigQuery, che puoi utilizzare per analizzare i dati. Per scoprire di più sui casi d'uso delle notifiche Pub/Sub, consulta Scegliere un tipo di sottoscrizione nella documentazione di Pub/Sub.
In alternativa, se vuoi esportare tutte le informazioni su un job in BigQuery, consulta Esportare le informazioni sui job invece.
Prima di iniziare
- Se non hai mai utilizzato Batch, consulta la pagina Inizia a utilizzare Batch e abilita Batch completando i prerequisiti per progetti e utenti.
- Se vuoi configurare le notifiche Pub/Sub per i job Batch:
-
Abilita l'API Pub/Sub.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (
roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli. -
Per ottenere le autorizzazioni necessarie per configurare un argomento e una sottoscrizione Pub/Sub, chiedi all'amministratore di concederti il ruolo IAM Editor Pub/Sub (
roles/pubsub.editor) in un progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
-
- I requisiti aggiuntivi variano in base al tipo di sottoscrizione che decidi di configurare. Ad esempio, se vuoi trasmettere e analizzare le notifiche in una tabella BigQuery, devi:
-
Abilita l'API BigQuery.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (
roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli. -
Per assicurarti che il account di servizio Pub/Sub disponga delle autorizzazioni necessarie per trasmettere le notifiche Pub/Sub a BigQuery, chiedi all'amministratore di concedere il ruolo IAM Editor dati BigQuery (
roles/bigquery.dataEditor) al account di servizio Pub/Sub nel progetto dell'argomento Pub/Sub.Per ulteriori informazioni sull'assegnazione di questo ruolo, consulta Assegnare i ruoli BigQuery al service account Pub/Sub.
- Assicurati che tutti gli utenti che vuoi analizzare le notifiche in
BigQuery dispongano delle autorizzazioni richieste.
Per ottenere le autorizzazioni necessarie per eseguire query sulle notifiche Pub/Sub in BigQuery, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Utente job BigQuery (
roles/bigquery.jobUser) nel progetto della tabella BigQuery -
Visualizzatore dati BigQuery (
roles/bigquery.dataViewer) nella tabella BigQuery
-
Utente job BigQuery (
-
Configurare le notifiche Pub/Sub per Batch
Batch supporta le notifiche Pub/Sub per le modifiche agli stati di job e attività, che puoi utilizzare per avvisi, osservabilità o analisi.
Per configurare le notifiche Pub/Sub per uno o più job Batch, completa i passaggi descritti nelle sezioni seguenti:
- Crea o identifica un argomento Pub/Sub per i tuoi job Batch.
- Crea almeno una sottoscrizione per l'argomento per ricevere e utilizzare le notifiche.
- Configura i job per inviare notifiche all'argomento.
Dopo aver configurato le notifiche Pub/Sub per Batch, puoi facoltativamente configurare ogni job per inviare notifiche specifiche. Puoi ricevere notifiche ogni volta che cambiano gli stati di job o attività oppure puoi filtrare le notifiche per stati di job o attività specifici. In particolare, Pub/Sub non invia notifiche per il primo stato in cui entra un job o un'attività; Pub/Sub invia notifiche solo quando un job passa da uno stato all'altro.
Per ulteriori informazioni sugli attributi che puoi configurare per le notifiche Pub/Sub, consulta Creare ed eseguire un job che invia notifiche di stato Pub/Sub.
Creare o identificare un argomento Pub/Sub per Batch
Crea un nuovo argomento Pub/Sub o identifica un argomento Pub/Sub esistente che vuoi utilizzare per le notifiche Batch.
Come spiegato più avanti in questo documento, i job non possono inviare notifiche a questo argomento Pub/Sub finché l'amministratore non concede autorizzazioni aggiuntive che lo consentano.
Creare una sottoscrizione per ricevere e utilizzare le notifiche
Per ricevere e utilizzare i messaggi pubblicati in un argomento Pub/Sub, devi creare almeno una sottoscrizione per quell'argomento.
Ad esempio, un'opzione è configurare l'argomento per trasmettere le notifiche a BigQuery. Poi, quando esegui job che pubblicano notifiche, puoi ricevere e analizzare le notifiche in una tabella BigQuery. Per ulteriori informazioni, consulta Esempio: ricevere e utilizzare le notifiche Pub/Sub in BigQuery in questo documento.
In alternativa, per scoprire di più sulle sottoscrizioni e su altre opzioni di sottoscrizione, consulta la panoramica delle sottoscrizioni nella documentazione di Pub/Sub.
Configurare i job per inviare notifiche all'argomento
Per configurare i job che inviano notifiche Pub/Sub all'argomento, segui le istruzioni riportate nella pagina Creare ed eseguire un job che invia notifiche di stato Pub/Sub. In particolare:
- Se non l'hai ancora fatto, chiedi all'amministratore di concedere tutte le autorizzazioni richieste per consentire ai job di inviare notifiche all'argomento Pub/Sub. Queste autorizzazioni sono elencate nella sezione Ruoli richiesti di quella pagina.
- Crea ed esegui un job che abilita le notifiche Pub/Sub definendo il campo
notificationsdel job.
Esempio: ricevere e utilizzare le notifiche Pub/Sub in BigQuery
Le sezioni seguenti spiegano un caso d'uso di esempio per la ricezione e l'utilizzo delle notifiche Pub/Sub in BigQuery. Configurando una sottoscrizione che trasmette le notifiche Pub/Sub dell'argomento a una tabella BigQuery, puoi conservare la cronologia delle modifiche dello stato di job e attività ed eseguire query su queste modifiche.
Configurare una sottoscrizione che trasmette le notifiche a BigQuery
Configura una sottoscrizione Pub/Sub che trasmette le notifiche da un argomento a una tabella BigQuery procedendo nel seguente modo:
Se non l'hai ancora fatto, crea o identifica un argomento Pub/Sub per Batch.
Se non ne hai già uno, crea un set di dati BigQuery.
Crea una tabella BigQuery con la seguente definizione dello schema:
[ { "name": "data", "type": "STRING" }, { "name": "subscription_name", "type": "STRING" }, { "name": "message_id", "type": "STRING" }, { "name": "attributes", "type": "JSON" }, { "name": "publish_time", "type": "TIMESTAMP", "mode": "NULLABLE" } ]Crea una sottoscrizione Pub/Sub che trasmette a BigQuery e specifica le seguenti opzioni:
- Argomento: seleziona l'argomento Pub/Sub per Batch.
- Progetto: seleziona il progetto che contiene la tabella BigQuery.
- Set di dati: seleziona il set di dati che contiene la tabella BigQuery.
- Tabella: seleziona la tabella che hai creato nel passaggio precedente.
- Seleziona Utilizza schema argomento.
- Seleziona Scrivi metadati.
Ora, ogni volta che viene inviata una notifica Pub/Sub a quell'argomento, Pub/Sub trasmette la notifica alla tabella BigQuery. Dopo aver configurato i job per inviare notifiche Pub/Sub, puoi analizzare le notifiche in BigQuery.
Analizzare le notifiche in BigQuery
Puoi analizzare le notifiche in BigQuery dopo aver configurato una sottoscrizione a una tabella BigQuery per l'argomento ed eseguito i job che inviano notifiche all'argomento. Per analizzare le notifiche
in BigQuery, esegui una query
sulla attributes colonna della tabella BigQuery. Gli attributi su cui puoi eseguire query dipendono dal fatto che tu abbia configurato le notifiche per attività o job.
Puoi eseguire query sui seguenti attributi delle notifiche delle attività:
JobUIDNewTaskStateRegionTaskNameTaskUIDType
Puoi eseguire query sui seguenti attributi delle notifiche dei job:
JobUIDJobNameNewJobStateRegionType
Ad esempio, la seguente query mostra il JobUID associato a ogni notifica:
select attributes.JobUID from `example-table`
Passaggi successivi
- Scopri come creare ed eseguire un job che invia notifiche di stato Pub/Sub.
- Scopri di più sulle sottoscrizioni Pub/Sub.
- Scopri di più sull' analisi di BigQuery.