Crea e crea un job Go 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.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
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, l'account di servizio predefinito di Compute Engine viene creato automaticamente.
- Affinché Cloud Build sia in grado di creare le tue origini, concedi il parametro
Account di servizio Cloud Build
all'account di servizio predefinito di Compute Engine eseguendo questo comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/cloudbuild.builds.builder
Sostituisci
PROJECT_NUMBER
con il numero di progetto Google Cloud ePROJECT_ID
con l'ID progetto Google Cloud. Per istruzioni dettagliate su come trovare l'ID e il numero del progetto, consulta la sezione Creazione di e gestione dei progetti.La propagazione del ruolo dell'account di servizio Cloud Build all'account di servizio predefinito di Compute Engine richiede un paio di minuti.
Scrittura del job di esempio
Per scrivere un job in Go:
Crea una nuova directory denominata
jobs
e cambia directory al suo interno:mkdir jobs cd jobs
Nella stessa directory, crea un file
main.go
per il codice del job effettivo. Copia le seguenti righe di esempio:I job Cloud Run consentono agli utenti di specificare il numero di attività da eseguire. Questo codice campione mostra come utilizzare l'
CLOUD_RUN_TASK_INDEX
integrata variabile di ambiente. Ogni attività rappresenta una copia in esecuzione del contenitore. Tieni presente che di solito le attività vengono eseguite in parallelo. Utilizzare più attività è utile se ogni attività può elaborare in modo indipendente un sottoinsieme dei tuoi dati.Ogni attività è a conoscenza del proprio indice, archiviato nel
CLOUD_RUN_TASK_INDEX
variabile di ambiente. 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 mostra anche come ripetere le attività utilizzando la variabile di ambiente
CLOUD_RUN_TASK_ATTEMPT
integrata, che contiene il numero di volte in cui è stata ripetuta l'attività, a partire da 0 per il primo tentativo e incrementando 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 di errore per vedere come si presentano.
Crea un file
go.mod
con il seguente contenuto:
Il codice è completo e pronto per essere pacchettizzato in un contenitore.
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 stai utilizzando per la guida rapida. In caso contrario, consulta il ruolo Sviluppatore origine Cloud Run per le autorizzazioni richieste per il deployment di una risorsa Cloud Run dall'origine.
Questa guida rapida utilizza il deployment dall'origine, che crea il container, lo carica in Artifact Registry ed esegue il deployment del job in 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 è il tuo
regione, ad esempio us-central1
. Tieni presente che puoi modificare
i vari parametri ai valori che vuoi utilizzare per i tuoi test.
SLEEP_MS
simula il lavoro e FAIL_RATE
fa sì che X
% delle attività non vada a buon fine, quindi
possono sperimentare il parallelismo e ritentare le attività non riuscite.
Esegui un job in Cloud Run
Per eseguire il job appena creato:
gcloud run jobs execute job-quickstart --region REGION
Sostituisci REGION con la regione utilizzata al momento della creazione e del deployment
del job, ad esempio us-central1
.
Passaggi successivi
Per saperne di più sulla creazione di un container dall'origine di codice e sul push a un repository, consulta: