Creación de un trabajo a partir de imágenes en un registro público

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. Puede crear un trabajo desde la consola o con la CLI.

Creación de un trabajo con la consola

Cree un trabajo de Code Engine utilizando la imagen de icr.io/codeengine/helloworld. Este trabajo imprime Hello from helloworld! I'm a task job!.

  1. Abra Code Engine.
  2. Selecciona « Empezar a crear ».
  3. Seleccione un proyecto de la lista de proyectos disponibles. También puede crear uno nuevo. Tenga en cuenta que debe tener un proyecto seleccionado para crear un trabajo.
  4. Seleccione Trabajo.
  5. Especifique un nombre para el trabajo; por ejemplo, myjob.
  6. Especifique una imagen de contenedor para el trabajo, por ejemplo, icr.io/codeengine/helloworld. Si tiene su propio código fuente que desea convertir en una imagen de contenedor para el trabajo, consulte Creación de una imagen de contenedor. Para obtener más información sobre el código que se utiliza para este ejemplo, consulte helloworld.
  7. Modifique los valores predeterminados para las variables de entorno o los valores de tiempo de ejecución. Para obtener más información, consulte Opciones para crear y ejecutar un trabajo.
  8. Pulse Crear.
  9. En la página de trabajo, cuando el trabajo tenga un estado ready, pulse Enviar trabajo para someter un trabajo basado en la configuración actual.
  10. En el panel Enviar trabajo, acepte todos los valores predeterminados y vuelva a pulsar Enviar trabajo para ejecutar el trabajo.

Desde el panel «Enviar trabajo», puedes revisar y, si lo deseas, modificar los valores de configuración predeterminados, como las instancias, la CPU, la memoria, el número de reintentos del trabajo y el tiempo de espera del trabajo. Puede especificar el tamaño de la matriz o los índices de la matriz para ejecutar las instancias de trabajo paralelo. En el campo «Tamaño de la matriz», indique el número de instancias que se ejecutarán en paralelo para este trabajo. En el caso de los índices de matriz, introduce una lista separada por comas con tu conjunto personalizado de índices. Por ejemplo, para ejecutar este trabajo con un conjunto personalizado de índices de « 5 », especifica « 3,12-14,25 ». También puede especificar un valor personalizado para el tamaño de matriz de trabajos, que actualiza el valor de la variable de entorno JOB_ARRAY_SIZE inyectada automáticamente. Después de enviar este trabajo, el sistema muestra el estado de las instancias del trabajo en la página Detalles del trabajo. Si se especifica el tamaño de la matriz en lugar de los índices de la matriz en el panel «Enviar trabajo», dentro de la sección « Configuration » de la página de detalles del trabajo, esta información se muestra como índices de la matriz.

Encontrará detalles sobre la ejecución del trabajo en la página Estado del trabajo.

Creación de un trabajo con la CLI

Para crear una configuración de trabajo con la CLI, utilice el mandato job create. Este mandato requiere un nombre y una imagen y también permite otros argumentos opcionales. Para ver una lista completa de opciones, consulte el mandato ibmcloud ce job create.

Antes de empezar

El siguiente mandato job create crea una configuración de trabajo denominada myjob y utiliza la imagen de contenedor icr.io/codeengine/firstjob.

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

Salida de ejemplo

Creating job 'myjob'...
OK

En la tabla siguiente se resumen las opciones que se utilizan con el mandato job create en este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandato ibmcloud ce job create.

Opciones de mandato
Opción Descripción
--image El nombre de la imagen que se utiliza para las ejecuciones del trabajo. Este valor es obligatorio. El formato es REGISTRY/NAMESPACE/REPOSITORY:TAG donde REGISTRY y TAG son opcionales. Si no se especifica TAG, el valor predeterminado es latest. Para las imágenes de « Docker Hub», puedes especificar la imagen con NAMESPACE/REPOSITORY, ya que el valor predeterminado para REGISTRY es docker.io. Para otros registros, utilice REGISTRY/NAMESPACE/REPOSITORY o REGISTRY/NAMESPACE/REPOSITORY:TAG.
--name

El nombre del trabajo. Utilice un nombre que sea exclusivo dentro del proyecto. Este valor es obligatorio.

  • El nombre debe empezar y terminar con un carácter alfanumérico en minúsculas.
  • El nombre debe tener 63 caracteres o menos y puede contener letras minúsculas, números y guiones (-).

Próximos pasos

  • Después de crear el trabajo, envíelo para ejecutarlo. Consulte Ejecución de un trabajo. Puede ejecutar el trabajo varias veces.

  • Después de ejecutar el trabajo, para ver los detalles del trabajo y las ejecuciones del trabajo, consulte Detalles de trabajo.

  • Ahora que se ha creado el trabajo, se recomienda que los trabajos estén controlados por sucesos. Con las suscripciones de sucesos, puede desencadenar los trabajos utilizando planificaciones periódicas o establecer el trabajo para que reaccione a sucesos como las cargas de archivos.

  • 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 create y ha especificado la opción --build-source para 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, ejecute ibmcloud 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.

¿Desea ver más ejemplos de código? Echa un vistazo a Ejemplos para el repositorio « IBM Cloud Code Engine GitHub ».