

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
<a name="image-workflow-create-document"></a>

El documento de definición del formato YAML configura los pasos de entrada, salida y flujo de trabajo para las etapas de creación y prueba del proceso de creación de la imagen. 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
<a name="workflow-document-structure"></a>

El documento de flujos de trabajo YAML que Generador de imágenes utiliza para realizar acciones de creación y prueba de imágenes se estructura de la siguiente manera.
+ [Identificación de documentos de flujo de trabajo](#wfdoc-struct-ident)
+ [Parámetros de entrada de documentos de flujo](#wfdoc-struct-param)
+ [Flujo de documentos](#wfdoc-struct-step)
+ [Resultados de documentos de flujo de trabajo](#wfdoc-struct-output)

### Identificación de documentos de flujo de trabajo
<a name="wfdoc-struct-ident"></a>

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
<a name="wfdoc-struct-param"></a>

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 dispone de ningún parámetro, puede omitir esta sección. Si especifica parámetros, cada parámetro puede incluir los siguientes atributos.


|  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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/image-workflow-create-document.html)  | 

**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
<a name="wfdoc-struct-step"></a>

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 al resultado de una acción de un paso anterior, puedes usar un JSONPath selector. 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](wfdoc-dynamic-vars.md).

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

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`: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/image-workflow-create-document.html)  | 
|  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 clave como valores estáticos o con una JSONPath variable 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. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/image-workflow-create-document.html)  |  Cadena  |  No  |  `Abort`  |  `Abort` \$1 `Continue`  | 
|  rollbackEnabled  |  Configura si el paso se restaurará en caso de que se produzca un error. Puede usar un valor booleano estático o una JSONPath variable dinámica que se resuelva en un valor booleano.  |  Booleano  |  No  |  `true`  |  `true` \$1 `false` \$1 o una JSONPath variable que se resuelva como verdadera o falsa.  | 
|  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"
```

### Resultados de documentos de flujo de trabajo
<a name="wfdoc-struct-output"></a>

Define las salidas del flujo de trabajo. Cada salida es un par de clave-valor 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.

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](wfdoc-dynamic-vars.md).  |  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
```