Flusso di lavoro con Cloud Scheduler

In questo documento, utilizzi 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 gratuita.

Prima di iniziare

Configura il progetto

  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. Make sure that billing is enabled for your Google Cloud project.

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

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

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

    Go to project selector

  9. Make sure that billing is enabled for your Google Cloud project.

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

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. Creare un ruolo personalizzato

    1. Apri la pagina IAM e amministrazione → Ruoli nella console Google Cloud .
      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 "Dataproc Workflow Template Create" 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 per leggere "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 per 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 console Google Cloud , vai alla pagina Service Accounts.

      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 console Google Cloud compila il campo ID service account in base a questo nome.

    5. (Facoltativo) Nel campo Descrizione service account, inserisci una descrizione per ilaccount di serviziot.

    6. Fai clic su Crea e continua.

    7. Fai clic sul campo Seleziona un ruolo e scegli il ruolo personalizzato Dataproc Workflow Template Create che hai creato nel passaggio precedente.

    8. Fai clic su Continua.

    9. Nel campo Ruolo degli amministratori dell'account di servizio, inserisci l'indirizzo email del tuo Account Google.

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

    Crea un modello 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 modello di flusso di lavoro.

    Note:

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

    1. Crea il modello di workflow.
      gcloud dataproc workflow-templates create sparkpi \
          --region=us-central1
      
    2. Aggiungi il job Spark al modello di workflow sparkpi. L'ID 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 cluster gestito, a un singolo nodo per eseguire il flusso di lavoro. Dataproc creerà il cluster, eseguirà il workflow e 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 di sparkpi nella pagina Workflows di Dataproc nella console Google Cloud per aprire la pagina Dettagli modello di flusso di lavoro. Conferma gli attributi del modello sparkpi.

    Crea un job Cloud Scheduler

    1. Apri la pagina Cloud Scheduler nella consoleGoogle Cloud (potresti dover selezionare il tuo 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 del flusso di lavoro.
      2. Nome: "sparkpi"
      3. Frequenza: "* * * * *" seleziona ogni minuto; "0 9 * * 1" seleziona ogni lunedì alle 9:00. Consulta la sezione Definizione della pianificazione del job per altri valori unix-cron. Nota:potrai fare clic sul pulsante ESEGUI ORA nei job di Cloud Scheduler nella console Google Cloud per eseguire e testare il job indipendentemente dalla frequenza impostata.
      4. Fuso orario:seleziona il tuo timezone. Digita "Stati Uniti" per visualizzare 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 modello di workflow in un'altra regione. Questo URL chiamerà l'API Dataproc workflowTemplates.instantiate per eseguire il modello di flusso di lavoro 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 token OAuth"
        2. Account di servizio: inserisci il service account address dell'account di servizio 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.

    Testare il job del flusso di lavoro pianificato

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

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

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

    Esegui la pulizia

    Il flusso di lavoro di questo tutorial elimina il cluster gestito al termine del flusso di lavoro. Il mantenimento del flusso di lavoro consente di eseguirlo nuovamente e non comporta addebiti. Puoi eliminare altre risorse create in questo tutorial per evitare costi ricorrenti.

    Eliminare un progetto

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Eliminare il modello di workflow

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

    Elimina il job Cloud Scheduler

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

    Elimina il account di servizio

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

    Passaggi successivi