View a markdown version of this page

Creación de un documento de flujos de trabajo YAML - 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.

Creación de un documento de flujos de trabajo YAML

El documento de definición de formato YAML configura los pasos de entrada, salida y flujo de trabajo para las etapas de creación, prueba y distribución del proceso de creación de imágenes. El mismo formato de documento se aplica a los tres tipos de flujo de trabajo. Puede empezar con plantillas que incluyan pasos estandarizados, o bien puede empezar desde cero para definir su propio flujo de trabajo. Tanto si utiliza una plantilla como si empieza desde cero, puede personalizar el flujo de trabajo para adaptarlo a sus necesidades.

Estructura de un documento de flujos de trabajo YAML

En las siguientes secciones se describe la estructura del documento de flujo de trabajo YAML que Image Builder utiliza para realizar acciones de creación, prueba y distribución de imágenes.

Identificación de documentos de flujo de trabajo

Identifica de forma única el flujo de trabajo. En esta sección se pueden incluir los siguientes atributos.

Campo

Description (Descripción)

Tipo

Obligatorio/a

Nombre

Nombre del documento de flujos de trabajo.

Cadena

No

description

Descripción del documento.

Cadena

No

schemaVersion

Versión del esquema del documento, actualmente 1.0.

Cadena

Sí

Ejemplo

--- name: sample-test-image description: Workflow for a sample image, with extra configuration options exposed through workflow parameters. schemaVersion: 1.0

Parámetros de entrada de documentos de flujo

En esta parte del documento de flujos de trabajo se definen los parámetros de entrada que la persona que llama puede especificar. Si no tiene ningún parámetro, puede omitir esta sección. Si especifica parámetros, cada parámetro puede incluir los siguientes atributos.

Puede definir hasta 25 parámetros en un documento de flujo de trabajo. Cada valor de parámetro puede contener hasta 1024 caracteres. Un parámetro debe usar uno de los cuatro tipos de datos admitidos:string, integerboolean, ostringList. Si no especifica un default valor para un parámetro, debe proporcionar el valor del parámetro en tiempo de ejecución.

Campo

Description (Descripción)

Tipo

Obligatorio/a

Restricciones

name

El nombre del parámetro.

Cadena

Sí

description

Descripción del parámetro.

Cadena

No

predeterminado

Si no se proporciona ningún valor, el valor predeterminado del parámetro. Si no incluye un valor predeterminado en la definición del parámetro, el valor del parámetro es obligatorio en tiempo de ejecución.

Coincide con el tipo de datos del parámetro.

No

type

El tipo de datos del parámetro. Si no incluye el tipo de datos en la definición del parámetro, el tipo del parámetro toma como predeterminado un valor de cadena obligatorio en tiempo de ejecución.

Cadena

Sí

El tipo de datos del parámetro debe ser uno de los siguientes:

  • string

  • integer

  • boolean

  • stringList

Ejemplo

Especifique el parámetro en el documento de flujos de trabajo.

parameters: - name: waitForActionAtEnd type: boolean default: true description: "Wait for an external action at the end of the workflow"

Utilice el valor del parámetro en el documento de flujos de trabajo.

$.parameters.waitForActionAtEnd

Flujo de documentos

Especifica hasta 15 acciones de paso para el flujo de trabajo. Los pasos se ejecutan en el orden en que se definen en el documento de flujos de trabajo. En caso de error, se ejecuta una restauración en orden inverso, empezando por el paso en el que se produjo el error y siguiendo por los pasos anteriores.

Cada paso puede hacer referencia a la salida de cualquier acción de paso anterior. Esto se conoce como encadenamiento o referencia. Para hacer referencia a la salida de la acción de un paso anterior, puede utilizar un selector JSONPath. Por ejemplo:

$.stepOutputs.step-name.output-name

Para obtener más información, consulte Uso de variables dinámicas en el documento de flujos de trabajo.

nota

Aunque el paso en sí no tenga un atributo de salida, todas las salidas de una acción de paso se incluyen en stepOutput para el paso.

nota

Si lo configura waitSeconds para un paso, el valor debe ser inferior atimeoutSeconds. Cada acción de paso también define un timeoutSeconds valor máximo. Si estableces un valor timeoutSeconds superior al máximo para la acción, la validación fallará. Para conocer los máximos por acción, consulte. Acciones de paso admitidas para el documento de flujos de trabajo

Cada paso puede incluir los siguientes atributos.

Campo

Description (Descripción)

Tipo

Obligatorio/a

Predeterminado

Restricciones

acción

Acción de flujo de trabajo que realiza este paso.

Cadena

Sí

Debe ser una acción de paso admitida para los documentos de flujos de trabajo de Generador de imágenes.

if, seguido de un conjunto de instrucciones condicionales que modifican el operador if.

Las instrucciones condicionales agregan puntos de decisión sobre el flujo de control al cuerpo de los pasos del flujo de trabajo.

Dict

No

Generador de imágenes admite las siguientes instrucciones condicionales como modificadores del operador if:

  • Condiciones y modificadores de ramificación: if, and, or, not. Las condiciones de ramificación se especifican en una línea por sí mismas.

  • Operadores de comparación: booleanEquals, numberEquals, numberGreaterThan, numberGreaterThanEquals, numberLessThan, numberLessThanEquals, stringEquals.

description

Descripción del paso.

Cadena

No

No se permiten cadenas vacías. Si se incluye, la longitud debe ser de 1 a 1024 caracteres.

inputs

Contiene los parámetros que debe ejecutar la acción del paso. Puede especificar los valores de clave como valores estáticos o con una variable JSONPath que se resuelva en el tipo de datos correcto.

Dict

Sí

name

El nombre del paso. Este nombre debe ser único dentro del documento de flujos de trabajo.

Cadena

Sí

Debe tener entre 3 y 128 caracteres de longitud.

Puede incluir caracteres alfanuméricos y _. Sin espacios.

onFailure

Configura la acción que se debe realizar si el paso produce un error, de la siguiente manera.

Comportamiento
  • Abort: genera un error en el paso, genera un error en el flujo de trabajo y no ejecuta ningún paso restante después del paso con error. Si la restauración está habilitada, esta comienza con el paso con error y continúa hasta que se restauren todos los pasos que la permiten.

  • Continue: genera un error en el paso, pero se siguen ejecutando los pasos restantes después del paso con error. En este caso, no hay ninguna restauración.

Cadena

No

Abort

Abort | Continue

reintentar

Configura Image Builder para que vuelva a ejecutar automáticamente el paso si se produce un error. Para obtener más información, consulte Reintente los pasos del flujo de trabajo fallidos.

Dict

No

Sin reintentos

El retry atributo contiene los siguientes campos:

  • maxAttempts(obligatorio): el número total de veces que se puede ejecutar el paso, incluido el primer intento. Valores válidos: 1 a 10.

  • backoffSeconds(opcional): el número de segundos que Image Builder espera antes de iniciar cada reintento. Si no estableces ningún valor, Image Builder espera 30 segundos. Valores válidos: 0—600.

rollbackEnabled

Configura si el paso se restaurará en caso de que se produzca un error. Puede usar un valor booleano estático o una variable JSONPath dinámica que se resuelva en un valor booleano.

Booleano

No

true

true | false

| o una variable JSONPath que se resuelve en true o false.

timeoutSeconds

Tiempo máximo, en segundos, que se ejecuta el paso antes de producir un error y volver a intentarlo, si se aplican los reintentos.

Entero

No

Depende del valor predeterminado definido para la acción del paso, si corresponde.

No puede superar el tiempo de espera máximo de la acción del paso

Espere unos segundos

El tiempo, en segundos, durante el que se detendrá la ejecución del paso.

Entero

No

0

No puede ser superior a TimeoutSeconds de la acción del paso

Ejemplo

steps: - name: LaunchTestInstance action: LaunchInstance onFailure: Abort inputs: waitFor: "ssmAgent" - name: ApplyTestComponents action: ExecuteComponents onFailure: Abort inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId" - name: TerminateTestInstance action: TerminateInstance onFailure: Continue inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId" - name: WaitForActionAtEnd action: WaitForAction if: booleanEquals: true value: "$.parameters.waitForActionAtEnd"

Reintente los pasos del flujo de trabajo fallidos

De forma predeterminada, cada paso de un flujo de trabajo se ejecuta una vez. Para que Image Builder vuelva a ejecutar automáticamente un paso cuando se produzca un error, añada el retry atributo al paso. El retry atributo contiene los siguientes campos.

  • maxAttempts(obligatorio): el número total de veces que se puede ejecutar el paso, incluido el primer intento. Por ejemplo, si se establece maxAttempts en 3 y todos los intentos fallan, el paso se ejecuta tres veces antes de que Image Builder lo marque como fallido. Valores válidos: 1 a 10.

  • backoffSeconds(opcional): el número de segundos que Image Builder espera antes de iniciar cada reintento. Si no estableces ningún valor, Image Builder espera 30 segundos. Para volver a intentarlo inmediatamente, defina el valor en. 0 Valores válidos: 0—600.

Los reintentos funcionan de la siguiente manera:

  • El timeoutSeconds valor del paso se aplica a cada intento por separado. El reloj de tiempo de espera se reinicia cuando se inicia un reintento.

  • Si el paso sigue fallando después del último intento, se aplicará el onFailure comportamiento del paso.

Algunas acciones escalonadas tienen un comportamiento de reintento adicional:

  • Antes de volver a intentar un LaunchInstance paso, Image Builder finaliza la instancia que lanzó el intento fallido. Al volver a intentarlo, se lanza una nueva instancia.

  • Al volver a intentar un ExecuteComponents paso, Image Builder vuelve a ejecutar los componentes desde el principio. No deshace los cambios que un intento fallido ya haya realizado en la instancia. Antes de configurar los reintentos para un paso en el que se ejecutan componentes, asegúrate de que los componentes se puedan ejecutar de forma segura más de una vez.

Para ver cuántas veces se ejecutó un paso, usa las operaciones GetWorkflowStepExecution o ListWorkflowStepExecutions API. La respuesta incluye los maxAttempts campos attemptNumber y del paso.

nota

El retry atributo de un paso del flujo de trabajo es independiente del maxAttempts campo, que reintenta un paso individual dentro de un documento TOE de AWS componente. Para obtener más información, consulte Use la TOE de AWS marco de documentos de componentes para componentes personalizados.

Ejemplo

steps: - name: LaunchBuildInstance action: LaunchInstance onFailure: Abort retry: maxAttempts: 3 backoffSeconds: 60 inputs: waitFor: "ssmAgent"

Resultados de documentos de flujo de trabajo

Define las salidas del flujo de trabajo. Cada salida es un par de valores clave que especifica el nombre de la salida y el valor. Puede utilizar las salidas para exportar datos en tiempo de ejecución que puedan utilizar los flujos de trabajo posteriores. Esta sección es opcional.

Puede definir hasta 25 salidas en un documento de flujo de trabajo. El nombre de cada salida debe ser único en todos los flujos de trabajo que incluyas en tu canalización. Luego, un flujo de trabajo posterior puede hacer referencia a una salida por su nombre con$.workflowOutputs.name.

nota

Se hace referencia a la salida de un paso del mismo flujo de trabajo con$.stepOutputs.stepName.field, pero se hace referencia a la salida de un flujo de trabajo anterior solo con el nombre de salida ($.workflowOutputs.name) y sin el nombre del paso.

Cada salida que defina incluye los siguientes atributos.

Campo

Description (Descripción)

Tipo

Obligatorio/a

Nombre

El nombre de la salida. El nombre debe ser único en todos los flujos de trabajo que incluya en la canalización.

Cadena

Sí

valor

Valor de la salida. El valor de la cadena puede ser una variable dinámica, como un archivo de salida de una acción de paso. Para obtener más información, consulte Uso de variables dinámicas en el documento de flujos de trabajo.

Cadena

Sí

Ejemplo

Cree un ID de imagen de salida para el documento de flujos de trabajo con la salida del paso createProdImage.

outputs: - name: 'outputImageId' value: '$.stepOutputs.createProdImage.imageId'

Consulte la salida del flujo de trabajo en el siguiente flujo de trabajo.

$.workflowOutputs.outputImageId