Actualización de un trabajo
Puede realizar cambios en un trabajo definido y ejecutar el trabajo actualizado desde la consola o con la CLI. Los cambios en el trabajo pueden incluir la actualización de la imagen del contenedor de código, los argumentos o mandatos de código, los recursos de instancia de tiempo de ejecución o las variables de entorno.
Cada vez que se ejecuta el trabajo, se utiliza la última versión de la imagen de contenedor referenciada para la ejecución del trabajo, a menos que se especifique una etiqueta para la imagen. Si se especifica una etiqueta para la imagen, se utiliza la imagen etiquetada para la ejecución del trabajo.
Los trabajos por lotes enviados se ejecutan en paralelo, si es posible. Si el número o el tamaño de los trabajos enviados supera los límites de cuota configurados, como el número máximo de instancias en ejecución, Code Engine pone en cola los trabajos y los retardos que los ejecutan hasta que finalicen suficientes trabajos. Para obtener más información sobre cuotas y límites de los trabajos, incluida la memoria y la CPU, consulte Límites y cuotas de Code Engine.
Puede actualizar el trabajo y su código referenciado de varias formas, independientemente de cómo haya creado o actualizado el trabajo con anterioridad.
-
Si dispones de una imagen de contenedor que cumpla con el estándar de la Open Container Initiative(OCI), solo tendrás que proporcionar una referencia a dicha imagen, que apunte a la ubicación de tu registro de contenedores, al crear (o actualizar) tu trabajo. Puedes crear (o actualizar) tu trabajo a partir de imágenes de un registro público o privado y, a continuación, acceder a la imagen a la que se hace referencia desde la ejecución de tu trabajo.
Si ha creado el trabajo utilizando el mandato
job createy ha especificado la opción--build-sourcepara crear la imagen de contenedor desde el origen local o de repositorio, y desea cambiar el trabajo para que apunte a una imagen de contenedor diferente, primero debe eliminar la asociación de la compilación del trabajo. Por ejemplo, ejecuteibmcloud ce job update -n JOB_NAME --build-clear. Después de eliminar la asociación de la compilación del trabajo, puede actualizar el trabajo para que haga referencia a una imagen diferente. -
Si está empezando con un código fuente que reside en un repositorio de Git, puede dejar que Code Engine se encargue de compilar la imagen desde el código fuente y crear (o actualizar) el trabajo con una única operación. En este caso de ejemplo, Code Engine carga la imagen en IBM Cloud® Container Registry. Para obtener más información, consulte Creación de un trabajo a partir del código fuente del repositorio. Si desea tener más control sobre la compilación de la imagen, puede elegir compilar la imagen con Code Engine antes de crear (o actualizar) el trabajo y ejecutarlo.
-
Si está empezando con un código fuente que reside en una estación de trabajo local, puede dejar que Code Engine se encargue de compilar la imagen desde el código fuente y crear el trabajo con un único mandato de CLI. En este caso de ejemplo, Code Engine carga la imagen en IBM Cloud® Container Registry. Para obtener más información, consulte Creación del trabajo a partir del código fuente local con la CLI. Si desea tener más control sobre la compilación de la imagen, puede elegir compilar la imagen con Code Engine antes de crear (o actualizar) el trabajo y ejecutarlo.
Por ejemplo, puede dejar que Code Engine maneje la compilación del código fuente local mientras avanza en el desarrollo del código fuente para el trabajo. Una vez que la imagen ha madurado, puede actualizar el trabajo para que haga referencia a la imagen específica que desee. Puede repetir este proceso según sea necesario.
Cuando ejecuta el trabajo actualizado, se utiliza la última versión de la imagen de contenedor referenciada para la ejecución del trabajo, a menos que se especifique una etiqueta para la imagen. Si se especifica una etiqueta para la imagen, se utiliza la imagen etiquetada para la ejecución del trabajo.
Actualización de un trabajo desde la consola
Cuando un trabajo está en estado preparado, puede actualizar el trabajo. Vamos a actualizar el trabajo myjob que creó anteriormente para cambiar la salida de saludo y variables de entorno mediante la actualización de una variable
de entorno. Cuando se envía una solicitud a este trabajo de ejemplo « icr.io/codeengine/helloworld », el trabajo lee la variable de entorno « TARGET » y muestra « "Hello ${TARGET}!" ». Si esta
variable de entorno está vacía, se devuelve "Hello World!". Para obtener más información sobre el código utilizado en este ejemplo, consulte helloworld.
-
Vaya a la página de trabajo.
- En la página «Proyectos» de Code Engine, haz clic en el nombre de tu proyecto.
- Haz clic en « Trabajos » y, a continuación, en la pestaña « Trabajos ».
- Haz clic en el nombre del trabajo que quieras actualizar.
-
En la pestaña Configuración > Variables de entorno, haz clic en Añadir variable de entorno. Añada una variable de entorno literal con el nombre de
TARGETcon un valor deSunshine. Elicr.io/codeengine/helloworldproduce el mensaje,Hello <value_of_TARGET>!>. -
Haz clic en «Añadir» para añadir tu variable de entorno.
-
Pulse Desplegar.
-
Pulse Enviar trabajo.
-
En el panel Enviar trabajo, esta vez cambie el valor de CPU por una de las opciones de CPU válidas para la memoria especificada. Observe que debe utilizar combinaciones de memoria y CPU válidas. Pulse Enviar trabajo de nuevo para ejecutar este trabajo. El sistema muestra el estado del trabajo en la página Detalles del trabajo. Observe el valor de CPU actualizado en la sección
Configurationde los detalles del trabajo. -
Al visualizar los registros del trabajo desde la consola para este trabajo, la salida del trabajo actualizado es
Hello Sunshine!.
Actualización de un trabajo con la CLI
Con la CLI, puede actualizar una configuración de trabajo existente o especificar los cambios en una nueva ejecución de trabajo.
Actualización de una configuración de trabajo con la CLI
uede actualizar una configuración de trabajo existente con el mandato ibmcloud ce job update.
-
Utilice el mandato
job updatepara actualizar el trabajomyjobpara que haga referencia a una imagen distinta.ibmcloud ce job update --name myjob --image icr.io/codeengine/testjobEjecute el mandato
ibmcloud ce job get -n myjobpara visualizar detalles del trabajo actualizado.Salida de ejemplo
Name: myjob 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 Last Job Run: Name: myjob-jobrun-abcde Age: 32d Created: 2021-08-06T13:50:02-04:00 Image: icr.io/codeengine/testjob Resource Allocation: CPU: 1 Memory: 4G Runtime: Mode: task Array Indices: 0 Array Size: 1 Max Execution Time: 7200 Retry Limit: 3 [...] -
Ejecute el mandato
ibmcloud ce jobrun submitpara ejecutar un trabajo que haga referencia a esta configuración de trabajo actualizada. Para el mandatojobrun submit, utilice la opción--jobpara que haga referencia a una configuración de trabajo definida. Aunque la opción--nameno es necesaria si se especifica la opción--job, el siguiente mandato de ejemplo especifica la opción--namepara proporcionar un nombre para esta ejecución de trabajo.ibmcloud ce jobrun submit --name myjobrun1 --job myjob -
Ejecute
ibmcloud ce jobrun get -n myjobrun1para ver los detalles de esta ejecución de trabajo. Tenga en cuenta que la imagen referenciada esicr.io/codeengine/testjob, que está basada en la configuración de trabajo actualizada.Salida de ejemplo
Getting jobrun 'myjobrun1'... Getting instances of jobrun 'myjobrun1'... Getting events of jobrun 'myjobrun1'... [...] Name: myjobrun1 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 3m6s Created: 2021-06-15T11:56:22-04:00 Job Ref: myjob Image: icr.io/codeengine/testjob Resource Allocation: CPU: 1 Ephemeral Storage: 4G Memory: 4G Runtime: Mode: task Array Indices: 0 Array Size: 1 JOP_ARRAY_SIZE Value: 1 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 11s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 15s 15s Running True 11s 11s Complete True 11s 11s Events: Type Reason Age Source Messages Normal Updated 16s (x3 over 20s) batch-job-controller Updated JobRun "myjobrun1" Normal Completed 16s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun1-0-0 0/1 Succeeded 0 20s
Actualización de una ejecución de trabajo con la CLI
Puede especificar cambios para una ejecución de trabajo con el mandato ibmcloud ce jobrun resubmit. El mandato jobrun submit vuelve a enviar una ejecución de trabajo que hace referencia a una ejecución de trabajo anterior.
-
Utilice el mandato
jobrun resubmitpara volver a enviar la ejecución del trabajomyjobrun1y cambiar los índices de matriz de0a1-4. Aunque la opción--nameno es necesaria para el mandatojobrun resubmit, el siguiente mandato de ejemplo especifica la opción--namepara proporcionar un nombre para esta ejecución de trabajo.ibmcloud ce jobrun resubmit -jobrun myjobrun1 --array-indices "1-4" --name myjobrunresubmit -
Ejecute el mandato
ibmcloud ce jobrun get -n myjobrunresubmitpara visualizar detalles de la ejecución de trabajo actualizada. Tenga en cuenta que el valor de los índices de matriz se actualiza para esta ejecución de trabajo.Salida de ejemplo
Getting jobrun 'myjobrunresubmit'... Getting instances of jobrun 'myjobrunresubmit'... Getting events of jobrun 'myjobrunresubmit'... [...] Name: myjobrunresubmit2 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 Job Ref: myjob Image: icr.io/codeengine/testjob Resource Allocation: CPU: 1 Ephemeral Storage: 4G Memory: 4G Runtime: Mode: task Array Indices: 1-4 Array Size: 4 JOP_ARRAY_SIZE Value: 4 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 34s Instance Statuses: Succeeded: 4 Conditions: Type Status Last Probe Last Transition Pending True 38s 38s Running True 36s 36s Complete True 34s 34s Events: Type Reason Age Source Messages Normal Updated 36s (x7 over 40s) batch-job-controller Updated JobRun "myjobrunresubmit" Normal Completed 36s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrunresubmit-1-0 0/1 Succeeded 0 40s myjobrunresubmit-2-0 0/1 Succeeded 0 40s myjobrunresubmit-3-0 0/1 Succeeded 0 40s myjobrunresubmit-4-0 0/1 Succeeded 0 40s
Las ejecuciones de trabajo que se envían (o reenvían) con la CLI que no hacen referencia a una configuración de trabajo definida no se pueden visualizar desde la consola.