Esecuzione e aggiornamento dei lavori

Con questa esercitazione, si esegue un lavoro batch utilizzando la console IBM Cloud® Code Engine.

Un lavoro esegue una o più istanze del codice eseguibile in parallelo. A differenza delle applicazioni, che gestiscono le richieste HTTP, i lavori sono progettati per essere eseguiti una sola volta e poi terminare. 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

Per ulteriori informazioni sui lavori batch, vedere Carico di lavoro dei lavori batch.

Per utilizzare la console Code Engine, vai alla Panoramica diCode Engine.

Tutti gli utenti di Code Engine devono avere un account Pay-as-you-Go. Le esercitazioni potrebbero comportare dei costi. Utilizza lo Strumento di stima dei costi per generare una stima dei costi in base al tuo utilizzo previsto. Per ulteriori informazioni, consultare il sito Code Engine.

Creazione di un lavoro

Creare un lavoro Code Engine utilizzando l'immagine icr.io/codeengine/helloworld. Questo lavoro stampa Hello from helloworld! I'm a task job!.

  1. Apri la pagina della panoramica di Code Engine.
  2. Seleziona " Inizia a creare ".
  3. Seleziona un progetto dall'elenco dei progetti disponibili. È anche possibile crearne uno nuovo. Per creare un job, è necessario disporre di un progetto selezionato.
  4. Selezionare Lavoro.
  5. Immettere un nome per il lavoro e specificare icr.io/codeengine/helloworld per l'immagine del contenitore. Assegna al tuo lavoro un nome che sia univoco all'interno del progetto. Per questo esempio, non è necessario modificare i valori predefiniti per le variabili di ambiente o le impostazioni di runtime. Per ulteriori informazioni sul codice utilizzato per questo esempio, consultare helloworld.
  6. Fai clic su Crea.

Esecuzione di un lavoro

Una volta creato il job e specificate le informazioni di configurazione del workload, è possibile eseguire il job. È possibile sovrascrivere alcune informazioni di configurazione.

Tieni presente che quando esegui il tuo lavoro, viene scaricata e distribuita l'ultima versione della tua immagine del contenitore di riferimento, a meno che non specifichi una tag per l'immagine. Se viene specificato un tag per l'immagine, l'immagine con tag viene utilizzata per il lavoro.

  1. Passare alla propria pagina di lavoro.

    1. Nella pagina "Progetti" di Code Engine, clicca sul nome del tuo progetto.
    2. Fare clic su "Lavori", quindi sulla scheda "Lavori".
    3. Fai clic sul nome del processo che desideri eseguire.
  2. Dalla pagina del lavoro, fare clic su Inoltra lavoro per inoltrare un lavoro basato sulla configurazione corrente.

  3. Nel riquadro "Invia lavoro", accettare tutti i valori predefiniti e fare clic su Invia lavoro per eseguire il lavoro.

Dal riquadro "Submit job" (Invia lavoro), è possibile rivedere e facoltativamente modificare i valori di configurazione predefiniti, quali istanze, CPU, memoria, numero di tentativi di lavoro e timeout del lavoro. È possibile specificare la dimensione della matrice o gli indici della matrice per le istanze di lavoro parallelo da eseguire. Per Dimensione array, fornire il numero di istanze da eseguire in parallelo per questo lavoro. Per gli indici della matrice, fornire un elenco separato da virgole per l'insieme di indici personalizzati. Ad esempio, per eseguire questo lavoro con un set personalizzato di indici 5, specificare 3,12-14,25. È anche possibile specificare un valore personalizzato per la dimensione dell'array del lavoro, che aggiorna il valore della variabile di ambiente JOB_ARRAY_SIZE inserita automaticamente. Dopo aver inoltrato questo lavoro, il sistema visualizza lo stato delle istanze del proprio lavoro nella pagina Dettagli lavoro. Se si specificano le dimensioni della matrice invece degli indici della matrice nel riquadro "Invia lavoro", dalla sezione Configuration della pagina dei dettagli del lavoro, queste informazioni vengono fornite come indici della matrice.

Accesso ai dettagli del lavoro

Trova dettagli sul tuo lavoro.

Dopo aver inoltrato il lavoro, i risultati dell'esecuzione del lavoro specifico sono disponibili nella console dalla pagina Dettagli esecuzione lavoro. Dalla console, è anche possibile visualizzare i dettagli del lavoro e le esecuzioni di lavori specifici dalla pagina Lavori.

  • Per visualizzare i dettagli del lavoro, fare clic sulla scheda Lavori e fare clic sul nome del lavoro che si desidera utilizzare.
  • Per visualizzare i dettagli per una specifica esecuzione lavoro, fare clic sulla scheda Esecuzioni lavoro e fare clic sul nome dell'esecuzione lavoro che si desidera utilizzare.

Se l'esecuzione di una qualsiasi istanza del lavoro non è andata a buon fine, si possono intraprendere le seguenti azioni:

  1. Fare clic su Esegui indici non riusciti per eseguire nuovamente il lavoro per gli indici non riusciti. Dal riquadro Submit job (Invia lavoro), rivedere e facoltativamente modificare i valori di configurazione, compresi gli indici della matrice. La sezione Indici array elenca automaticamente gli indici delle istanze di esecuzione del lavoro fallite.

Per la risoluzione degli errori più comuni dell'indice di esecuzione del lavoro, vedere Capire perché gli indici di esecuzione del lavoro possono fallire.

  1. Fare clic su Invia lavoro per inviare il lavoro per gli indici non riusciti.

È possibile visualizzare i log del job dopo aver aggiunto le capacità di registrazione. Per ulteriori informazioni, vedi Visualizzazione dei log dei lavori dalla console.

Aggiornamento di un lavoro

È possibile gestire il lavoro mettendo a punto la configurazione del lavoro, che comprende l'aggiornamento del codice, dell'immagine del contenitore, degli argomenti o dei comandi del codice, delle risorse dell'istanza di runtime o delle variabili d'ambiente.

Quando il lavoro è in uno stato pronto, è possibile aggiornare il lavoro. Aggiorniamo il lavoro creato in precedenza per modificare l'output delle variabili di saluto e di ambiente aggiornando una variabile di ambiente. Quando viene inviata una richiesta al lavoro di esempio icr.io/codeengine/helloworld, il lavoro legge la variabile d'ambiente TARGET e stampa "Hello ${TARGET}!". Se questa variabile di ambiente è vuota, viene restituito "Hello World!". Per ulteriori informazioni sul codice utilizzato per questo esempio, vedere helloworld.

  1. Passare alla propria pagina di lavoro.

    1. Nella pagina "Progetti" di Code Engine, clicca sul nome del tuo progetto.
    2. Fare clic su "Lavori", quindi sulla scheda "Lavori".
    3. Fai clic sul nome del lavoro che desideri aggiornare.
  2. Dalla scheda Configuration> Environment variables, fai clic su Add environment variable. Aggiungere una variabile di ambiente letterale con il nome TARGET con il valore Sunshine. icr.io/codeengine/helloworld emette il messaggio, Hello <value_of_TARGET>!>.

  3. Fare clic su Aggiungi per aggiungere la variabile d'ambiente.

  4. Fai clic su Deploy.

  5. Fare clic su Inoltra lavoro.

  6. Dal riquadro Inoltra lavoro, esaminare e, facoltativamente, modificare i valori di configurazione predefiniti come le istanze, la CPU, la memoria, il numero di tentativi del lavoro e il timeout del lavoro. È possibile specificare la dimensione della matrice o gli indici della matrice per le istanze di lavoro parallelo da eseguire. Per Dimensione array, fornire il numero di istanze da eseguire in parallelo per questo lavoro. Per gli indici della matrice, fornire un elenco separato da virgole per l'insieme di indici personalizzati. Ad esempio, per eseguire questo lavoro con un set personalizzato di indici 5, specificare 3,12-14,25. Fare di nuovo clic su Inoltra lavoro per eseguire il lavoro. Il sistema visualizza lo stato delle istanze del lavoro nella pagina Dettagli lavoro.

  7. visualizzando i log dei lavori dalla console per questo lavoro, l'output del lavoro è Hello Sunshine!.

Passi successivi

  • Dopo aver creato il lavoro, inoltrare il lavoro per eseguirlo. Vedere Esecuzione di un lavoro. È possibile eseguire il lavoro più volte.

  • Dopo aver eseguito il lavoro, per visualizzare i dettagli del lavoro e delle esecuzioni del lavoro, consultare dettagli del lavoro di accesso.

  • Ora che il tuo lavoro è stato creato, considera di rendere i tuoi lavori guidati da eventi. Utilizzando le sottoscrizioni agli eventi, puoi attivare i tuoi lavori mediante pianificazioni periodiche o impostare il lavoro in modo che reagisca agli eventi come i caricamenti di file.

  • È possibile aggiornare il lavoro e il relativo codice di riferimento in qualsiasi dei seguenti modi, indipendentemente dal modo in cui è stato creato o precedentemente aggiornato il lavoro.

    • Se hai un'immagine del contenitore, in base allo standard OCI(Open Container Initiative), devi fornire solo un riferimento all'immagine, che punta all'ubicazione del tuo registro del contenitore quando crei (o aggiorni) il tuo lavoro. Puoi creare (o aggiornare) il tuo lavoro dalle immagini in un registro pubblico o in un Registro privato e quindi accedere all'immagine di riferimento dalla tua esecuzione del lavoro.

      Se hai creato il tuo lavoro utilizzando il comando job create e hai specificato l'opzione --build-source per creare l'immagine del contenitore dall'origine del repository o locale e vuoi modificare il tuo lavoro in modo che punti a un'altra immagine del contenitore, devi prima rimuovere l'associazione della build dal tuo lavoro. Ad esempio, eseguire ibmcloud ce job update -n JOB_NAME --build-clear. Dopo aver rimosso l'associazione della build dal tuo lavoro, puoi aggiornare il lavoro per fare riferimento a un'immagine diversa.

    • Se stai iniziando con il codice sorgente che risiede in un repository Git, puoi scegliere di consentire a Code Engine di creare l'immagine dalla tua origine e creare (o aggiornare) il 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 avere un maggiore controllo sulla build della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di creare (o aggiornare) il tuo lavoro ed eseguirlo.

    • Se stai iniziando con il codice di origine che risiede su una workstation locale, puoi scegliere di consentire a Code Engine di creare l'immagine dalla tua origine e creare il lavoro con un singolo comando 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 avere un maggiore controllo sulla build della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di creare (o aggiornare) il tuo lavoro ed eseguirlo.

    Ad esempio, potresti scegliere di lasciare che Code Engine gestisca la creazione della tua origine locale mentre evolvi lo sviluppo della tua origine per il lavoro. Quindi, una volta maturata l'immagine, puoi aggiornare il job per fare riferimento all'immagine specifica che desideri. È possibile ripetere questo processo in base alle necessità.

    Quando esegui il tuo job aggiornato, per l'esecuzione del job viene utilizzata l'ultima versione della tua immagine del contenitore di riferimento, 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.

Cerchi altri esempi di codice? Consultate la repo Samples for IBM Cloud Code Engine GitHub.