Costruisci e crea un job Java in Cloud Run
Prima di iniziare
- 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 workload.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
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'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Creare un progetto Google Cloud :
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon 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_IDcon il nome del progetto Google Cloud .
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
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'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Creare un progetto Google Cloud :
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon 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_IDcon il nome del progetto Google Cloud .
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .
-
Abilita le API Cloud Run Admin e Cloud Build:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.gcloud services enable run.googleapis.com
cloudbuild.googleapis.com Una volta abilitata l'API Cloud Run Admin, viene creato automaticamente il account di servizio predefinito di Compute Engine.
- Consulta i prezzi di Cloud Run o stima i costi con il Calcolatore prezzi.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per completare questa guida rapida, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Cloud Run Admin (
roles/run.admin) sul progetto - Cloud Run Source Developer (
roles/run.sourceDeveloper) sul progetto - Service Account User (
roles/iam.serviceAccountUser) sull'identità di servizio - Visualizzatore log (
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.
Concedi al account di servizio Cloud Build l'accesso al tuo progetto
Cloud Build utilizza automaticamente l'account di servizio predefinito di Compute Engine come account di servizio Cloud Build predefinito per creare il codice sorgente e la risorsa Cloud Run, a meno che tu non esegua l'override di questo comportamento.
Affinché Cloud Build possa creare le tue origini, concedi al service account Cloud Build il ruolo Cloud Run Builder (roles/run.builder) nel tuo progetto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
Sostituisci PROJECT_ID con il tuo ID progetto Google Cloude SERVICE_ACCOUNT_EMAIL_ADDRESS con l'indirizzo email del account di servizio Cloud Build. Se utilizzi il service account predefinito di Compute Engine come service account Cloud Build, utilizza il seguente formato per l'indirizzo email dell'account di servizio:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Sostituisci PROJECT_NUMBER con il numero 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 di builder Cloud Run richiede un paio di minuti per la propagazione.
Scrittura del job di esempio
Per scrivere un job in Java:
Crea una nuova directory denominata
jobse passa a questa directory:mkdir jobs cd jobsIn una directory di sottodirectory denominata
src/main/java/com/example, crea un fileJobsExample.javaper il codice del job effettivo. Copia le seguenti righe di esempio al suo interno: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
CLOUD_RUN_TASK_INDEXintegrata. 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_COUNTintegrata 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_ATTEMPTintegrata, che contiene il numero di tentativi di ripetizione di questa 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 degli errori in modo da poter vedere come appaiono.
Crea un file
pom.xmlcon il seguente contenuto:Crea un file
project.tomlcon il seguente contenuto per la creazione con la versione di Java supportata da Buildpack:
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
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 quando hai creato e deployment
il 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 Elimina 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:
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 terminati tutti i job in esecuzione e tutte le istanze container in esecuzione.
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 al suo interno. Per rilasciare tutte le Google Cloud risorse nel progetto:
Elimina un progetto Google Cloud :
gcloud projects delete PROJECT_ID
Passaggi successivi
Per saperne di più sulla creazione di un container dal codice sorgente e sul push in un repository, consulta: