Utilizzare Eventarc per gestire i job Dataflow

Questo documento descrive come creare flussi di lavoro basati su eventi attivati da modifiche dello stato nei job Dataflow.

Ad esempio, il workflow potrebbe:

  • Invia un avviso a un tecnico di turno se un job critico non va a buon fine.
  • Notifica agli utenti il completamento di un job batch o avvia un altro job Dataflow.
  • Esegui la pulizia delle risorse utilizzate da un job, ad esempio i bucket Cloud Storage.

Panoramica

Eventarc è un servizio Google Cloud che può ascoltare gli eventi provenienti da altri servizi e indirizzarli a varie destinazioni.

Quando esegui un job Dataflow, il job passa attraverso vari stati, ad esempio JOB_STATE_QUEUED, JOB_STATE_RUNNING e JOB_STATE_DONE. L'integrazione di Dataflow con Eventarc ti consente di attivare un'azione quando un job cambia stato.

Poiché Eventarc è un servizio gestito, non devi eseguire il provisioning o gestire l'infrastruttura sottostante.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Eventarc APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Eventarc APIs.

    Enable the APIs

  8. Per utilizzare l'API Eventarc, il tuo progetto deve disporre di una quota sufficiente. Inoltre, il account di servizio associato al trigger Eventarc deve disporre delle autorizzazioni appropriate.

    Scegliere una destinazione per l'evento

    Scegli una destinazione evento per ricevere l'evento. La destinazione determina il passaggio successivo del flusso di lavoro.

    Ad esempio:

    • Per inviare un avviso SMS, puoi utilizzare le funzioni Cloud Run per creare un trigger HTTP autonomo.
    • Per un workflow più complesso, puoi utilizzare Workflows.
    • Se la pipeline Dataflow fa parte di una soluzione più ampia che viene eseguita su Google Kubernetes Engine, il trigger può indirizzare l'evento a un servizio GKE in esecuzione nel cluster.

    Per saperne di più su questo stile di architettura, consulta Architetture basate su eventi nella documentazione di Eventarc.

    Crea un trigger

    Per creare un trigger Eventarc per le modifiche di stato del job Dataflow, consulta uno dei seguenti documenti:

    (Facoltativo) Puoi filtrare gli eventi in base all'ID job Dataflow. Ad esempio, puoi selezionare gli ID job che corrispondono a un'espressione regolare. Per ulteriori informazioni, consulta Informazioni sui pattern di percorso.

    Elaborare eventi

    I dati dell'evento descrivono il job Dataflow al momento dell'attivazione dell'evento. Il payload è simile al tipo di risorsa Job, con i campi steps, pipeline_description e transform_name_mapping omessi. Inoltre, a seconda dello stato del job, alcuni campi potrebbero non essere presenti.

    Di seguito è riportato un esempio di payload:

    {
      "id":"2023-04-13_16_28_37-12345678",
      "projectId":"my-project",
      "name":"job1",
      "currentState":"JOB_STATE_QUEUED",
      "currentStateTime":"2023-04-13T23:28:37.437622Z",
      "createTime":"2023-04-13T23:28:37.437622Z",
      "location":"us-central1",
      "startTime":"2023-04-13T23:28:37.437622Z"
    }
    

    Per saperne di più sugli stati dei job, consulta i seguenti argomenti:

    Passaggi successivi