Esecuzione di un lavoro
Dopo aver creato il proprio lavoro, è possibile eseguire un lavoro in base alla sua definizione oppure è possibile eseguire il lavoro con proprietà di sovrascrittura. Esegui il tuo lavoro dalla console o con la CLI.
Ogni volta che viene eseguito il lavoro, viene utilizzata l'ultima versione della tua immagine del contenitore di riferimento 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.
I lavori batch inoltrati vengono eseguiti in parallelo, se possibile. Se il numero o la dimensione dei lavori inviati supera i limiti di quota configurati, come ad esempio il numero massimo di istanze in esecuzione, Code Engine mette in coda i lavori e ne ritarda l'esecuzione fino a quando un numero sufficiente di lavori viene completato. Per ulteriori informazioni sui lavori batch, vedere Carico di lavoro dei lavori batch. Per ulteriori informazioni sulle quote e sui limiti per i lavori, compresi memoria e CPU, vedere Limiti e quote per Code Engine.
Le esecuzioni di lavori create dalle sottoscrizioni vengono eliminate dopo dieci minuti. Per ulteriori informazioni sulle sottoscrizioni, vedi Introduzione alle sottoscrizioni.
I lavori completati vengono eliminati automaticamente dopo una settimana.
Esecuzione di un lavoro dalla console
Quando si crea un lavoro, è possibile eseguirlo immediatamente. Tuttavia, è possibile inoltrare e inoltrare di nuovo un lavoro in qualsiasi momento. È inoltre possibile inoltrare o inoltrare di nuovo un lavoro creato in precedenza.
-
Vai alla pagina dedicata alle offerte di lavoro.
- Nella pagina "Progetti" di Code Engine, clicca sul nome del tuo progetto.
- Fare clic su "Lavori", quindi sulla scheda "Lavori".
- Fai clic sul nome del processo che desideri eseguire.
-
Fare clic su Inoltra lavoro per aprire la finestra di dialogo Inoltra lavoro. Esaminare e facoltativamente modificare i valori di configurazione predefiniti come istanze, CPU, memoria, numero di tentativi del lavoro e timeout del lavoro. Per ulteriori informazioni su queste opzioni, consultare Opzioni per creare ed eseguire un lavoro.
-
Fare clic su Inoltra lavoro per eseguire il lavoro. Il sistema visualizza lo stato delle istanze del lavoro nella pagina dei dettagli del lavoro.
-
Se una delle istanze del lavoro non viene eseguita, risolvere l'errore e quindi 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. La sezione Indici array elenca automaticamente gli indici delle istanze di esecuzione del lavoro fallite. Dopo aver esaminato e facoltativamente modificato i valori di configurazione, fare clic su Inoltra lavoro per eseguire il lavoro.
Per risolvere gli errori comuni relativi agli indici di esecuzione dei lavori, consultare la sezione " Capire perché gli indici di esecuzione dei lavori possono fallire ".
È anche possibile eseguire nuovamente i lavori esistenti. Per eseguire di nuovo un lavoro specifico, selezionare la scheda Esecuzioni lavoro, quindi fare clic sul nome dell'esecuzione lavoro che si desidera utilizzare. Fare clic su Riesegui per eseguire nuovamente questo lavoro.
È possibile visualizzare i log del job dopo aver aggiunto le capacità di registrazione. Per ulteriori informazioni, vedi Visualizzazione dei log.
La variabile di ambiente JOB_INDEX viene inserita automaticamente in ogni istanza del job ogni volta che il job viene eseguito. Per ulteriori informazioni sulle variabili d'ambiente impostate da Code Engine, consultare . Vedo delle configmap che non ho creato. Posso eliminarli?.
Esecuzione di un lavoro con la CLI
Prima di iniziare
- Imposta il tuo ambiente Code Engine.
- Creare un lavoro.
Per eseguire un lavoro con la CLI, utilizza il comando jobrun submit. Per un elenco completo delle opzioni, consultare il comando ibmcloud ce jobrun submit.
Con la CLI, puoi eseguire un lavoro basato su una configurazione del lavoro oppure puoi eseguire un lavoro senza prima creare una configurazione del lavoro.
Esecuzione di un lavoro con la CLI basata su una configurazione del lavoro
Creando una configurazione del lavoro, è possibile eseguire il lavoro più volte.
Ad esempio, il seguente comando jobrun submit crea cinque nuove istanze per eseguire l'immagine del contenitore specificata nella configurazione del job myjob definito. Per fare riferimento a una
configurazione di lavoro definita, utilizzare l'opzione --job. Mentre l'opzione --name non è richiesta se è specificata l'opzione --job, il seguente comando di esempio specifica l'opzione --name per fornire un nome per l'esecuzione di questo lavoro. Per i job, il valore predefinito per cpu è 1 e il valore predefinito per memory è 4G. I limiti per le risorse e le richieste vengono
applicati per istanza, in modo che ogni istanza ottenga 4 G di memoria e 1 vCPU. Questo lavoro assegna 5 \ * 4 G = 20 G di memoria e 5 \ * 1 vCPU = 5 vCPUs.
ibmcloud ce jobrun submit --name testjobrun --job myjob --array-indices "1 - 5"
La seguente tabella riepiloga le opzioni utilizzate con il comando jobrun submit in questo esempio. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comando ibmcloud ce jobrun submit.
| Opzione | Descrizione |
|---|---|
--name |
Il nome dell'esecuzione di questo lavoro. I valori
|
--job |
Il nome del lavoro da eseguire. Questo valore è obbligatorio se non si specificano i valori --name e --image. |
--array-indices |
Specifica gli indici delle istanze utilizzate per eseguire il lavoro. Specificare l'elenco o l'intervallo di indici separati da trattini (-) o virgole (,); ad esempio, 1,3,6,9 o 1-5,7-8,10. Il valore massimo
è 999999. Questo valore è facoltativo. Il valore predefinito è 0. |
La variabile di ambiente JOB_INDEX viene inserita automaticamente in ogni istanza del job ogni volta che il job viene eseguito. Per ulteriori informazioni sulle variabili d'ambiente impostate da Code Engine, consultare . Vedo delle configmap che non ho creato. Posso eliminarli?.
Esecuzione di un lavoro con la CLI senza prima creare una configurazione lavoro
Con la CLI, è possibile inoltrare un'esecuzione lavoro senza creare prima una configurazione lavoro. È possibile specificare le stesse opzioni di configurazione sui comandi jobrun submit e jobrun resubmit disponibili
con il comando job create.
Ad esempio, il seguente comando ibmcloud ce jobrun submit invia un lavoro eseguito per fare riferimento all'immagine us.icr.io/mynamespace/myhello_bld utilizzando le informazioni di accesso myregistry. Poiché questa esecuzione del lavoro non fa riferimento a una configurazione del lavoro definita, è necessario specificare i valori per le opzioni --name e image.
Utilizzare --name per specificare il nome di questa esecuzione lavoro e utilizzare --image per fornire il nome dell'immagine utilizzata per questa esecuzione lavoro. L'opzione --array-indices crea cinque
nuove istanze per eseguire l'immagine contenitore. Per le esecuzioni del lavoro, il valore predefinito per cpu è 1 e il valore predefinito per memory è 4G. I limiti per le risorse e le
richieste vengono applicati per istanza, in modo che ogni istanza ottenga 4 G di memoria e 1 vCPU. Questa esecuzione lavoro assegna 5 \ * 4 G = 20 G di memoria e 5 \ * 1 vCPU = 5 vCPUs.
ibmcloud ce jobrun submit --name myhellojob-jobruna --image us.icr.io/mynamespace/myhello_bld --registry-secret myregistry --array-indices "1 - 5"
Eseguire il comando jobrun get -n myhellojob-jobruna per controllare lo stato di esecuzione del job.
Output di esempio
[...]
Name: myhellojob-jobruna
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 3m6s
Created: 2021-06-04T11:56:22-04:00
Image: us.icr.io/mynamespace/myhello_bld
Resource Allocation:
CPU: 1
Ephemeral Storage: 400M
Memory: 4G
Registry Secrets:
myregistry
Runtime:
Mode: task
Array Indices: 1 - 5
Array Size: 5
JOP_ARRAY_SIZE Value: 5
Max Execution Time: 7200
Retry Limit: 3
Status:
Completed: 9s
Instance Statuses:
Succeeded: 5
Conditions:
Type Status Last Probe Last Transition
Pending True 16s 16s
Running True 13s 13s
Complete True 9s 9s
Events:
Type Reason Age Source Messages
Normal Updated 11s (x8 over 18s) batch-job-controller Updated JobRun "myhellojob-jobruna"
Normal Completed 11s batch-job-controller JobRun completed successfully
Instances:
Name Running Status Restarts Age
myhellojob-jobruna-1-0 0/1 Succeeded 0 18s
myhellojob-jobruna-2-0 0/1 Succeeded 0 18s
myhellojob-jobruna-3-0 0/1 Succeeded 0 18s
myhellojob-jobruna-4-0 0/1 Succeeded 0 18s
myhellojob-jobruna-5-0 0/1 Succeeded 0 18s
Le esecuzioni lavoro inoltrate (o reinoltrate) con la CLI che non fanno riferimento a una configurazione lavoro definita non sono visualizzabili dalla console.
Reinoltro del lavoro con la CLI
Se si desidera inoltrare nuovamente un lavoro in base alla configurazione di un lavoro precedente, utilizzare il comando jobrun resubmit. Questo comando richiede il nome dell'esecuzione del lavoro precedente e consente
anche altri argomenti facoltativi. Per un elenco completo delle opzioni, consultare il comando ibmcloud ce jobrun resubmit.
Ad esempio, il seguente comando jobrun resubmit reinoltra l'esecuzione del lavoro testjobrun.
ibmcloud ce jobrun resubmit --jobrun testjobrun
Output di esempio
Getting job run 'testjobrun'...
Getting job 'myjob'...
Rerunning job run 'myjob-jobrun-fji48'...
Run 'ibmcloud ce jobrun get -n myjob-jobrun-fji48' to check the job run status.
Ad esempio, il seguente comando jobrun resubmit reinoltra l'esecuzione del lavoro myhellojob-jobruna, che è stata eseguita prima senza creare la configurazione del lavoro. Poiché l'esecuzione del lavoro
di riferimento non dispone di una configurazione del lavoro correlata, è necessario specificare l'opzione --name per specificare un nome per l'esecuzione di questo lavoro.
ibmcloud ce jobrun resubmit --jobrun myhellojob-jobruna --name myhellojob-jobrunb
Eseguire il comando jobrun get -n myhellojob-jobrunb per controllare lo stato di esecuzione del job.
Output di esempio
Getting jobrun 'myhellojob-jobrunb'...
[...]
Name: myhellojob-jobrunb
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 3m6s
Created: 2021-06-04T11:56:22-04:00
Image: us.icr.io/mynamespace/myhello_bld
Resource Allocation:
CPU: 1
Ephemeral Storage: 400M
Memory: 4G
Registry Secrets:
myregistry
Runtime:
Mode: task
Array Indices: 1 - 5
Array Size: 5
JOP_ARRAY_SIZE Value: 5
Max Execution Time: 7200
Retry Limit: 3
Status:
Completed: 91s
Instance Statuses:
Succeeded: 5
Conditions:
Type Status Last Probe Last Transition
Pending True 96s 96s
Running True 92s 92s
Complete True 91s 91s
Events:
Type Reason Age Source Messages
Normal Updated 93s (x7 over 97s) batch-job-controller Updated JobRun "myhellojob-jobrunb"
Normal Completed 93s batch-job-controller JobRun completed successfully
Instances:
Name Running Status Restarts Age
myhellojob-jobrunb-1-0 0/1 Succeeded 0 97s
myhellojob-jobrunb-2-0 0/1 Succeeded 0 97s
myhellojob-jobrunb-3-0 0/1 Succeeded 0 97s
myhellojob-jobrunb-4-0 0/1 Succeeded 0 97s
myhellojob-jobrunb-5-0 0/1 Succeeded 0 97s
Le esecuzioni lavoro inoltrate (o reinoltrate) con la CLI che non fanno riferimento a una configurazione lavoro definita non sono visualizzabili dalla console.
Passi successivi
-
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 di eventi, puoi attivare i tuoi lavori mediante pianificazioni periodiche o impostare il lavoro in modo che reagisca agli eventi come caricamenti di file.
-
È possibile aggiornare il lavoro e il relativo codice di riferimento in qualsiasi dei seguenti modi, indipendentemente da come è 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 registro privato e quindi accedere all'immagine di riferimento dalla tua esecuzione del lavoro.
Se il tuo lavoro è stato creato utilizzando il comando
job createe hai specificato l'opzione--build-sourceper creare l'immagine del contenitore dall'origine locale o del repository e vuoi modificare il tuo lavoro in modo che punti a un'immagine del contenitore diversa, devi prima rimuovere l'associazione della build dal tuo lavoro. Ad esempio, eseguireibmcloud ce job update -n JOB_NAME --build-clear. Dopo aver rimosso l'associazione della build dal tuo lavoro, puoi aggiornare il lavoro in modo che faccia riferimento a una diversa immagine. -
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 creazione della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di creare (o aggiornare) il 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 creazione della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di creare (o aggiornare) il 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 lavoro per fare riferimento all'immagine specifica che desideri. È possibile ripetere questo processo in base alle necessità.
Quando esegui il lavoro aggiornato, 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.
-
Cerchi altri esempi di codice? Dai un'occhiata agli esempi disponibili nel repository " IBM Cloud Code Engine " su GitHub.