Creazione di un lavoro da immagini in un registro pubblico

Quando si crea un job, è possibile specificare le informazioni di configurazione del workload che vengono utilizzate ogni volta che il job viene eseguito. È possibile creare un processo dalla console o tramite la CLI.

Creazione di un processo tramite la console

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

  1. Apri 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. Inserisci un nome per il processo; ad esempio, “ myjob ”.
  6. Specifica un'immagine contenitore per il tuo lavoro, ad esempio, icr.io/codeengine/helloworld. Se hai il tuo codice sorgente che vuoi trasformare in un'immagine del contenitore per il lavoro, vedi creazione di un'immagine del contenitore. Per ulteriori informazioni sul codice utilizzato per questo esempio, consultare helloworld.
  7. Modificare i valori predefiniti per le variabili di ambiente o le impostazioni di runtime. Per ulteriori informazioni su queste opzioni, consultare Opzioni per creare ed eseguire un lavoro.
  8. Fai clic su Crea.
  9. Dalla pagina del lavoro, quando il lavoro è in stato ready, fare clic su Inoltra lavoro per inoltrare un lavoro in base alla configurazione corrente.
  10. Dal pannello Inoltra, accettare tutti i valori predefiniti e fare nuovamente clic su Inoltra lavoro per eseguire il proprio 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.

È possibile trovare i dettagli relativi all'esecuzione del lavoro nella pagina Stato lavoro.

Creazione di un processo tramite la CLI

Per creare una configurazione del lavoro con la CLI, utilizza il comando job create. Questo comando richiede un nome e un'immagine e consente anche altri argomenti facoltativi. Per un elenco completo delle opzioni, consultare il comando ibmcloud ce job create.

Prima di iniziare

Il seguente comando job create crea una configurazione del lavoro denominata myjob e utilizza l'immagine del contenitore icr.io/codeengine/firstjob.

ibmcloud ce job create --name myjob  --image icr.io/codeengine/firstjob

Output di esempio

Creating job 'myjob'...
OK

La seguente tabella riepiloga le opzioni utilizzate con il comando job create in questo esempio. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comando ibmcloud ce job create.

Opzioni comando
Opzione Descrizione
--image Il nome dell'immagine utilizzata per le esecuzioni del job. Questo valore è obbligatorio. Il formato è REGISTRY/NAMESPACE/REPOSITORY:TAG, dove REGISTRY e TAG sono facoltativi. Se non viene specificato TAG, il valore predefinito è latest. Per le immagini in Docker Hub, puoi specificare l'immagine con NAMESPACE/REPOSITORY, poiché il valore predefinito per REGISTRY è docker.io. Per altri registri, utilizzare REGISTRY/NAMESPACE/REPOSITORY o REGISTRY/NAMESPACE/REPOSITORY:TAG.
--name

Il nome del lavoro. Utilizzare un nome univoco all'interno del progetto. Questo valore è obbligatorio.

  • Il nome deve iniziare e terminare con un carattere alfanumerico minuscolo.
  • Il nome deve essere di 63 caratteri o meno e può contenere lettere minuscole, numeri e trattini (-).

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? Dai un'occhiata agli esempi disponibili nel repository " IBM Cloud Code Engine " su GitHub.