Crea ed esegui un job di esempio

Scopri come creare ed eseguire un job di elaborazione batch di esempio che esegue la transcodifica dei video utilizzando Batch per Google Cloud.


Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud , fai clic su Procedura guidata:

Procedura guidata


Prima di iniziare

  1. Accedi al tuo account Google Cloud . 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 carichi di lavoro.
  2. Installa Google Cloud CLI.

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

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. Crea o seleziona un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • Creare un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del progetto Google Cloud .

  6. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  7. Abilita le API Batch, Compute Engine, Logging e Cloud Storage, se non sono già abilitate:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  8. Installa Google Cloud CLI.

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

  10. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  11. Crea o seleziona un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • Creare un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del progetto Google Cloud .

  12. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  13. Abilita le API Batch, Compute Engine, Logging e Cloud Storage, se non sono già abilitate:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  14. Assicurati che tu e il account di servizio del job disponiate delle autorizzazioni necessarie per completare questo tutorial. Questo tutorial utilizza il service account predefinito per un job, ovvero l'account di servizio predefinito di Compute Engine.

    • Per ottenere le autorizzazioni necessarie per completare questo tutorial, chiedi all'amministratore di concederti i seguenti ruoli IAM:

      • Per creare, visualizzare ed eliminare i lavori:
      • Per creare, visualizzare ed eliminare bucket Cloud Storage: Amministratore archiviazione (roles/storage.admin) del progetto
      • Per visualizzare i log dei job: Logs Viewer (roles/logging.viewer) sul 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.

    • Per assicurarti che il account di servizio predefinito di Compute Engine disponga delle autorizzazioni necessarie per completare questo tutorial, chiedi all'amministratore di concedere i seguenti ruoli IAM al account di servizio predefinito di Compute Engine:

      • Batch Agent Reporter (roles/batch.agentReporter) sul progetto
      • Per consentire ai job di accedere ai bucket Cloud Storage: Storage Admin (roles/storage.admin) del progetto
      • Per consentire ai job di generare log in Logging: Logs Writer (roles/logging.logWriter) sul progetto

  15. Clona il repository Git di Batch nella directory corrente:
    git clone https://github.com/GoogleCloudPlatform/batch-samples.git
  16. Vai alla directory transcoding:
    cd batch-samples/transcoding/

Prepara gli input del job

  1. Crea un bucket Cloud Storage:

    gcloud storage buckets create gs://BUCKET_NAME
    

    Sostituisci BUCKET_NAME con un nome univoco a livello globale per il bucket.

    L'output è simile al seguente:

    Creating gs://BUCKET_NAME/...
    
  2. Copia lo script transcode.sh e la cartella contenente i file video nel bucket Cloud Storage:

    gcloud storage cp -R transcode.sh input gs://BUCKET_NAME
    

    L'output è simile al seguente:

    Copying file://transcode.sh to gs://BUCKET_NAME/transcode.sh
    Copying file://input/video-2.mp4 to gs://BUCKET_NAME/input/video-2.mp4
    Copying file://input/video-1.mp4 to gs://BUCKET_NAME/input/video-1.mp4
    Copying file://input/video-0.mp4 to gs://BUCKET_NAME/input/video-0.mp4
      Completed files 4/4 | 37.5MiB/37.5MiB
    
    Average throughput: 48.4MiB/s
    

Crea un job

  1. In un editor di testo di tua scelta, apri il file di configurazione job.json.

  2. Imposta il valore del campo remotePath sul nome del tuo bucket Cloud Storage:

    {
      "taskGroups": [
        {
          "taskSpec": {
            "runnables": [
              {
                "script": {
                  "text": "bash /mnt/share/transcode.sh"
                }
              }
            ],
            "computeResource": {
              "cpuMilli": 2000,
              "memoryMib": 2048
            },
            "volumes": [
              {
                "gcs": {
                  "remotePath": "BUCKET_NAME"
                },
                "mountPath": "/mnt/share"
              }
            ],
            "maxRetryCount": 2,
            "maxRunDuration": "600s"
          },
          "taskCount": 3,
          "parallelism": 3
        }
      ],
      "allocationPolicy": {
        "instances": [
          {
            "policy": {
              "machineType": "n2d-standard-4",
              "provisioningModel": "SPOT"
            }
          }
        ]
      },
      "labels": {
        "department": "creative",
        "env": "testing"
      },
      "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    
  3. Salva le modifiche e chiudi l'editor di testo.

  4. Crea il job transcode:

    gcloud batch jobs submit transcode \
        --config=job.json \
        --location=us-central1
    

    L'output è simile al seguente:

    Job transcode-7a1654ca-211c-40e8-b0fb-8a00 was successfully submitted.
    ...
    

    Il job esegue tre attività contemporaneamente. Ogni attività esegue lo script transcode.sh, che codifica uno dei tre file video e lo carica nel bucket Cloud Storage.

Monitorare il job

  1. Nella console Google Cloud , vai alla pagina Elenco dei job.

    Vai all'elenco dei job

  2. Nella colonna Nome job, fai clic su transcode.

    Viene visualizzata la pagina Dettagli job.

  3. Fai clic sulla scheda Eventi.

    Nella sezione Elenco di eventi puoi monitorare lo stato del job transcode. Il tempo impiegato dal job per completare le fasi di inserimento in coda, pianificazione ed esecuzione varia in base a diversi fattori. Per questo esempio, il job dovrebbe venire completato in circa 5 minuti.

  4. (Facoltativo) Per aggiornare la pagina, fai clic su Aggiorna.

Prima di procedere con il passaggio successivo, assicurati che lo stato del job sia impostato su Riuscito. Se il job non va a buon fine, consulta la sezione Risoluzione dei problemi.

Visualizza i video codificati

  1. Nella console Google Cloud , vai alla pagina Bucket.

    Vai a Bucket

  2. Nella colonna Nome, fai clic su BUCKET_NAME.

    Viene visualizzata la pagina Dettagli bucket.

  3. Nella colonna Nome, fai clic su output/, quindi su uno dei file video codificati.

    Viene visualizzata la pagina Dettagli oggetto.

  4. Per visualizzare il video codificato, fai clic su Anteprima, quindi su Riproduci.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il progetto Google Cloud con le risorse.

Elimina il progetto

Il modo più semplice per eliminare la fatturazione è eliminare il progetto che hai utilizzato in questo tutorial.

Elimina un progetto Google Cloud :

gcloud projects delete PROJECT_ID

Elimina singole risorse

Se vuoi continuare a utilizzare il progetto corrente, elimina le singole risorse utilizzate in questo tutorial.

Eliminare il job

Al termine dell'esecuzione del job batch, elimina il job transcode:

gcloud batch jobs delete transcode \
    --location=us-central1

L'output è simile al seguente:

Job projects/example-project/locations/us-central1/jobs/transcode deletion is in progress

L'eliminazione di un job comporta anche l'eliminazione dei relativi dettagli e della cronologia. I log del job vengono eliminati automaticamente al termine del periodo di conservazione dei log di Cloud Logging.

Elimina il bucket

Se non hai più bisogno del bucket Cloud Storage che hai utilizzato in questo tutorial e dei relativi contenuti, eliminalo:

gcloud storage rm gs://BUCKET_NAME \
    --recursive

L'output è simile al seguente:

Removing objects:
Removing gs://BUCKET_NAME/input/video-0.mp4#1694788495332395...
Removing gs://BUCKET_NAME/input/video-2.mp4#1694788495296173...
Removing gs://BUCKET_NAME/input/video-1.mp4#1694788495228839...
Removing gs://BUCKET_NAME/output/video-0.mp4#1694788495332395...
Removing gs://BUCKET_NAME/output/video-2.mp4#1694788495296173...
Removing gs://BUCKET_NAME/output/video-1.mp4#1694788495228839...
Removing gs://BUCKET_NAME/transcode.sh#1694788495039427...
  Completed 4/4
Removing Buckets:
Removing gs://BUCKET_NAME/...
  Completed 1/1

Elimina il repository Git

Se non hai più bisogno del repository Git Batch che hai clonato per questo tutorial, puoi eliminarlo:

cd ../../ && rm -rf batch-samples

Passaggi successivi