Costruisci e crea un job Node.js in Cloud Run
Prima di iniziare
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
Abilita l'API Cloud Run Admin e l'API Cloud Build:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com
Dopo aver abilitato l'API Cloud Run Admin, viene creato automaticamente l'account di servizio predefinito di Compute Engine.
- Concedi al account di servizio Cloud Build il seguente ruolo IAM.
Fai clic per visualizzare i ruoli richiesti per il account di servizio Cloud Build
Cloud Build utilizza automaticamente l'account di servizio predefinito di Compute Engine come service account Cloud Build predefinito per creare il codice sorgente e la risorsa Cloud Run, a meno che tu non esegua l'override di questo comportamento. Per consentire a Cloud Build di creare le tue origini, chiedi all'amministratore di concedere il ruolo Cloud Run Builder (
roles/run.builder
) al account di servizio predefinito di Compute Engine sul tuo progetto:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Sostituisci
PROJECT_NUMBER
con il numero del tuo progetto Google CloudePROJECT_ID
con l'ID del tuo progetto Google Cloud. Per istruzioni dettagliate su come trovare l'ID progetto e il numero di progetto, vedi Creazione e gestione dei progetti.La concessione del ruolo Cloud Run Builder all'account di servizio Compute Engine predefinito richiede un paio di minuti per la propagazione.
- Consulta i prezzi di Cloud Run o stima i costi con il Calcolatore prezzi.
Crea una nuova directory denominata
jobs
e accedi alla directory:mkdir jobs cd jobs
Crea un file
package.json
con i seguenti contenuti:Nella stessa directory, crea un file
index.js
per il codice del lavoro effettivo. Copia le seguenti righe di esempio:I job Cloud Run consentono agli utenti di specificare il numero di attività che il job deve eseguire. Questo codice campione mostra come utilizzare la variabile di ambiente integrata
CLOUD_RUN_TASK_INDEX
. Ogni attività rappresenta una copia in esecuzione del contenitore. Tieni presente che le attività vengono in genere eseguite in parallelo. L'utilizzo di più attività è utile se ogni attività può elaborare in modo indipendente un sottoinsieme dei tuoi dati.Ogni attività è consapevole del proprio indice, archiviato nella variabile di ambiente
CLOUD_RUN_TASK_INDEX
. La variabile di ambienteCLOUD_RUN_TASK_COUNT
integrata contiene il numero di attività fornite al momento dell'esecuzione del job tramite il parametro--tasks
.Il codice mostrato indica anche come riprovare le attività utilizzando la variabile di ambiente
CLOUD_RUN_TASK_ATTEMPT
integrata, che contiene il numero di tentativi di ripetizione di questa attività, a partire da 0 per il primo tentativo e aumentando di 1 per ogni tentativo successivo, fino a--max-retries
.Il codice consente anche di generare errori per testare i nuovi tentativi e generare log degli errori in modo da poter vedere come appaiono.
Crea un file
Procfile
con i seguenti contenuti:Nella console Google Cloud , vai a Cloud Run:
Individua il job che vuoi eliminare nell'elenco dei job e fai clic sulla relativa casella di controllo per selezionarlo.
Fai clic su Elimina. Vengono terminate tutte le esecuzioni dei job in corso e tutte le istanze dei container in esecuzione.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Scrittura del job di esempio
Per scrivere un job in Node.js:
Il codice è completo e pronto per essere inserito in un container.
Crea il container dei job, invialo ad Artifact Registry ed esegui il deployment in Cloud Run
Importante: questa guida rapida presuppone che tu disponga dei ruoli di proprietario o editor nel progetto che utilizzi per la guida rapida. In caso contrario, consulta il ruolo Sviluppatore origine Cloud Run per le autorizzazioni necessarie per il deployment di una risorsa Cloud Run dall'origine.
Questa guida rapida utilizza il deployment dal codice sorgente, che crea il container, lo carica in Artifact Registry ed esegue il deployment del job su Cloud Run:
gcloud run jobs deploy job-quickstart \ --source . \ --tasks 50 \ --set-env-vars SLEEP_MS=10000 \ --set-env-vars FAIL_RATE=0.1 \ --max-retries 5 \ --region REGION \ --project=PROJECT_ID
dove PROJECT_ID è l'ID progetto e REGION è la regione, ad esempio europe-west1
. Tieni presente che puoi
modificare i vari parametri con i valori che vuoi utilizzare per i
test. SLEEP_MS
simula il lavoro e FAIL_RATE
causa l'errore del X
% delle attività
in modo da poter sperimentare il parallelismo e il nuovo tentativo di esecuzione delle attività non riuscite.
Esegui un job in Cloud Run
Per eseguire il job che hai appena creato:
gcloud run jobs execute job-quickstart --region REGION
Sostituisci REGION con la regione che hai utilizzato durante la creazione e il deployment
del job, ad esempio europe-west1
.
Esegui la pulizia
Per evitare costi aggiuntivi al tuo account Google Cloud , elimina tutte le risorse che hai eseguito il deployment con questa guida rapida.
Eliminare il repository
Cloud Run addebita solo il tempo di esecuzione del job. Tuttavia, potresti comunque pagare l'archiviazione dell'immagine container in Artifact Registry. Per eliminare i repository Artifact Registry, segui i passaggi descritti in Eliminare i repository nella documentazione di Artifact Registry.
Eliminare il job
I job Cloud Run comportano costi solo quando viene eseguita un'attività del job. Per eliminare il job Cloud Run, segui uno di questi passaggi:
Console
Per eliminare un job:
gcloud
Per eliminare un job, esegui questo comando:
gcloud run jobs delete JOB_NAME
Sostituisci JOB_NAME
con il nome del job.
Eliminare il progetto di test
L'eliminazione del progetto Google Cloud interrompe la fatturazione per tutte le risorse del progetto. Per rilasciare tutte le Google Cloud risorse nel tuo progetto:
Passaggi successivi
Per saperne di più sulla creazione di un container dal codice sorgente e sul push in un repository, consulta: