Flusso di lavoro con Cloud Scheduler

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

  • Dataproc
  • Compute Engine
  • Cloud Scheduler

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.

I nuovi Google Cloud utenti potrebbero avere diritto a una prova senza costi.

Prima di iniziare

Configura il progetto

  1. Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  4. Enable the Dataproc, Compute Engine, and Cloud Scheduler APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Installa Google Cloud CLI.

  6. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  7. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  10. Enable the Dataproc, Compute Engine, and Cloud Scheduler APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Installa Google Cloud CLI.

  12. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  13. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init

Creare un ruolo personalizzato

  1. Apri la pagina IAM e amministrazione → Ruoli nella Google Cloud console.
    1. Fai clic su CREA RUOLO per aprire la pagina Crea ruolo.
    2. Completa i campi Titolo, Descrizione, ID e Fase di lancio. Suggerimento: utilizza "Crea template di workflow Dataproc" come titolo del ruolo.
    3. Fai clic su AGGIUNGI AUTORIZZAZIONI.
      1. Nel modulo Aggiungi autorizzazioni, fai clic su Filtra, quindi seleziona "Autorizzazione". Completa il filtro in modo che sia "Autorizzazione: dataproc.workflowTemplates.instantiate".
      2. Fai clic sulla casella di controllo a sinistra dell'autorizzazione elencata, quindi fai clic su Aggiungi.
    4. Nella pagina Crea ruolo, fai di nuovo clic su AGGIUNGI AUTORIZZAZIONI per ripetere i passaggi secondari precedenti e aggiungere l'autorizzazione "iam.serviceAccounts.actAs" al ruolo personalizzato. La pagina Crea ruolo ora elenca due autorizzazioni.
    5. Fai clic su CREA nella pagina Ruolo personalizzato. Il ruolo personalizzato è elencato nella pagina Ruoli.

Crea un account di servizio

  1. Nella Google Cloud console, vai alla pagina Service account.

    Vai a Service account

  2. Seleziona il progetto.

  3. Fai clic su Crea service account.

  4. Nel campo Nome service account, inserisci il nome workflow-scheduler. La Google Cloud console compila il campo ID service account in base a questo nome.

  5. (Facoltativo) Nel campo Descrizione service account, inserisci una descrizione del account di servizio.

  6. Fai clic su Crea e continua.

  7. Fai clic sul campo Seleziona un ruolo e scegli il ruolo personalizzato Crea template di workflow Dataproc che hai creato nel passaggio precedente.

  8. Fai clic su Continua.

  9. Nel campo Ruolo di amministrazione del service account, inserisci l'indirizzo email del tuo Account Google.

  10. Fai clic su Fine per completare la creazione del account di servizio.

Crea un template di workflow.

Copia ed esegui i comandi elencati di seguito in una finestra del terminale locale o in Cloud Shell per creare e definire un template di workflow.

Note:

  • I comandi specificano la regione "us-central1" . Puoi specificare una regione diversa o eliminare il flag --region se hai eseguito in precedenza gcloud config set compute/region per impostare la proprietà della regione.
  • La sequenza "-- " (trattino trattino spazio) nel comando add-job passa l'argomento 1000 al job SparkPi, che specifica il numero di campioni da utilizzare per stimare il valore di Pi.

  1. Crea il template di workflow.
    gcloud dataproc workflow-templates create sparkpi \
        --region=us-central1
    
  2. Aggiungi il job Spark al template di workflow sparkpi. L'ID del passaggio "compute" è obbligatorio e identifica il job SparkPi aggiunto.
    gcloud dataproc workflow-templates add-job spark \
        --workflow-template=sparkpi \
        --step-id=compute \
        --class=org.apache.spark.examples.SparkPi \
        --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
        --region=us-central1 \
        -- 1000
    

  3. Utilizza un managed, single-node cluster per eseguire il workflow. Dataproc creerà il cluster, eseguirà il workflow e poi lo eliminerà al termine del workflow.

    gcloud dataproc workflow-templates set-managed-cluster sparkpi \
        --cluster-name=sparkpi \
        --single-node \
        --region=us-central1
    

  4. Fai clic sul nome sparkpi nella pagina Workflow di Dataproc nella console per aprire la pagina Dettagli del template di workflow. Google Cloud Verifica gli attributi del template sparkpi attributes.

Crea un job Cloud Scheduler

  1. Apri la pagina **Cloud Scheduler** nella Google Cloud console (potresti dover selezionare il progetto per aprire la pagina). Fai clic su CREA JOB.

  2. Inserisci o seleziona le seguenti informazioni sul job:

    1. Seleziona una regione: "us-central" o un'altra regione in cui hai creato il template di workflow.
    2. Nome: "sparkpi"
    3. Frequenza: "* * * * *" seleziona ogni minuto; "0 9 * * 1" seleziona ogni lunedì alle 9:00. Per altri valori unix-cron, vedi Definire la pianificazione dei job. Nota: potrai fare clic sul pulsante ESEGUI ORA nei job di Cloud Scheduler nella Google Cloud console per eseguire e testare il job indipendentemente dalla frequenza impostata per il job.
    4. Fuso orario: seleziona il tuo timezone. Digita "Stati Uniti" per elencare i fusi orari degli Stati Uniti.
    5. Destinazione: "HTTP"
    6. URL: inserisci il seguente URL dopo aver inserito your-project-id. Sostituisci "us-central1" se hai creato il template di workflow in un'altra regione. Questo URL chiamerà l'API workflowTemplates.instantiate di Dataproc per eseguire il template di workflow sparkpi.
      https://dataproc.googleapis.com/v1/projects/your-project-id/regions/us-central1/workflowTemplates/sparkpi:instantiate?alt=json
      
    7. Metodo HTTP:
      1. "POST"
      2. Corpo: "{}"
    8. Intestazione autorizzazione:
      1. "Aggiungi un token OAuth"
      2. Service account: Inserisci il service account address di service account che hai creato per questo tutorial. Puoi utilizzare il seguente indirizzo dell'account dopo aver inserito your-project-id:
        workflow-scheduler@your-project-id.iam.gserviceaccount.com
        
      3. Ambito: puoi ignorare questo elemento.
    9. Fai clic su CREA.

Testa il job del workflow pianificato

  1. Nella riga del job sparkpi nella pagina Job di Cloud Scheduler, fai clic su ESEGUI ORA.

  2. Attendi qualche minuto, poi apri la pagina Workflow di Dataproc per verificare che il workflow sparkpi sia stato completato.

  3. Dopo che il workflow elimina il cluster gestito, i dettagli del job rimangono nella Google Cloud console. Fai clic sul job compute... elencato nella pagina Job di Dataproc per visualizzare i dettagli del job del workflow.

Libera spazio

Il workflow in questo tutorial elimina il cluster gestito al termine del workflow. Se mantieni il workflow, puoi eseguirlo di nuovo senza incorrere in addebiti. Puoi eliminare altre risorse create in questo tutorial per evitare costi ricorrenti.

Elimina un progetto

  1. Nella Google Cloud console, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.

Elimina il template di workflow

gcloud dataproc workflow-templates delete sparkpi \
    --region=us-central1

Elimina il job Cloud Scheduler

Apri la pagina Cloud Scheduler Job nella Google Cloud console, seleziona la casella a sinistra della sparkpi funzione, quindi fai clic su ELIMINA.

Elimina il account di servizio

Apri la pagina IAM e amministrazione → Service account nella Google Cloud console, seleziona la casella a sinistra del workflow-scheduler... account di servizio, quindi fai clic su ELIMINA.

Passaggi successivi