Esecuzione di un job batch utilizzando Workflows


Batch è un servizio completamente gestito che consente di pianificare, inserire in coda ed eseguire carichi di lavoro di elaborazione batch sulle istanze di macchine virtuali (VM) Compute Engine. Il batch esegue il provisioning delle risorse e gestisce la capacità per conto tuo, consentendo l'esecuzione su larga scala dei carichi di lavoro batch.

Workflows ti consente di eseguire i servizi di cui hai bisogno nell'ordine da te definito descritto utilizzando la sintassi dei flussi di lavoro.

In questo tutorial utilizzerai il connettore Workflows per Batch per pianificare ed eseguire un job batch che esegue sei attività in parallelo su due VM di Compute Engine. L'utilizzo sia di batch che di Workflows ti consente di combinare i vantaggi offerti ed eseguire il provisioning e l'orchestrazione dell'intero processo in modo efficiente.

Obiettivi

In questo tutorial, imparerai a:

  1. Creare un repository Artifact Registry per un'immagine container Docker.
  2. Recupera il codice per il carico di lavoro di elaborazione batch da GitHub: un programma di esempio che genera numeri primi in batch di 10.000.
  3. Creare l'immagine Docker per il carico di lavoro.
  4. Esegui il deployment e un flusso di lavoro che:
    1. Crea un bucket Cloud Storage per archiviare i risultati del generatore di numeri primi.
    2. Pianifica ed esegue un job batch che esegue il container Docker come sei attività in parallelo su due VM di Compute Engine.
    3. Facoltativamente, elimina il job batch una volta completato.
  5. Conferma che i risultati siano quelli previsti e che i batch di numeri primi generati siano archiviati in Cloud Storage.

Puoi eseguire la maggior parte dei comandi seguenti nella console Google Cloud o eseguire tutti i comandi utilizzando Google Cloud CLI nel tuo terminale o Cloud Shell.

Costi

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

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud possono essere idonei a una prova senza costi aggiuntivi.

Prima di iniziare

I vincoli di sicurezza definiti dalla tua organizzazione potrebbero impedirti di completare i passaggi seguenti. Per informazioni sulla risoluzione dei problemi, vedi Sviluppare applicazioni in un ambiente Google Cloud vincolato.

Console

  1. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  2. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Scopri come verificare se la fatturazione è abilitata in un progetto.

  3. Abilitare le API Artifact Registry, Batch, Cloud Build, Compute Engine, Esecuzioni flussi di lavoro e Workflows.

    Abilita le API

  4. Crea un account di servizio per il tuo flusso di lavoro da utilizzare per l'autenticazione con altri servizi Google Cloud e concedigli i ruoli appropriati:

    1. Nella console Google Cloud, vai alla pagina Crea account di servizio.

      Vai a Crea account di servizio

    2. Seleziona il progetto.

    3. Inserisci un nome nel campo Nome account di servizio. La console Google Cloud compila il campo ID account di servizio in base a questo nome.

      Inserisci una descrizione nel campo Descrizione account di servizio. Ad esempio, Service account for tutorial.

    4. Fai clic su Crea e continua.

    5. Nell'elenco Seleziona un ruolo, filtra in base ai seguenti ruoli da concedere all'account di servizio gestito dall'utente che hai creato nel passaggio precedente:

      • Editor job batch: per modificare job batch.
      • Writer log: per scrivere i log.
      • Amministratore Storage: per controllare le risorse Cloud Storage.

      Per ulteriori ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni altro ruolo.

    6. Fai clic su Continua.

    7. Per completare la creazione dell'account, fai clic su Fine.

  5. Concedi il ruolo Utente account di servizio IAM per l'account di servizio predefinito all'account di servizio gestito dall'utente creato nel passaggio precedente. Dopo aver abilitato l'API Compute Engine, l'account di servizio predefinito sarà l'account di servizio predefinito di Compute Engine (PROJECT_NUMBER-compute@developer.gserviceaccount.com) e l'autorizzazione viene in genere assegnata tramite il ruolo roles/iam.serviceAccountUser.

    1. Nella pagina Account di servizio, fai clic sull'indirizzo email dell'account di servizio predefinito (PROJECT_NUMBER-compute@developer.gserviceaccount.com).

    2. Fai clic sulla scheda Autorizzazioni.

    3. Fai clic sul pulsante Concedi l'accesso.

    4. Per aggiungere una nuova entità, inserisci l'indirizzo email del tuo account di servizio (SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com).

    5. Nell'elenco Seleziona un ruolo, seleziona il ruolo Account di servizio > Utente account di servizio.

    6. Fai clic su Salva.

gcloud

  1. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Scopri come verificare se la fatturazione è abilitata in un progetto.

  3. Abilitare le API Artifact Registry, Batch, Cloud Build, Esecuzioni dei flussi di lavoro di Compute Engine e Workflows.

    gcloud services enable artifactregistry.googleapis.com \
      batch.googleapis.com \
      cloudbuild.googleapis.com \
      compute.googleapis.com \
      workflowexecutions.googleapis.com \
      workflows.googleapis.com
    
  4. Crea un account di servizio per il tuo flusso di lavoro da utilizzare per l'autenticazione con altri servizi Google Cloud e assegna i ruoli appropriati.

    1. Crea l'account di servizio:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
      

      Sostituisci SERVICE_ACCOUNT_NAME con un nome per l'account di servizio.

    2. Concedi i ruoli all'account di servizio gestito dall'utente che hai creato nel passaggio precedente. Esegui il comando seguente una volta per ognuno dei seguenti ruoli IAM:

      • roles/batch.jobsEditor: per modificare job batch.
      • roles/logging.logWriter: per scrivere i log.
      • roles/storage.admin: per controllare le risorse Cloud Storage.
      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --role=ROLE
      

      Sostituisci quanto segue:

      • PROJECT_ID: l'ID progetto in cui hai creato l'account di servizio
      • ROLE: il ruolo da concedere
  5. Concedi il ruolo Utente account di servizio IAM per l'account di servizio predefinito all'account di servizio gestito dall'utente che hai creato nel passaggio precedente. Dopo aver abilitato l'API Compute Engine, l'account di servizio predefinito è l'account di servizio predefinito di Compute Engine (PROJECT_NUMBER-compute@developer.gserviceaccount.com) e l'autorizzazione viene in genere assegnata tramite il ruolo roles/iam.serviceAccountUser.

    PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format='value(projectNumber)')
    gcloud iam service-accounts add-iam-policy-binding \
      $PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
      --role=roles/iam.serviceAccountUser
    

Crea un repository Artifact Registry

Crea un repository per archiviare la tua immagine container Docker.

Console

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

    Vai a Repository

  2. Fai clic su Crea repository.

  3. Inserisci containers come nome del repository.

  4. In Formato, scegli Docker.

  5. In Tipo di località, scegli Regione.

  6. Nell'elenco Regione, seleziona us-central1.

  7. Fai clic su Crea.

gcloud

Esegui questo comando:

  gcloud artifacts repositories create containers \
    --repository-format=docker \
    --location=us-central1

Hai creato un repository Artifact Registry denominato containers nella regione us-central1. Per ulteriori informazioni sulle regioni supportate, consulta Località di Artifact Registry.

Recupera gli esempi di codice

Google Cloud archivia il codice sorgente dell'applicazione per questo tutorial in GitHub. Puoi clonare il repository o scaricare gli esempi.

  1. Clona il repository dell'app di esempio sulla tua macchina locale:

    git clone https://github.com/GoogleCloudPlatform/batch-samples.git
    

    In alternativa, puoi scaricare gli esempi nel file main.zip ed estrarlo.

  2. Passa alla directory che contiene il codice di esempio:

    cd batch-samples/primegen
    

Ora hai il codice sorgente per l'applicazione nel tuo ambiente di sviluppo.

Creare l'immagine Docker utilizzando Cloud Build

Dockerfile contiene le informazioni necessarie per creare un'immagine Docker utilizzando Cloud Build. Esegui questo comando per crearlo:

gcloud builds submit \
  -t us-central1-docker.pkg.dev/PROJECT_ID/containers/primegen-service:v1 PrimeGenService/

Sostituisci PROJECT_ID con l'ID progetto Google Cloud.

Al termine della build, dovresti vedere un output simile al seguente:

DONE
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ID: a54818cc-5d14-467b-bfda-5fc9590af68c
CREATE_TIME: 2022-07-29T01:48:50+00:00
DURATION: 48S
SOURCE: gs://project-name_cloudbuild/source/1659059329.705219-17aee3a424a94679937a7200fab15bcf.tgz
IMAGES: us-central1-docker.pkg.dev/project-name/containers/primegen-service:v1
STATUS: SUCCESS

Utilizzando un Dockerfile, hai creato un'immagine Docker denominata primegen-service e ne hai eseguito il push a un repository Artifact Registry denominato containers.

Esegui il deployment di un flusso di lavoro che pianifica ed esegue un job batch

Il seguente flusso di lavoro pianifica ed esegue un job batch che esegue un container Docker come sei attività in parallelo su due VM di Compute Engine. Il risultato è la generazione di sei batch di numeri primi, archiviati in un bucket Cloud Storage.

Console

  1. Nella console Google Cloud, vai alla pagina Flussi di lavoro.

    Vai a Workflows

  2. Fai clic su Crea.

  3. Inserisci un nome per il nuovo flusso di lavoro, ad esempio batch-workflow.

  4. Nell'elenco Regione, seleziona us-central1.

  5. Seleziona l'Account di servizio che hai creato in precedenza.

  6. Tocca Avanti.

  7. Nell'editor del flusso di lavoro, inserisci la definizione seguente per il flusso di lavoro:

    YAML

    main:
      params: [args]
      steps:
        - init:
            assign:
              - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
              - region: "us-central1"
              - imageUri: ${region + "-docker.pkg.dev/" + projectId + "/containers/primegen-service:v1"}
              - jobId: ${"job-primegen-" + string(int(sys.now()))}
              - bucket: ${projectId + "-" + jobId}
        - createBucket:
            call: googleapis.storage.v1.buckets.insert
            args:
              query:
                project: ${projectId}
              body:
                name: ${bucket}
        - logCreateBucket:
            call: sys.log
            args:
              data: ${"Created bucket " + bucket}
        - logCreateBatchJob:
            call: sys.log
            args:
              data: ${"Creating and running the batch job " + jobId}
        - createAndRunBatchJob:
            call: googleapis.batch.v1.projects.locations.jobs.create
            args:
                parent: ${"projects/" + projectId + "/locations/" + region}
                jobId: ${jobId}
                body:
                  taskGroups:
                    taskSpec:
                      runnables:
                        - container:
                            imageUri: ${imageUri}
                          environment:
                            variables:
                              BUCKET: ${bucket}
                    # Run 6 tasks on 2 VMs
                    taskCount: 6
                    parallelism: 2
                  logsPolicy:
                    destination: CLOUD_LOGGING
            result: createAndRunBatchJobResponse
        # You can delete the batch job or keep it for debugging
        - logDeleteBatchJob:
            call: sys.log
            args:
              data: ${"Deleting the batch job " + jobId}
        - deleteBatchJob:
            call: googleapis.batch.v1.projects.locations.jobs.delete
            args:
                name: ${"projects/" + projectId + "/locations/" + region + "/jobs/" + jobId}
            result: deleteResult
        - returnResult:
            return:
              jobId: ${jobId}
              bucket: ${bucket}

    JSON

    {
      "main": {
        "params": [
          "args"
        ],
        "steps": [
          {
            "init": {
              "assign": [
                {
                  "projectId": "${sys.get_env(\"GOOGLE_CLOUD_PROJECT_ID\")}"
                },
                {
                  "region": "us-central1"
                },
                {
                  "imageUri": "${region + \"-docker.pkg.dev/\" + projectId + \"/containers/primegen-service:v1\"}"
                },
                {
                  "jobId": "${\"job-primegen-\" + string(int(sys.now()))}"
                },
                {
                  "bucket": "${projectId + \"-\" + jobId}"
                }
              ]
            }
          },
          {
            "createBucket": {
              "call": "googleapis.storage.v1.buckets.insert",
              "args": {
                "query": {
                  "project": "${projectId}"
                },
                "body": {
                  "name": "${bucket}"
                }
              }
            }
          },
          {
            "logCreateBucket": {
              "call": "sys.log",
              "args": {
                "data": "${\"Created bucket \" + bucket}"
              }
            }
          },
          {
            "logCreateBatchJob": {
              "call": "sys.log",
              "args": {
                "data": "${\"Creating and running the batch job \" + jobId}"
              }
            }
          },
          {
            "createAndRunBatchJob": {
              "call": "googleapis.batch.v1.projects.locations.jobs.create",
              "args": {
                "parent": "${\"projects/\" + projectId + \"/locations/\" + region}",
                "jobId": "${jobId}",
                "body": {
                  "taskGroups": {
                    "taskSpec": {
                      "runnables": [
                        {
                          "container": {
                            "imageUri": "${imageUri}"
                          },
                          "environment": {
                            "variables": {
                              "BUCKET": "${bucket}"
                            }
                          }
                        }
                      ]
                    },
                    "taskCount": 6,
                    "parallelism": 2
                  },
                  "logsPolicy": {
                    "destination": "CLOUD_LOGGING"
                  }
                }
              },
              "result": "createAndRunBatchJobResponse"
            }
          },
          {
            "logDeleteBatchJob": {
              "call": "sys.log",
              "args": {
                "data": "${\"Deleting the batch job \" + jobId}"
              }
            }
          },
          {
            "deleteBatchJob": {
              "call": "googleapis.batch.v1.projects.locations.jobs.delete",
              "args": {
                "name": "${\"projects/\" + projectId + \"/locations/\" + region + \"/jobs/\" + jobId}"
              },
              "result": "deleteResult"
            }
          },
          {
            "returnResult": {
              "return": {
                "jobId": "${jobId}",
                "bucket": "${bucket}"
              }
            }
          }
        ]
      }
    }
    
  8. Fai clic su Esegui il deployment.

gcloud

  1. Crea un file di codice sorgente per il tuo flusso di lavoro:

    touch batch-workflow.JSON_OR_YAML
    

    Sostituisci JSON_OR_YAML con yaml o json a seconda del formato del tuo flusso di lavoro.

  2. In un editor di testo, copia il seguente flusso di lavoro nel file di codice sorgente:

    YAML

    main:
      params: [args]
      steps:
        - init:
            assign:
              - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
              - region: "us-central1"
              - imageUri: ${region + "-docker.pkg.dev/" + projectId + "/containers/primegen-service:v1"}
              - jobId: ${"job-primegen-" + string(int(sys.now()))}
              - bucket: ${projectId + "-" + jobId}
        - createBucket:
            call: googleapis.storage.v1.buckets.insert
            args:
              query:
                project: ${projectId}
              body:
                name: ${bucket}
        - logCreateBucket:
            call: sys.log
            args:
              data: ${"Created bucket " + bucket}
        - logCreateBatchJob:
            call: sys.log
            args:
              data: ${"Creating and running the batch job " + jobId}
        - createAndRunBatchJob:
            call: googleapis.batch.v1.projects.locations.jobs.create
            args:
                parent: ${"projects/" + projectId + "/locations/" + region}
                jobId: ${jobId}
                body:
                  taskGroups:
                    taskSpec:
                      runnables:
                        - container:
                            imageUri: ${imageUri}
                          environment:
                            variables:
                              BUCKET: ${bucket}
                    # Run 6 tasks on 2 VMs
                    taskCount: 6
                    parallelism: 2
                  logsPolicy:
                    destination: CLOUD_LOGGING
            result: createAndRunBatchJobResponse
        # You can delete the batch job or keep it for debugging
        - logDeleteBatchJob:
            call: sys.log
            args:
              data: ${"Deleting the batch job " + jobId}
        - deleteBatchJob:
            call: googleapis.batch.v1.projects.locations.jobs.delete
            args:
                name: ${"projects/" + projectId + "/locations/" + region + "/jobs/" + jobId}
            result: deleteResult
        - returnResult:
            return:
              jobId: ${jobId}
              bucket: ${bucket}

    JSON

    {
      "main": {
        "params": [
          "args"
        ],
        "steps": [
          {
            "init": {
              "assign": [
                {
                  "projectId": "${sys.get_env(\"GOOGLE_CLOUD_PROJECT_ID\")}"
                },
                {
                  "region": "us-central1"
                },
                {
                  "imageUri": "${region + \"-docker.pkg.dev/\" + projectId + \"/containers/primegen-service:v1\"}"
                },
                {
                  "jobId": "${\"job-primegen-\" + string(int(sys.now()))}"
                },
                {
                  "bucket": "${projectId + \"-\" + jobId}"
                }
              ]
            }
          },
          {
            "createBucket": {
              "call": "googleapis.storage.v1.buckets.insert",
              "args": {
                "query": {
                  "project": "${projectId}"
                },
                "body": {
                  "name": "${bucket}"
                }
              }
            }
          },
          {
            "logCreateBucket": {
              "call": "sys.log",
              "args": {
                "data": "${\"Created bucket \" + bucket}"
              }
            }
          },
          {
            "logCreateBatchJob": {
              "call": "sys.log",
              "args": {
                "data": "${\"Creating and running the batch job \" + jobId}"
              }
            }
          },
          {
            "createAndRunBatchJob": {
              "call": "googleapis.batch.v1.projects.locations.jobs.create",
              "args": {
                "parent": "${\"projects/\" + projectId + \"/locations/\" + region}",
                "jobId": "${jobId}",
                "body": {
                  "taskGroups": {
                    "taskSpec": {
                      "runnables": [
                        {
                          "container": {
                            "imageUri": "${imageUri}"
                          },
                          "environment": {
                            "variables": {
                              "BUCKET": "${bucket}"
                            }
                          }
                        }
                      ]
                    },
                    "taskCount": 6,
                    "parallelism": 2
                  },
                  "logsPolicy": {
                    "destination": "CLOUD_LOGGING"
                  }
                }
              },
              "result": "createAndRunBatchJobResponse"
            }
          },
          {
            "logDeleteBatchJob": {
              "call": "sys.log",
              "args": {
                "data": "${\"Deleting the batch job \" + jobId}"
              }
            }
          },
          {
            "deleteBatchJob": {
              "call": "googleapis.batch.v1.projects.locations.jobs.delete",
              "args": {
                "name": "${\"projects/\" + projectId + \"/locations/\" + region + \"/jobs/\" + jobId}"
              },
              "result": "deleteResult"
            }
          },
          {
            "returnResult": {
              "return": {
                "jobId": "${jobId}",
                "bucket": "${bucket}"
              }
            }
          }
        ]
      }
    }
    
  3. Esegui il deployment del flusso di lavoro inserendo il seguente comando:

    gcloud workflows deploy batch-workflow \
      --source=batch-workflow.yaml \
      --location=us-central1 \
      --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
    

    Sostituisci SERVICE_ACCOUNT_NAME con il nome dell'account di servizio che hai creato in precedenza.

Esegui il flusso di lavoro

L'esecuzione di un flusso di lavoro esegue l'attuale definizione del flusso di lavoro associata al flusso di lavoro.

Console

  1. Nella console Google Cloud, vai alla pagina Flussi di lavoro.

    Vai a Workflows

  2. Nella pagina Flussi di lavoro, fai clic sul flusso di lavoro batch-workflow per andare alla relativa pagina dei dettagli.

  3. Nella pagina Dettagli flusso di lavoro, fai clic su Esegui.

  4. Fai di nuovo clic su Execute (Esegui).

    L'esecuzione del flusso di lavoro dovrebbe richiedere alcuni minuti.

  5. Visualizza i risultati del flusso di lavoro nel riquadro Output.

    I risultati dovrebbero essere simili ai seguenti:

    {
      "bucket": "project-name-job-primegen-TIMESTAMP",
      "jobId": "job-primegen-TIMESTAMP"
    }
    

gcloud

  1. Esegui il flusso di lavoro:

    gcloud workflows run batch-workflow \
      --location=us-central1

    L'esecuzione del flusso di lavoro dovrebbe richiedere alcuni minuti.

  2. Puoi controllare lo stato di un'esecuzione a lunga esecuzione.

  3. Per ottenere lo stato dell'ultima esecuzione completata, esegui questo comando:

    gcloud workflows executions describe-last

    I risultati dovrebbero essere simili ai seguenti:

    name: projects/PROJECT_NUMBER/locations/us-central1/workflows/batch-workflow/executions/EXECUTION_ID
    result: '{"bucket":"project-name-job-primegen-TIMESTAMP","jobId":"job-primegen-TIMESTAMP"}'
    startTime: '2022-07-29T16:08:39.725306421Z'
    state: SUCCEEDED
    status:
      currentSteps:
      - routine: main
        step: returnResult
    workflowRevisionId: 000001-9ba
    

Elenco degli oggetti nel bucket di output

Puoi confermare che i risultati siano come previsto elencando gli oggetti nel bucket di output di Cloud Storage.

Console

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

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket di cui vuoi visualizzare il contenuto.

    I risultati dovrebbero essere simili ai seguenti, con sei file in totale e ciascuno contenente un gruppo di 10.000 numeri primi:

    primes-1-10000.txt
    primes-10001-20000.txt
    primes-20001-30000.txt
    primes-30001-40000.txt
    primes-40001-50000.txt
    primes-50001-60000.txt
    

gcloud

  1. Recupera il nome del bucket di output:

    gsutil ls

    L'output è simile al seguente:

    gs://PROJECT_ID-job-primegen-TIMESTAMP/

  2. Elenca gli oggetti nel bucket di output:

    gsutil ls -r gs://PROJECT_ID-job-primegen-TIMESTAMP/**

    Sostituisci TIMESTAMP con il timestamp restituito dal comando precedente.

    L'output dovrebbe essere simile al seguente, con sei file in totale e ciascuno contenente un gruppo di 10.000 numeri primi:

    gs://project-name-job-primegen-TIMESTAMP/primes-1-10000.txt
    gs://project-name-job-primegen-TIMESTAMP/primes-10001-20000.txt
    gs://project-name-job-primegen-TIMESTAMP/primes-20001-30000.txt
    gs://project-name-job-primegen-TIMESTAMP/primes-30001-40000.txt
    gs://project-name-job-primegen-TIMESTAMP/primes-40001-50000.txt
    gs://project-name-job-primegen-TIMESTAMP/primes-50001-60000.txt
    

Esegui la pulizia

Se hai creato un nuovo progetto per questo tutorial, elimina il progetto. Se hai utilizzato un progetto esistente e vuoi conservarlo senza le modifiche aggiunte in questo tutorial, elimina le risorse create per il tutorial.

Elimina il progetto

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

Per eliminare il progetto:

  1. Nella console Google Cloud, 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 del progetto e fai clic su Chiudi per eliminare il progetto.

Elimina le risorse create in questo tutorial

  1. Elimina il job batch:

    1. Innanzitutto, recupera il nome del job:

      gcloud batch jobs list --location=us-central1
      

      L'output dovrebbe essere simile al seguente:

      NAME: projects/project-name/locations/us-central1/jobs/job-primegen-TIMESTAMP
      STATE: SUCCEEDED
      

      Dove job-primegen-TIMESTAMP è il nome del job Batch.

    2. Elimina il job:

      gcloud batch jobs delete BATCH_JOB_NAME --location us-central1
      
  2. Elimina il flusso di lavoro:

    gcloud workflows delete WORKFLOW_NAME
    
  3. Elimina il repository del container:

    gcloud artifacts repositories delete REPOSITORY_NAME --location=us-central1
    
  4. Cloud Build usa Cloud Storage per archiviare le risorse di compilazione. Per eliminare un bucket Cloud Storage, consulta Eliminare i bucket.

Passaggi successivi