Cómo trabajar con trabajos y ejecuciones de trabajos

Aprenda a ejecutar trabajos en IBM Cloud® Code Engine. Un trabajo ejecuta una o más instancias de su código ejecutable en paralelo. A diferencia de las aplicaciones, que gestionan solicitudes HTTP, los trabajos se han diseñado para que se ejecuten una vez y se salga. Cuando crea un trabajo, puede especificar la información de configuración de carga de trabajo que se utiliza cada vez que se ejecuta el trabajo.

Antes de empezar

Code Engine proporciona métodos de definición de recursos personalizados (CRD - Custom Resource Definition). Para más información, consulte los métodos CRD por lotes.

¿Cómo puedo hacer que mi código se ejecute como un componente de trabajo de Code Engine?

Tanto si su código existe como fuente en un archivo local o en un repositorio de Git, como si su código es una imagen contenedora que existe en un registro público o privado, Code Engine le ofrece una forma optimizada de ejecutar su código como un trabajo.

  • Si tiene una imagen de contenedor, según el estándar de la Iniciativa de Contenedores Abiertos(OCI ), entonces solo necesita proporcionar una referencia a la imagen, que apunte a la ubicación de su registro de contenedor cuando cree su trabajo. Puede crear su trabajo a partir de imágenes en un registro público o privado y luego acceder a la imagen referenciada desde la ejecución de su trabajo.

  • Si está empezando con un código fuente que se encuentra en un repositorio de Git, puede elegir apuntar a la ubicación de su fuente, y Code Engine se encarga de construir la imagen a partir de su fuente y crear el trabajo con una sola 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 el trabajo y ejecutarlo.

  • Si está empezando con el código fuente en una estación de trabajo local, puede elegir apuntar a la ubicación de su fuente, y Code Engine se encarga de construir la imagen a partir de su fuente y crear el trabajo con un único comando 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 el trabajo y ejecutarlo.

Después de crear y ejecutar el trabajo, también puede actualizarlo utilizando alguna de las formas anteriores, independientemente de cómo haya creado o actualizado previamente el trabajo.

Cuando trabaje con trabajos, tenga en cuenta los siguientes aspectos clave.

  • A diferencia de las imágenes de aplicación, las imágenes de trabajo no tienen un servidor HTTP.
  • El programa ejecutable de la imagen debe salir con un código de cero para que se considere que ha funcionado correctamente.
  • La imagen se puede descargar desde un registro de imágenes público o privado. Para obtener más información, consulte Acceso a registros de contenedores.

Cuando 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.

Consideraciones para el manejo de HTTP

Cuando trabaja con trabajos (o aplicaciones), es útil conocer el manejo básico de HTTP en Code Engine. Consulte Consideraciones para el manejo de HTTP

Opciones para crear y ejecutar un trabajo

Obtenga más información sobre las opciones que puede especificar al crear o ejecutar el trabajo. Tenga en cuenta que las opciones pueden variar entre la consola y la CLI.

Memoria y CPU para trabajos

Cuando despliegas tu trabajo, puedes especificar la cantidad de memoria y CPU que puede consumir tu trabajo. Estas cantidades pueden variar, dependiendo de si el trabajo consume muchos recursos de cálculo, de memoria o si están equilibradas.

De forma predeterminada, el trabajo tiene asignadas 4 G de memoria y 1 vCPU. Para obtener información adicional sobre la selección de memoria y CPU, consulte Combinaciones de memoria y CPU soportadas.

Creación y ejecución de un trabajo con mandatos y argumentos

Puede definir mandatos y argumentos para que su trabajo los utilice en el tiempo de ejecución al crear o ejecutar su trabajo.

Puede añadir mandatos y argumentos al trabajo utilizando la CLI o la consola.

Para añadir mandatos y argumentos a través de la consola, utilice los campos Command y Arguments.

Para añadir mandatos y argumentos utilizando la CLI, añada las opciones --cmd y --args a los mandatos job create o jobrun submit.

Para obtener más información sobre la definición de mandatos y argumentos, consulte Definición de mandatos y argumentos para las cargas de trabajo de Code Engine.

Creación y ejecución de un trabajo con variables de entorno

Puede definir y establecer variables de entorno como pares de clave-valor que el trabajo puede utilizar en tiempo de ejecución.

Puede definir variables de entorno al crear el trabajo o al actualizar un trabajo existente desde la consola o con la CLI. Puede crear variables de entorno para los trabajos que hagan referencia completa a un mapa de configuración (o secreto) o a claves individuales de referencia en un mapa de configuración (o secreto).

Para obtener más información sobre la definición de variables de entorno, consulte Cómo trabajar con variables de entorno.

Creación y ejecución de un trabajo con secretos y mapas de configuración

En Code Engine, los secretos y los mapas de configuración pueden ser utilizados por su trabajo mediante el uso de variables de entorno.

Tanto los secretos como los mapas de configuración son pares de clave-valor. Cuando se correlacionan con variables de entorno, las relaciones NAME=VALUE se establecen de tal forma que el nombre de la variable de entorno corresponde a la "clave" de cada entrada de esos mapas, y el valor de la variable de entorno es el "valor" de esa clave.

El trabajo puede utilizar variables de entorno para hacer referencia completa a un mapa de configuración (o secreto) o a claves individuales de referencia en un mapa de configuración (o secreto).

Para obtener más información, consulte cómo hacer referencia a secretos utilizando variables de entorno y cómo hacer referencia a mapas de configuración utilizando variables de entorno.

¿Qué pasa si quiero que mi trabajo se ejecute indefinidamente?

Normalmente, los trabajos están diseñados para ejecutarse una vez y salir con un tiempo de ejecución máximo.

Sin embargo, suponga que desea sondear constantemente un almacén de datos de terceros. Puede elegir crear una aplicación; sin embargo, el puerto de la app debe permanecer abierto para manejar las solicitudes HTTP. En su lugar, si no desea dar servicio a las solicitudes HTTP, puede elegir crear un trabajo que se ejecute sin un tiempo de ejecución máximo y no agote el tiempo de espera.

Con Code Engine, puede elegir el mode del trabajo. Para los trabajos en los que se aplica un tiempo máximo de ejecución, utilice la modalidad task para los trabajos. Las instancias anómalas se reinician por el límite de reintentos del trabajo. Esta modalidad es el comportamiento predeterminado para los trabajos.

Si desea crear un trabajo que se pueda ejecutar de forma indefinida y no se haya agotado el tiempo de espera, utilice la modalidad daemon para los trabajos. Las instancias anómalas se reinician automáticamente de forma indefinida.

Con Code Engine, solo paga por los recursos que utilice. Cuando el trabajo se ejecuta en modalidad daemon, tenga en cuenta que el trabajo siempre se está ejecutando hasta que suprima el trabajo.

Para obtener más información, consulte Creación y ejecución de un trabajo que se ejecuta indefinidamente.

Consideraciones sobre las cuotas de trabajo

Cuando trabaja con aplicaciones, funciones y trabajos por lotes, estos recursos se ejecutan en el contexto de un proyecto Code Engine. Las cuotas de recursos se definen por proyecto y se aplican límites para aplicaciones, funciones y trabajos por lotes.

Para obtener más información sobre los límites de Code Engine, consulte Límites y cuotas de Code Engine.

Limpieza de trabajos completados

Las búsquedas de empleo que se completan se eliminan automáticamente después de una semana.

Próximos pasos

Ahora que está familiarizado con los conceptos clave de trabajar con trabajos de Code Engine, ¿está preparado para crear y ejecutar trabajos? Consulte

Para obtener más información sobre cómo trabajar con trabajos, consulte