Workflows consente di eseguire job Cloud Run come parte di un flusso di lavoro per eseguire elaborazioni di dati più complesse o orchestrare un sistema di job esistenti.
Questo tutorial mostra come utilizzare Workflows per eseguire un job Cloud Run che elabora i dati passati come variabili di ambiente al job, in risposta a un evento da Cloud Storage.
Tieni presente che puoi anche archiviare i dati sugli eventi in un bucket Cloud Storage, che ti consente di criptare i dati utilizzando le chiavi di crittografia gestite dal cliente. Per maggiori informazioni, consulta Eseguire un job Cloud Run che elabora i dati degli eventi salvati in Cloud Storage.
Obiettivi
In questo tutorial, imparerai a:
- Creare un job Cloud Run che elabora i file di dati in un bucket Cloud Storage.
- Esegui il deployment di un flusso di lavoro che:
- Accetta un evento Cloud Storage come argomento.
- Controlla se il bucket Cloud Storage specificato nell'evento è lo stesso utilizzato dal job Cloud Run.
- In questo caso, utilizza il connettore API Cloud Run Admin per eseguire il job Cloud Run.
- Creare un trigger Eventarc che esegue il flusso di lavoro in risposta agli eventi che interessano il bucket Cloud Storage.
- Per attivare il flusso di lavoro, aggiorna un file di dati di input nel bucket Cloud Storage.
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.
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
- 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 gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Artifact Registry, Cloud Build, Cloud Run, Cloud Storage, Eventarc, and Workflows.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the following roles to the service account: Cloud Run Admin, Eventarc Event Receiver, Logs Writer, Workflows Invoker.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Artifact Registry, Cloud Build, Cloud Run, Cloud Storage, Eventarc, and Workflows.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the following roles to the service account: Cloud Run Admin, Eventarc Event Receiver, Logs Writer, Workflows Invoker.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
- Prima di creare un trigger per eventi diretti da Cloud Storage, concedi il ruolo Publisher Pub/Sub (
roles/pubsub.publisher
) all'agente di servizio Cloud Storage:- Nella console Google Cloud, vai alla pagina IAM.
- Seleziona la casella di controllo Includi concessioni di ruoli fornite da Google.
- Nella colonna Entità, trova l'agente di servizio Cloud Storage con il formato
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
, quindi fai clic su Modifica entità nella riga corrispondente. - Fai clic su Aggiungi ruolo o Aggiungi un altro ruolo.
- Nell'elenco Seleziona un ruolo, filtra per Publisher Pub/Sub e seleziona il ruolo.
- Fai clic su Salva.
- Nella console Google Cloud, vai alla pagina IAM.
- Se hai abilitato l'agente di servizio Cloud Pub/Sub l'8 aprile 2021 o in una data precedente, per supportare le richieste push di Pub/Sub autenticate, concedi il ruolo Creatore token account di servizio (
roles/iam.serviceAccountTokenCreator
) all'agente di servizio. In caso contrario, questo ruolo viene concesso per impostazione predefinita:- Nella console Google Cloud, vai alla pagina IAM.
- Seleziona la casella di controllo Includi concessioni di ruoli fornite da Google.
- Nella colonna Nome, individua l'account di servizio Cloud Pub/Sub, quindi fai clic su Modifica entità nella riga corrispondente.
- Fai clic su Aggiungi ruolo o Aggiungi un altro ruolo.
- Nell'elenco Seleziona un ruolo, filtra per Creatore token account di servizio, quindi seleziona il ruolo.
- Fai clic su Salva.
- Nella console Google Cloud, vai alla pagina IAM.
-
Nella console Google Cloud, 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.
Cloud Shell supporta i comandi
/dev/urandom
in questo tutorial
che generano numeri pseudocasuali.
gcloud
Per utilizzare un terminale online con gcloud CLI già configurato, attiva Cloud Shell:
In fondo a questa pagina, viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. L'inizializzazione della sessione può richiedere alcuni secondi.
In questo tutorial Cloud Shell supporta i comandi
/dev/urandom
che generano numeri pseudocasuali.- Crea o seleziona un progetto Google Cloud.
-
Crea un progetto Google Cloud:
gcloud projects create PROJECT_ID
-
Seleziona il progetto Google Cloud che hai creato:
gcloud config set project PROJECT_ID
-
- Assicurati che la fatturazione sia abilitata per il tuo progetto Google Cloud.
- Abilita le Artifact Registry, Cloud Build,
Cloud Run, Cloud Storage, Eventarc,
and Workflows API:
gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com \ storage.googleapis.com \ workflows.googleapis.com
- Creare un account di servizio per il flusso di lavoro da utilizzare per l'autenticazione con altri servizi Google Cloud e assegnargli i ruoli appropriati.
- 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. - Concedi i ruoli all'account di servizio gestito dall'utente che hai creato nel passaggio precedente. Esegui il comando seguente una volta per ciascuno dei seguenti ruoli IAM oppure puoi utilizzare il flag
--role
più volte in un unico comando:roles/eventarc.eventReceiver
: per ricevere eventiroles/logging.logWriter
: per scrivere i logroles/run.admin
: per eseguire il job Cloud Runroles/workflows.invoker
: per richiamare i flussi di lavoro
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 servizioROLE
: il ruolo da concedere all'account di servizio gestito dall'utente
- Crea l'account di servizio:
- Prima di creare un trigger per eventi diretti da Cloud Storage, concedi il ruolo Publisher Pub/Sub (
roles/pubsub.publisher
) all'agente di servizio Cloud Storage:SERVICE_ACCOUNT="$(gsutil kms serviceaccount -p PROJECT_ID)" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role='roles/pubsub.publisher'
- Se hai abilitato l'agente di servizio Cloud Pub/Sub entro l'8 aprile 2021 per supportare le richieste push di Pub/Sub autenticate, concedi il ruolo Creatore token account di servizio (
roles/iam.serviceAccountTokenCreator
) all'agente di servizio. In caso contrario, questo ruolo viene concesso per impostazione predefinita:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
Sostituisci PROJECT_NUMBER
con il numero del tuo progetto Google Cloud. Puoi trovare il numero del tuo progetto nella pagina Ti diamo il benvenuto della console Google Cloud o eseguendo questo comando:
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Terraform
Per utilizzare un terminale online con gcloud CLI già configurato, attiva Cloud Shell:
In fondo a questa pagina, viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. L'inizializzazione della sessione può richiedere alcuni secondi.
In questo tutorial Cloud Shell supporta i comandi
/dev/urandom
che generano numeri pseudocasuali.- Crea o seleziona un progetto Google Cloud.
-
Crea un progetto Google Cloud:
gcloud projects create PROJECT_ID
-
Seleziona il progetto Google Cloud che hai creato:
gcloud config set project PROJECT_ID
-
- Assicurati che la fatturazione sia abilitata per il tuo progetto Google Cloud.
- Abilita le Artifact Registry, Cloud Build,
Cloud Run, Cloud Storage, Eventarc,
and Workflows API:
gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com \ storage.googleapis.com \ workflows.googleapis.com
Creare un account di servizio per il flusso di lavoro da utilizzare per l'autenticazione con altri servizi Google Cloud e assegnargli i ruoli appropriati. Inoltre, per supportare gli eventi diretti da Cloud Storage, concedi il ruolo Publisher Pub/Sub (
roles/pubsub.publisher
) all'agente di servizio Cloud Storage.Modifica il file
main.tf
come mostrato nell'esempio seguente. Per maggiori informazioni, consulta la documentazione del provider Google per Terraform.Per scoprire come applicare o rimuovere una configurazione Terraform, vedi Comandi Terraform di base.
Tieni presente che in un tipico flusso di lavoro Terraform, l'intero piano viene applicato una volta sola. Tuttavia, ai fini di questo tutorial, puoi scegliere come target una risorsa specifica. Ad esempio:
terraform apply -target="google_service_account.workflows"
- Se hai abilitato l'agente di servizio Cloud Pub/Sub entro l'8 aprile 2021 per supportare le richieste push di Pub/Sub autenticate, concedi il ruolo Creatore token account di servizio (
roles/iam.serviceAccountTokenCreator
) all'agente di servizio. In caso contrario, questo ruolo viene concesso per impostazione predefinita:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
Sostituisci PROJECT_NUMBER
con il numero del tuo progetto Google Cloud. Puoi trovare il numero del tuo progetto nella pagina Ti diamo il benvenuto della console Google Cloud o eseguendo questo comando:
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Crea un job Cloud Run
Questo tutorial utilizza un job Cloud Run di esempio da GitHub. Il job legge i dati da un file di input in Cloud Storage ed esegue un'elaborazione arbitraria per ogni riga del file.
Recupera il codice campione clonando il repository dell'app di esempio nella tua macchina locale:
git clone https://github.com/GoogleCloudPlatform/jobs-demos.git
In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.
Passa alla directory che contiene il codice di esempio:
cd jobs-demos/parallel-processing
Crea un bucket Cloud Storage per archiviare un file di input che può essere scritto e attivare un evento:
Console
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
- Fai clic su aggiungi Crea.
- Nella pagina Crea un bucket, inserisci un nome per il bucket:
input-PROJECT_ID
SostituisciPROJECT_ID
con l'ID del tuo progetto Google Cloud. - Mantieni le altre impostazioni predefinite.
- Fai clic su Crea.
gcloud
Esegui il comando
gcloud storage buckets create
:gcloud storage buckets create gs://input-PROJECT_ID
Se la richiesta ha esito positivo, il comando restituisce il seguente messaggio:
Creating gs://input-PROJECT_ID/...
Terraform
Per creare un bucket Cloud Storage, utilizza la risorsa
google_storage_bucket
e modifica il filemain.tf
come mostrato nell'esempio seguente.Per scoprire come applicare o rimuovere una configurazione Terraform, vedi Comandi Terraform di base.
Tieni presente che in un tipico flusso di lavoro Terraform, viene applicato l'intero piano contemporaneamente. Tuttavia, ai fini di questo tutorial, puoi scegliere come target una risorsa specifica. Ad esempio:
terraform apply -target="random_id.bucket_name_suffix"
e
terraform apply -target="google_storage_bucket.default"
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
Crea un repository standard Artifact Registry in cui archiviare la tua immagine container:
Console
Nella console Google Cloud, vai alla pagina Repository di Artifact Registry:
Fai clic su
Crea repository.Inserisci un nome per il repository, ad esempio
my-repo
. Per ogni località del repository in un progetto, i nomi dei repository devono essere univoci.Conserva il formato predefinito, che dovrebbe essere Docker.
Mantieni la modalità predefinita, che deve essere Standard.
Come regione, seleziona us-central1 (Iowa)
Conserva tutte le altre impostazioni predefinite.
Fai clic su Crea.
gcloud
Esegui il comando:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=us-central1
Sostituisci
REPOSITORY
con un nome univoco per il repository, ad esempiomy-repo
. Per ogni posizione del repository in un progetto, i nomi dei repository devono essere univoci.Terraform
Per creare un repository Artifact Registry, utilizza la risorsa
google_artifact_registry_repository
e modifica il filemain.tf
come mostrato nell'esempio seguente.Tieni presente che in un tipico flusso di lavoro Terraform, l'intero piano viene applicato una volta sola. Tuttavia, ai fini di questo tutorial, puoi scegliere come target una risorsa specifica. Ad esempio:
terraform apply -target="google_artifact_registry_repository.default"
Crea l'immagine container utilizzando un buildpack di Google Cloud predefinito:
export SERVICE_NAME=parallel-job gcloud builds submit \ --pack image=us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/${SERVICE_NAME}
Sostituisci
REPOSITORY
con il nome del tuo repository Artifact Registry.Il completamento della build può richiedere un paio di minuti.
Crea un job Cloud Run che esegue il deployment dell'immagine container:
Console
Nella console Google Cloud, vai alla pagina Cloud Run:
Fai clic su Crea job per visualizzare il modulo Crea job.
- Nel modulo, seleziona
us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/parallel-job:latest
come URL dell'immagine container di Artifact Registry. - (Facoltativo) Per il nome del job, inserisci
parallel-job
. - (Facoltativo) Per la regione, seleziona us-central1 (Iowa)
- Per il numero di attività da eseguire nel job, inserisci
10
. Tutte le attività devono avere esito positivo affinché il job abbia esito positivo. Per impostazione predefinita, le attività vengono eseguite in parallelo.
- Nel modulo, seleziona
Espandi la sezione Container, variabili e secret, connessioni, sicurezza e conserva tutti i valori predefiniti, ad eccezione delle seguenti impostazioni:
Fai clic sulla scheda Generale.
- Per il comando container, inserisci
python
. - Per l'argomento container, inserisci
process.py
.
- Per il comando container, inserisci
Fai clic sulla scheda Variabili e secret.
- Fai clic su Aggiungi variabile e inserisci
INPUT_BUCKET
per il nome einput-PROJECT_ID
per il valore. - Fai clic su Aggiungi variabile e inserisci
INPUT_FILE
per il nome einput_file.txt
per il valore.
- Fai clic su Aggiungi variabile e inserisci
Per creare il job, fai clic su Crea.
gcloud
Imposta la regione Cloud Run predefinita:
gcloud config set run/region us-central1
Crea il job Cloud Run:
gcloud run jobs create parallel-job \ --image us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/parallel-job:latest \ --command python \ --args process.py \ --tasks 10 \ --set-env-vars=INPUT_BUCKET=input-PROJECT_ID,INPUT_FILE=input_file.txt
Tieni presente che se non specifichi un tag immagine, Artifact Registry cerca l'immagine con il tag
latest
predefinito.Per un elenco completo delle opzioni disponibili per la creazione di un job, consulta la documentazione della riga di comando gcloud run job create.
Una volta creato il job, dovrebbe essere visualizzato un messaggio che indica l'esito positivo.
Terraform
Per creare un job Cloud Run, utilizza la risorsa
google_cloud_run_v2_job
e modifica il filemain.tf
come mostrato nell'esempio seguente.Tieni presente che in un tipico flusso di lavoro Terraform, l'intero piano viene applicato una volta sola. Tuttavia, ai fini di questo tutorial, puoi scegliere come target una risorsa specifica. Ad esempio:
terraform apply -target="google_cloud_run_v2_job.default"
Esegui il deployment di un flusso di lavoro che esegue il job Cloud Run
Definisci ed esegui il deployment di un flusso di lavoro che esegue il job Cloud Run appena creato. Una definizione di flusso di lavoro è composta da una serie di passaggi descritti utilizzando la sintassi di Workflows.
Console
Nella console Google Cloud, vai alla pagina Workflows:
Fai clic su
Crea.Inserisci un nome per il nuovo flusso di lavoro, ad esempio
cloud-run-job-workflow
.Come regione, seleziona us-central1 (Iowa)
Nel campo Account di servizio, seleziona l'account di servizio che hai creato in precedenza.
L'account di servizio funge da identità del flusso di lavoro. Dovresti aver già concesso il ruolo Amministratore Cloud Run all'account di servizio in modo che il flusso di lavoro possa eseguire il job Cloud Run.
Fai clic su Avanti.
Nell'editor del flusso di lavoro, inserisci la seguente definizione per il tuo flusso di lavoro:
Fai clic su Esegui il deployment.
gcloud
Crea un file di codice sorgente per il tuo flusso di lavoro:
touch cloud-run-job-workflow.yaml
Copia la seguente definizione di flusso di lavoro nel file del codice sorgente:
Esegui il deployment del flusso di lavoro inserendo il comando seguente:
gcloud workflows deploy cloud-run-job-workflow \ --location=us-central1 \ --source=cloud-run-job-workflow.yaml \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Sostituisci quanto segue:
SERVICE_ACCOUNT_NAME
: il nome dell'account di servizio che hai creato in precedenzaPROJECT_ID
: l'ID del tuo progetto Google Cloud
L'account di servizio funge da identità del flusso di lavoro. Dovresti aver già concesso il ruolo
roles/run.admin
all'account di servizio in modo che il flusso di lavoro possa eseguire il job Cloud Run.
Terraform
Per creare un flusso di lavoro, utilizza la risorsa google_workflows_workflow
e modifica il file main.tf
come mostrato nell'esempio seguente.
Per scoprire come applicare o rimuovere una configurazione Terraform, vedi Comandi Terraform di base.
Tieni presente che in un tipico flusso di lavoro Terraform, viene applicato l'intero piano contemporaneamente. Tuttavia, ai fini di questo tutorial, puoi scegliere come target una risorsa specifica. Ad esempio:
terraform apply -target="google_workflows_workflow.default"
Il flusso di lavoro effettua le seguenti operazioni:
Passaggio
init
: accetta un evento Cloud Storage come argomento, quindi imposta le variabili necessarie.Passaggio
check_input_file
: controlla se il bucket Cloud Storage specificato nell'evento è il bucket utilizzato dal job Cloud Run.- In caso affermativo, il flusso di lavoro procede al passaggio
run_job
. - In caso contrario, il flusso di lavoro termina e si interrompe ogni ulteriore elaborazione.
- In caso affermativo, il flusso di lavoro procede al passaggio
Passaggio
run_job
: utilizza il metodogoogleapis.run.v1.namespaces.jobs.run
del connettore dell'API Cloud Run Admin per eseguire il job. I nomi dei file di dati e dei bucket Cloud Storage vengono passati come variabili di override dal flusso di lavoro al job.Passaggio
finish
: restituisce informazioni sull'esecuzione del job derivanti dal flusso di lavoro.
Crea un trigger Eventarc per il flusso di lavoro
Per eseguire automaticamente il flusso di lavoro e, a sua volta, il job Cloud Run ogni volta che il file di dati di input viene aggiornato, crea un trigger Eventarc che risponda agli eventi di Cloud Storage nel bucket contenente il file di dati di input.
Console
Nella console Google Cloud, vai alla pagina Workflows:
Fai clic sul nome del flusso di lavoro, ad esempio
cloud-run-job-workflow
.Nella pagina Dettagli flusso di lavoro, fai clic su
Modifica.Nella pagina Modifica flusso di lavoro, nella sezione Trigger, fai clic su Aggiungi nuovo trigger > Eventarc.
Si apre il riquadro Trigger Eventarc.
Nel campo Nome trigger, inserisci un nome per l'attivatore, ad esempio
cloud-run-job-workflow-trigger
.Dall'elenco Provider di eventi, seleziona Cloud Storage.
Dall'elenco Evento, seleziona google.cloud.storage.object.v1.finalized.
Nel campo Bucket, seleziona il bucket contenente il file di dati di input. Il nome del bucket è nel formato
input-PROJECT_ID
.Nel campo Account di servizio, seleziona l'account di servizio che hai creato in precedenza.
L'account di servizio funge da identità del trigger. Dovresti aver già concesso i ruoli seguenti all'account di servizio:
- Ricevitore eventi Eventarc: per ricevere gli eventi
- Invoker dei flussi di lavoro: per eseguire flussi di lavoro
Fai clic su Salva trigger.
Il trigger Eventarc viene ora visualizzato nella sezione Trigger della pagina Modifica flusso di lavoro.
Fai clic su Avanti.
Fai clic su Esegui il deployment.
gcloud
Crea un trigger Eventarc eseguendo questo comando:
gcloud eventarc triggers create cloud-run-job-workflow-trigger \ --location=us \ --destination-workflow=cloud-run-job-workflow \ --destination-workflow-location=us-central1 \ --event-filters="type=google.cloud.storage.object.v1.finalized" \ --event-filters="bucket=input-PROJECT_ID" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Sostituisci quanto segue:
PROJECT_ID
: l'ID del tuo progetto Google CloudSERVICE_ACCOUNT_NAME
: il nome dell'account di servizio che hai creato in precedenza.
L'account di servizio funge da identità del trigger. Dovresti aver già concesso i ruoli seguenti all'account di servizio:
roles/eventarc.eventReceiver
: per ricevere eventiroles/workflows.invoker
: per eseguire flussi di lavoro
Terraform
Per creare un trigger, utilizza la risorsa google_eventarc_trigger
e modifica il file main.tf
come mostrato nell'esempio seguente.
Per scoprire come applicare o rimuovere una configurazione Terraform, vedi Comandi Terraform di base.
Tieni presente che in un tipico flusso di lavoro Terraform, viene applicato l'intero piano contemporaneamente. Tuttavia, ai fini di questo tutorial, puoi scegliere come target una risorsa specifica. Ad esempio:
terraform apply -target="google_eventarc_trigger.default"
Ogni volta che un file viene caricato o sovrascritto nel bucket Cloud Storage contenente il file dei dati di input, il flusso di lavoro viene eseguito con l'evento Cloud Storage corrispondente come argomento.
Attiva il flusso di lavoro
Testa il sistema end-to-end aggiornando il file di dati di input in Cloud Storage.
Genera nuovi dati per il file di input e caricalo in Cloud Storage nella posizione prevista dal job Cloud Run:
base64 /dev/urandom | head -c 100000 >input_file.txt gsutil cp input_file.txt gs://input-PROJECT_ID/input_file.txt
Se hai creato un bucket Cloud Storage utilizzando Terraform, puoi recuperare il nome del bucket eseguendo questo comando:
gcloud storage buckets list gs://input*
L'esecuzione del job Cloud Run può richiedere alcuni minuti.
Verifica che il job Cloud Run sia stato eseguito come previsto visualizzando le esecuzioni del job:
gcloud config set run/region us-central1 gcloud run jobs executions list --job=parallel-job
Nell'output dovresti vedere un'esecuzione del job riuscita, a indicare che
10/10
attività sono state completate.
Scopri di più su come attivare un flusso di lavoro con eventi o messaggi Pub/Sub.
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 è quello di eliminare il progetto che hai creato per il tutorial.
Per eliminare il progetto:
- Nella console Google Cloud, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.
Elimina le risorse del tutorial
Elimina le risorse che hai creato in questo tutorial:
Elimina il trigger Eventarc:
gcloud eventarc triggers delete cloud-run-job-workflow-trigger --location=us
Elimina il flusso di lavoro:
gcloud workflows delete cloud-run-job-workflow --location=us-central1
Elimina il job Cloud Run:
gcloud run jobs delete parallel-job
Elimina il bucket Cloud Storage creato per i dati di input:
gcloud storage rm --recursive gs://input-PROJECT_ID/
Elimina il repository Artifact Registry:
gcloud artifacts repositories delete REPOSITORY --location=us-central1