IBM Cloud Docs
Utilizzo di lavori ed esecuzioni di lavori

Utilizzo di lavori ed esecuzioni di lavori

Impara come eseguire lavori in IBM Cloud® Code Engine. Un lavoro esegue una o più istanze del codice eseguibile in parallelo. A differenza delle applicazioni, che gestiscono richieste HTTP, i lavori sono progettati per essere eseguiti una sola volta e uscire. Quando si crea un job, è possibile specificare le informazioni di configurazione del workload che vengono utilizzate ogni volta che il job viene eseguito.

Prima di iniziare

  • Comprendere i concetti di carichi di lavoro batch all'interno di Code Engine. Per ulteriori informazioni sui lavori batch, vedere Carico di lavoro dei lavori batch.
  • Pianificare e scegliere l'approccio per far funzionare il codice come componente di lavoro Code Engine. Per ulteriori informazioni sui tipi di carico di lavoro Code Engine da creare, vedere Pianificazione di Code Engine.
  • È possibile lavorare con i lavori e le esecuzioni di lavori in due modi:

Code Engine fornisce metodi CRD (custom resource definition). Per ulteriori informazioni, vedere i metodi CRD batch.

Come posso eseguire il mio codice come un componente del job Code Engine ?

Se il tuo codice esiste come origine in un file locale o in un repository Git o se il tuo codice è un'immagine del contenitore che esiste in un registro pubblico o privato, Code Engine ti fornisce un modo semplificato per eseguire il tuo codice come un lavoro.

  • Se hai un'immagine contenitore, secondo lo standard OCI(Open Container Initiative), devi fornire solo un riferimento all'immagine, che punta all'ubicazione del tuo registro del contenitore quando crei il tuo lavoro. Puoi creare il tuo lavoro dalle immagini in un registro pubblico o registro privato e quindi accedere all'immagine a cui si fa riferimento dalla tua esecuzione del lavoro.

  • Se inizi con il codice sorgente che si trova in un repository Git, puoi scegliere di puntare all'ubicazione della tua origine e Code Engine si occupa della creazione dell'immagine dalla tua origine e della creazione del lavoro con una singola operazione. In questo scenario, Code Engine carica la tua immagine in IBM Cloud® Container Registry. Per ulteriori informazioni, consultare Creazione di un lavoro dal codice sorgente del repository. Se vuoi più controllo sulla build della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di creare il tuo lavoro ed eseguirlo.

  • Se stai iniziando con il codice sorgente su una workstation locale, puoi scegliere di puntare all'ubicazione della tua origine e Code Engine si prende cura di creare l'immagine dalla tua origine e creare il lavoro con un singolo comando della CLI. In questo scenario, Code Engine carica la tua immagine in IBM Cloud® Container Registry. Per ulteriori informazioni, vedi Creazione del tuo lavoro dal codice sorgente locale con la CLI. Se vuoi più controllo sulla build della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di creare il tuo lavoro ed eseguirlo.

Dopo aver creato ed eseguito il lavoro, è possibile anche aggiornare il proprio lavoro utilizzando qualsiasi dei modi precedenti, indipendentemente da come è stato creato o precedentemente aggiornato il lavoro.

Quando si lavora con i lavori, tenere a mente le seguenti cose chiave.

  • A differenza delle immagini dell'applicazione, le immagini del lavoro non hanno un HTTP Server.
  • Il programma eseguibile nell'immagine deve uscire con un codice zero per essere considerato corretto.
  • La tua immagine può essere scaricata da un registro di immagini pubblico o privato. Per ulteriori informazioni, vedi Accesso ai registri del contenitore.

Quando esegui il lavoro, l'ultima versione della tua immagine del contenitore di riferimento viene utilizzata per l'esecuzione del lavoro, a meno che non venga specificata una tag per l'immagine. Se viene specificato un tag per l'immagine, l'immagine con tag viene utilizzata per l'esecuzione del lavoro.

Considerazioni per la gestione di HTTP

Quando gestisci i lavori (o le applicazioni), è utile essere consapevoli della gestione HTTP di base in Code Engine. Vedi Considerazioni per la gestione di HTTP

Opzioni per la creazione e l'esecuzione di un lavoro

Informazioni sulle opzioni che è possibile specificare quando si crea o si esegue il job. Tieni presente che le opzioni possono variare tra console e CLI.

Memoria e CPU per i lavori

Quando si distribuisce il proprio lavoro, è possibile specificare la quantità di memoria e la CPU che il lavoro può utilizzare. Queste quantità possono variare, a seconda che il tuo lavoro sia ad alta intensità di calcolo, ad alta intensità di memoria o bilanciato.

Per impostazione predefinita, al lavoro vengono assegnati 4 G di memoria e 1 vCPU. Per ulteriori informazioni sulla selezione di memoria e CPU, vedi Combinazioni di memoria e CPU supportate.

Creazione ed esecuzione di un lavoro con comandi e argomenti

È possibile definire i comandi e gli argomenti per il lavoro da utilizzare al runtime quando si crea o si esegue il lavoro.

Puoi aggiungere comandi e argomenti al tuo lavoro utilizzando la CLI o la console.

Per aggiungere comandi e argomenti tramite la console, utilizzare i campi Command e Arguments.

Per aggiungere comandi e argomenti utilizzando la CLI, aggiungi le opzioni --cmd e --args al tuo comando job create o al tuo comando jobrun submit.

Per ulteriori informazioni sulla definizione di comandi e argomenti, consultare Definizione di comandi e argomenti per i carichi di lavoro Code Engine.

Creazione ed esecuzione di un lavoro con variabili di ambiente

È possibile definire e impostare le variabili di ambiente come coppie chiave - valore che possono essere utilizzate dal lavoro al runtime.

Puoi definire le variabili di ambiente quando crei il tuo lavoro o quando aggiorni un lavoro esistente dalla console o con la CLI. È possibile creare variabili di ambiente per i lavori che fanno riferimento completamente a una mappa di configurazione (o a un segreto) o che fanno riferimento a singole chiavi in una mappa di configurazione (o a un segreto).

Per ulteriori informazioni sulla definizione delle variabili di ambiente, consultare Gestione delle variabili di ambiente.

Creazione ed esecuzione di un lavoro con segreti e configmap

In Code Engine, i segreti e le mappe di configurazione possono essere utilizzati dal lavoro utilizzando le variabili di ambiente.

Sia i segreti che le mappe di configurazione sono coppie chiave - valore. Quando associate alle variabili di ambiente, le relazioni NAME=VALUE sono impostate in modo che il nome della variabile di ambiente corrisponda alla "chiave" di ogni voce in tali mappe e il valore della variabile di ambiente sia il "valore" di tale chiave.

Il tuo lavoro può utilizzare le variabili di ambiente per fare riferimento completamente a una configmap (o a un segreto) o fare riferimento a singole chiavi in una configmap (o a un segreto).

Per ulteriori informazioni, vedi Riferimento ai segreti utilizzando le variabili di ambiente e Riferimento alle mappe di configurazione utilizzando le variabili di ambiente.

E se volessi che il mio lavoro venisse eseguito indefinitamente?

In genere, i lavori sono progettati per essere eseguiti una sola volta e per uscire con un tempo di esecuzione massimo.

Tuttavia, si supponga di voler eseguire costantemente il polling di un archivio dati di terzi. Puoi decidere di creare un'applicazione; tuttavia, la porta dell'applicazione deve rimanere aperta per gestire le richieste HTTP. Invece, se non vuoi soddisfare le richieste HTTP, puoi scegliere di creare un lavoro che viene eseguito senza un tempo di esecuzione massimo e non va in timeout.

Con Code Engine, puoi scegliere il mode del tuo lavoro. Per i lavori in cui si applica un tempo massimo di esecuzione, utilizzare la modalità task per i lavori. Le istanze non riuscite vengono riavviate per il limite di tentativi del lavoro. Questa modalità è il comportamento predefinito per i job.

Se si desidera creare un lavoro che può essere eseguito indefinitamente e non va in timeout, utilizzare la modalità daemon per i lavori. Le istanze non riuscite vengono riavviate automaticamente a tempo indeterminato.

Con Code Engine, paghi solo le risorse che utilizzi. Quando il lavoro viene eseguito in modalità daemon, tenere presente che il lavoro è sempre in esecuzione finché non si elimina il lavoro.

Per ulteriori informazioni, consultare Creazione ed esecuzione di un lavoro che viene eseguito a tempo indeterminato.

Considerazioni per le quote lavoro

Quando lavori con applicazioni, funzioni e lavori batch, tali risorse vengono eseguite nel contesto di un progetto Code Engine. Le quote di risorse vengono definite in base al progetto e vengono applicati limiti per applicazioni, funzioni e lavori batch.

Per ulteriori informazioni sui limiti di Code Engine, consulta Limiti e quote per Code Engine.

Pulizia dei lavori completati

I lavori completati vengono eliminati automaticamente dopo una settimana.

Passi successivi

Ora che hai familiarità con i concetti chiave di utilizzo dei lavori Code Engine, sei pronta a creare ed eseguire i lavori? Consulta

Per ulteriori informazioni su come lavorare con i lavori, vedere