

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.

# Tutorial: Usa una acción de AWS Step Functions invocación en una canalización
<a name="tutorials-step-functions"></a>

Se puede utilizar AWS Step Functions para crear y configurar máquinas de estado. En este tutorial, se muestra cómo se agrega una acción de invocación a una canalización que activa las ejecuciones de máquinas de estados desde la canalización. 

**importante**  
Como parte de la creación de una canalización, se utilizará un depósito de artefactos de S3 proporcionado por el cliente CodePipeline para fabricar artefactos. (Es diferente del bucket que se usa para una acción de origen de S3). Si el depósito de artefactos de S3 está en una cuenta diferente a la de tu canalización, asegúrate de que el depósito de artefactos de S3 pertenezca a una Cuentas de AWS persona segura y fiable.

En este tutorial, va a realizar las siguientes tareas:
+ Crea un estado estándar en el que esté la máquina. AWS Step Functions
+ Escribir directamente la entrada JSON de la máquina de estados. También puede cargar el archivo de entrada de la máquina de estados en un bucket de Amazon Simple Storage Service (Amazon S3).
+ Actualizar la canalización agregando la acción de la máquina de estados.

**Topics**
+ [Requisito previo: cree o elija una canalización sencilla](#tutorials-step-functions-prereq)
+ [Paso 1: Crear la máquina de estados de ejemplo](#tutorials-step-functions-sample)
+ [Paso 2: Agregar una acción de invocación de Step Functions a la canalización](#tutorials-step-functions-pipeline)

## Requisito previo: cree o elija una canalización sencilla
<a name="tutorials-step-functions-prereq"></a>

En este tutorial, va a agregar una acción de invocación a una canalización existente. Puede utilizar la canalización que creó en [Tutorial: Crear una canalización simple (bucket de S3)](tutorials-simple-s3.md) o [Tutorial: Crear una canalización sencilla (CodeCommit repositorio)](tutorials-simple-codecommit.md).

Va a utilizar una canalización existente con una acción de origen y al menos una estructura de dos etapas, pero no se utilizan artefactos de origen en este ejemplo.

**nota**  
Es posible que tenga que actualizar el rol de servicio que se utiliza en la canalización con otros permisos necesarios para ejecutar esta acción. Para ello, abra la consola AWS Identity and Access Management (IAM), busque el rol y, a continuación, añada los permisos a la política del rol. Para obtener más información, consulte [Agrega permisos al rol de CodePipeline servicio](how-to-custom-role.md#how-to-update-role-new-services).

## Paso 1: Crear la máquina de estados de ejemplo
<a name="tutorials-step-functions-sample"></a>

En la consola de Step Functions, cree una máquina de estados utilizando la plantilla de ejemplo `HelloWorld`. Para obtener instrucciones, consulte [Crea una máquina de estados](https://docs.aws.amazon.com/step-functions/latest/dg/getting-started.html#create-state-machine)en la *Guía para desarrolladores de AWS Step Functions *.

## Paso 2: Agregar una acción de invocación de Step Functions a la canalización
<a name="tutorials-step-functions-pipeline"></a>

Agregue una acción de invocación de Step Functions a la canalización del siguiente modo:

1. Inicie sesión en la CodePipeline consola Consola de administración de AWS y ábrala en [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Se muestran los nombres de todas las canalizaciones asociadas a tu AWS cuenta.

1. En **Nombre**, elija el nombre de la canalización que desea editar. Esto abre una vista detallada de la canalización, que incluye el estado de cada una de las acciones en cada etapa de la canalización.

1. En la página de detalles de la canalización, elija **Edit**.

1. En la segunda etapa de la canalización sencilla, elija **Editar la etapa**. Elija **Eliminar**. De este modo, eliminará la segunda etapa, ahora que ya no la necesita.

1. En la parte inferior del diagrama, seleccione **\$1 Add stage (Añadir etapa)**.

1. En **Nombre de la etapa**, escriba un nombre, por ejemplo, **Invoke**, y elija **Agregar la etapa**.

1. Elija **\$1 Add action group (Añadir grupo de acciones)**.

1. En **Nombre de la acción**, escriba un nombre; por ejemplo, **Invoke**.

1. En **Proveedor de acción**, elija **AWS Step Functions**. En el campo **Region (Región)** conserve el valor predeterminado de la región de la canalización.

1. En **Artefactos de entrada**, elija `SourceArtifact`.

1. En **ARN de máquina de estado**, elija el nombre de recurso de Amazon (ARN) de la máquina de estados que creó anteriormente.

1. (Opcional) En **Prefijo de nombre de ejecución**, escriba un prefijo para agregarlo al ID de ejecución de la máquina de estados.

1. En **Tipo de entrada**, elija **Literal**.

1. En **Entrada**, especifique el JSON de entrada que la máquina de estados del ejemplo `HelloWorld` espera usar.
**nota**  
La entrada a la ejecución de la máquina de estados es diferente del término utilizado CodePipeline para describir los artefactos de entrada para las acciones.

   En este ejemplo, especifique el siguiente JSON:

   ```
   {"IsHelloWorldExample": true}
   ```

1. Seleccione **Listo**.

1. En la etapa que está editando, elija **Listo**. En el panel de AWS CodePipeline , elija **Save (Guardar)** y, a continuación, elija **Save (Guardar)** cuando aparezca el mensaje de advertencia.

1. Para enviar los cambios y comenzar una ejecución de la canalización, elija **Release change (Publicar modificación)** y, a continuación, **Release (Publicar)**.

1. En la canalización completada, elija **AWS Step Functions** en la acción de invocación. En la AWS Step Functions consola, consulta el identificador de ejecución de la máquina de estado. El ID indica el nombre de la máquina de estados `HelloWorld` y el ID de ejecución con el prefijo `my-prefix`.

   ```
   arn:aws:states:us-west-2:account-ID:execution:HelloWorld:my-prefix-0d9a0900-3609-4ebc-925e-83d9618fcca1
   ```