View a markdown version of this page

Configuración de flujos de trabajo de canalizaciones de imágenes en Generador de imágenes - Generador de Imágenes de EC2

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de flujos de trabajo de canalizaciones de imágenes en Generador de imágenes

Con los flujos de trabajo de imágenes, puedes personalizar los flujos de trabajo que ejecuta tu canalización para crear, probar y distribuir imágenes según tus necesidades. Los flujos de trabajo que defina se ejecutan en el contexto del marco del flujo de trabajo de Generador de imágenes. Para obtener más información sobre las etapas que componen el marco del flujo de trabajo, consulte Gestione los flujos de trabajo de creación, prueba y distribución de imágenes de Image Builder.

Flujo de trabajo de creación

Los flujos de trabajo de creación se ejecutan durante la etapa Build del marco del flujo de trabajo. Solo puede especificar un flujo de trabajo de creación para la canalización. También puede omitir la creación por completo para configurar una canalización solo de prueba.

Flujo de trabajo de prueba

Los flujos de trabajo de prueba se ejecutan durante la etapa Test del marco del flujo de trabajo. Puedes añadir uno o más flujos de trabajo de prueba a tu canalización, hasta un límite de diez flujos de trabajo en total, lo que también incluye los flujos de trabajo de creación y distribución. Los flujos de trabajo de prueba se pueden ejecutar en paralelo o de uno en uno, según cómo definas los grupos de prueba. También puede omitir las pruebas por completo si solo quiere que se cree la canalización.

flujo de trabajo de distribución

Los flujos de trabajo de distribución se ejecutan durante la Distribution fase del marco de flujo de trabajo. Un flujo de trabajo de distribución es opcional. Si no especifica ninguna, Image Builder seguirá distribuyendo la AMI mediante la ejecución de la configuración de distribución que haya adjuntado a la canalización o la imagen. Especifique un flujo de trabajo de distribución cuando desee anular esa configuración de distribución con diferentes ajustes de distribución o para obtener más visibilidad del proceso de distribución. Puedes especificar un flujo de trabajo de distribución para tu canalización. Si creas imágenes de contenedores y no especificas un flujo de trabajo de distribución, Image Builder añadirá automáticamente el flujo de trabajo de distribución de contenedores gestionado por Amazon.

Definición de grupos de prueba para los flujos de trabajo de prueba

Los flujos de trabajo de prueba se definen dentro de los grupos de prueba. Puedes ejecutar varios flujos de trabajo de prueba para tu canalización. El límite combinado es de diez flujos de trabajo en total, lo que incluye los flujos de trabajo de creación y distribución. Debe decidir si desea ejecutar los flujos de trabajo de prueba en un orden específico o ejecutar tantos como sea posible a la vez. La forma en que se ejecuten dependerá de cómo defina los grupos de prueba. En los siguientes escenarios se muestran varias formas de definir los flujos de trabajo de prueba.

nota

La onFailure configuración parallelGroup y solo se aplican a los flujos de trabajo de prueba. Image Builder los rechaza en un flujo de trabajo de creación o distribución con unInvalidParameterCombinationException.

Cómo se ejecutan los grupos de prueba

Image Builder ejecuta los flujos de trabajo de prueba en grupos de prueba. Ejecuta los grupos de uno en uno. Los flujos de trabajo de prueba dentro de un solo grupo se ejecutan al mismo tiempo (en paralelo). Image Builder ejecuta hasta cinco flujos de trabajo de prueba al mismo tiempo; si un grupo tiene más de cinco, Image Builder inicia el siguiente flujo de trabajo de prueba a medida que finaliza cada uno. Un flujo de trabajo de prueba que no forma parte de un grupo se ejecuta por sí solo.

La forma de definir los grupos de prueba depende de si usas la consola o la API AWS CLI and. Seleccione la pestaña que coincida con el método que utiliza.

Consola de administración de AWS

Al crear o editar una canalización en la consola, defina los flujos de trabajo de prueba en la sección Flujo de trabajo de prueba del proceso de creación de imágenes. Para ejecutar las pruebas, elige la opción de seleccionar los flujos de trabajo de prueba. Para crear imágenes sin realizar pruebas, elige la opción de omitir los flujos de trabajo de prueba.

La consola organiza los flujos de trabajo de prueba en grupos de prueba. Una nueva canalización comienza con un grupo de pruebas. Para crear tu configuración de prueba, haz lo siguiente:

  • Añadir un flujo de trabajo de prueba a un grupo: añade un flujo de trabajo de prueba a un grupo y selecciona el flujo de trabajo entre tus propios flujos de trabajo (de mi propiedad) o entre los flujos de trabajo AWS gestionados (gestionados por Amazon). Si el flujo de trabajo define parámetros, la consola los muestra para que puedas introducir valores. Un grupo puede contener hasta cinco flujos de trabajo de prueba, que se ejecutan al mismo tiempo.

  • Añadir un grupo de pruebas: añada otro grupo de pruebas para ejecutar un conjunto diferente de pruebas. Puede agregar hasta diez grupos de prueba. Para cambiar el nombre de un grupo, elija Editar nombre. El nombre de un grupo puede tener hasta 128 caracteres e incluir letras, números, guiones () y guiones bajos (-). _

Image Builder ejecuta los grupos de prueba de uno en uno, en el orden en que aparecen en el asistente. Los flujos de trabajo de prueba dentro de un grupo se ejecutan al mismo tiempo. Un grupo puede contener hasta cinco flujos de trabajo de prueba. Para ejecutar las pruebas de una en una, coloca cada flujo de trabajo de prueba en su propio grupo.

nota

Puedes añadir o eliminar grupos y flujos de trabajo de prueba, pero no puedes reordenarlos. Planifique el orden de los grupos de prueba antes de crearlos.

AWS CLI

Cuando usas la API de Image Builder AWS CLI o la API, no defines los grupos de prueba directamente. En su lugar, configuras el parallelGroup atributo en cada flujo de trabajo de prueba de la workflows lista. Los flujos de trabajo de prueba que tienen el mismo parallelGroup valor forman un grupo y se ejecutan al mismo tiempo. Un flujo de trabajo de prueba que no tiene ningún parallelGroup valor se ejecuta por sí solo. Si no establece un parallelGroup valor en ninguno de los flujos de trabajo de prueba, Image Builder los ejecuta de uno en uno.

La API AWS CLI y no limitan la cantidad de flujos de trabajo de prueba en un grupo. El único límite es el número total de flujos de trabajo, que no puede superar los diez (incluidos los flujos de trabajo de compilación y distribución). La consola limita un grupo a cinco flujos de trabajo de prueba.

Image Builder siempre ejecuta primero los flujos de trabajo de creación, luego los de prueba y, por último, el flujo de trabajo de distribución. Este orden se aplica independientemente de cómo los publiques.

Durante la fase de prueba, Image Builder ordena los flujos de trabajo de prueba de la siguiente manera:

  • Ordena los grupos según la posición en la que cada grupo aparece por primera vez en la workflows lista. No los ordena por su parallelGroup valor.

  • Mantiene cada flujo de trabajo que no tiene ningún grupo en su posición en la lista.

  • Ejecuta los flujos de trabajo de un grupo a la vez, en la posición en la que ese grupo aparece por primera vez.

Ejemplo

Supongamos que enumera cinco flujos de trabajo de prueba en este orden y establece el parallelGroup valor de algunos de ellos:

  • Flujo de trabajo de prueba A: sin grupo

  • Flujo de trabajo de prueba B —parallelGroup: tests-1

  • Flujo de trabajo de prueba C: sin grupo

  • Flujo de trabajo de prueba D —parallelGroup: tests-1

  • Flujo de trabajo de prueba E —parallelGroup: tests-2

Image Builder los ejecuta en el siguiente orden:

  1. Pruebe el flujo de trabajo A por sí solo.

  2. Pruebe el flujo de trabajo B y el flujo de trabajo D al mismo tiempo. Comparten el tests-1 grupo, que aparece por primera vez en el flujo de trabajo de prueba B.

  3. Pruebe el flujo de trabajo C por sí solo.

  4. Pruebe el flujo de trabajo E, por sí solo, en el tests-2 grupo.

El flujo de trabajo de prueba D se ejecuta junto con el flujo de trabajo de prueba B porque comparten un grupo, aunque hayas incluido el flujo de trabajo de prueba C entre ellos. El grupo denominado tests-1 se ejecuta antes tests-2 porque tests-1 aparece primero en la lista: el orden de los grupos sigue el orden de la lista, no el parallelGroup valor.

Escenario 1: ejecución de un flujo de trabajo de prueba cada vez

Para ejecutar todos los flujos de trabajo de prueba de uno en uno, configura un grupo de prueba independiente para cada flujo de trabajo de prueba, hasta el límite combinado de diez flujos de trabajo en total (que incluye los flujos de trabajo de compilación y distribución). Image Builder ejecuta los grupos de prueba de uno en uno. Esta es una forma de garantizar que los flujos de trabajo de prueba se ejecuten uno a uno y en un orden específico.

Escenario 2: ejecución de varios flujos de trabajo de prueba a la vez

Si el orden no importa y desea ejecutar a la vez tantos flujos de trabajo de prueba como sea posible, puede configurar un único grupo de prueba e incluir en él el máximo número de flujos de trabajo de prueba. Generador de imágenes iniciará hasta cinco flujos de trabajo de prueba al mismo tiempo e iniciará otros flujos de trabajo de prueba a medida que se vayan completando. Si su objetivo es ejecutar los flujos de trabajo de prueba lo más rápido posible, esta es una forma de hacerlo.

Escenario 3: mezcla y combinación

Si tiene un escenario mixto, en el que algunos flujos de trabajo de prueba pueden ejecutarse al mismo tiempo y otros deben ejecutarse por separado, puede configurar los grupos de prueba para lograr este objetivo. El único límite a la hora de configurar los grupos de prueba es la cantidad máxima de flujos de trabajo de prueba que se pueden ejecutar en la canalización

Establecimiento de los parámetros del flujo de trabajo en una canalización de Generador de imágenes desde la consola

Los parámetros del flujo de trabajo funcionan de la misma manera para los flujos de trabajo de creación, prueba y distribución. Al crear o actualizar una canalización, selecciona los flujos de trabajo de creación, prueba y distribución que desea incluir. Si ha definido parámetros en el documento de flujos de trabajo para un flujo de trabajo seleccionado, Generador de imágenes los mostrará en el panel Parámetros. El panel está oculto para los flujos de trabajo que no tienen parámetros definidos.

En cada parámetro se muestran los siguientes atributos definidos en el documento de flujos de trabajo:

  • Nombre (no editable): nombre del parámetro.

  • Tipo (no editable): el tipo de datos del valor del parámetro.

  • Valor: el valor del parámetro. Puede editar el valor del parámetro para configurarlo para la canalización.

Especificación del rol de servicio de IAM que Generador de imágenes utiliza para ejecutar las acciones de flujo de trabajo

Al adjuntar flujos de trabajo de imágenes personalizados a su canalización o al establecer una configuración de registro, también debe especificar un rol de ejecución. Esta es la función de IAM que Image Builder asume para ejecutar sus acciones de flujo de trabajo. El rol debe confiar en el director del servicio de Image Builder. Para conocer los permisos necesarios, consulte la información de acceso al servicio de flujo de trabajo que aparece a continuación.

Para ejecutar flujos de trabajo de imágenes, Generador de imágenes necesita permiso para realizar acciones de flujo de trabajo. Usted concede este permiso con una función de ejecución que Image Builder asume en su nombre. La función de ejecución se asigna de la siguiente manera.

importante

Le recomendamos que no transfiera el rol AWSServiceRoleForImageBuilder vinculado al servicio como su rol de ejecución. En su lugar, cree un rol de IAM personalizado y adjunte la EC2ImageBuilderExecutionPolicy AWS política administrada. Esta política otorga los mismos permisos que Image Builder necesita para llamar Servicios de AWS en tu nombre. El uso de un rol personalizado le brinda un control total sobre los permisos que usa Image Builder. También mantiene en vigor las políticas de control de servicios (SCP) y las políticas de control de recursos (RCP) para las operaciones que Image Builder realiza en su nombre.

  • Consola: En el paso 3 del asistente de procesamiento, defina el proceso de creación de imágenes y seleccione su rol personalizado en la lista de roles de IAM del panel de acceso al servicio.

  • API de creación de imágenes: en la solicitud de CreateImage acción, especifique su rol personalizado como valor del executionRole parámetro.

Para crear un rol de ejecución personalizado, consulte Crear un rol para delegar permisos a un AWS servicio en la Guía del AWS Identity and Access Management usuario.

Asocie los flujos de trabajo a una canalización

Para asociar flujos de trabajo personalizados de creación, prueba y distribución de imágenes a su canalización, seleccione la pestaña que coincida con el método que desea utilizar.

Consola de administración de AWS

Al crear o actualizar una canalización en el asistente de creación de canalizaciones de imágenes Consola de administración de AWS, el asistente de creación de canalizaciones de imágenes incluye un paso de flujos de trabajo en el que se seleccionan los flujos de trabajo que ejecuta la canalización. Para asociar flujos de trabajo de imágenes personalizados, haz lo siguiente en ese paso:

  1. En Build workflow, selecciona el flujo de trabajo de compilación que quieres que ejecute tu canalización.

  2. En el caso de los flujos de trabajo de prueba, agrega uno o más flujos de trabajo de prueba y organízalos en grupos de prueba para controlar el orden en el que se ejecutan. Para obtener más información, consulte Definición de grupos de prueba para los flujos de trabajo de prueba.

  3. En el caso del flujo de trabajo de distribución, seleccione un flujo de trabajo de distribución si desea anular la configuración de distribución adjunta u obtener más visibilidad del proceso de distribución. Es opcional.

  4. Para la función de ejecución, seleccione la función de IAM que Image Builder asume para ejecutar sus acciones de flujo de trabajo. Se requiere un rol de ejecución al asociar flujos de trabajo de imágenes personalizados. Para obtener más información, consulte Especificación del rol de servicio de IAM que Generador de imágenes utiliza para ejecutar las acciones de flujo de trabajo.

  5. Si un flujo de trabajo que ha seleccionado define parámetros, defina sus valores en el panel Parámetros. Para obtener más información, consulte Establecimiento de los parámetros del flujo de trabajo en una canalización de Generador de imágenes desde la consola.

Para ver un recorrido paso a paso del asistente completo para crear canalizaciones de imágenes, consulteCreación y actualización de canalizaciones de imágenes de AMI.

AWS CLI

Para asociar flujos de trabajo de imágenes personalizados al crear una canalización, utilice el create-image-pipeline comando. Especifica tu rol de ejecución con el --execution-role parámetro y lista tus flujos de trabajo de compilación, prueba y distribución con el --workflows parámetro. En el siguiente ejemplo, se crea una canalización con un flujo de trabajo de compilación, un flujo de trabajo de prueba y un flujo de trabajo de distribución.

aws imagebuilder create-image-pipeline \ --name example-pipeline \ --image-recipe-arn arn:aws:imagebuilder:us-west-2:111122223333:image-recipe/example/1.0.0 \ --infrastructure-configuration-arn arn:aws:imagebuilder:us-west-2:111122223333:infrastructure-configuration/example \ --execution-role arn:aws:iam::111122223333:role/ImageBuilderWorkflowExecutionRole \ --workflows '[ {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/build/example-build/1.0.0"}, {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/test/example-test/1.0.0","parallelGroup":"group-1","onFailure":"CONTINUE"}, {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/distribution/example-distribute/1.0.0"} ]'