

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.

# Continuación con los flujos de trabajo de larga duración mediante la API de Step Functions (recomendada)
<a name="tutorial-continue-new"></a>

AWS Step Functions está diseñado para ejecutar flujos de trabajo con una duración y un número de pasos finitos. Las ejecuciones de flujos de trabajo estándar tienen una duración máxima de un año y 25 000 eventos (véase [Service Quotas de Step Functions](service-quotas.md)).

En el caso de las ejecuciones de larga duración, puede evitar alcanzar la cuota impuesta iniciando una nueva ejecución de flujo de trabajo desde el estado `Task`. Es necesario dividir sus flujos de trabajo en máquinas de estado más pequeñas que continúen el trabajo en curso en una nueva ejecución.

Para iniciar nuevas ejecuciones de flujos de trabajo, deberá llamar a la acción de la API `StartExecution` desde su estado `Task` y pasar los parámetros necesarios.

Step Functions puede iniciar estas ejecuciones de flujos de trabajo llamando a su propia API como [servicio integrado](integrate-services.md). Le recomendamos que utilice este método para evitar superar las cuotas de servicio en el caso de ejecuciones prolongadas.

## Paso 1: Crear una máquina de estado de ejecución prolongada
<a name="use-sfn-api-create-called-state-machine"></a>

Cree una máquina de estado de ejecución prolongada que desee iniciar desde el estado `Task` de otra máquina de estado. Para este tutorial, utilice la [máquina de estado que utiliza una función de Lambda](tutorial-creating-lambda-state-machine.md).

**nota**  
Asegúrese de copiar el nombre y el nombre de recurso de Amazon de esta máquina de estado en un archivo de texto para su uso posterior.

## Paso 2: Crear una máquina de estado para llamar a la acción de la API Step Functions
<a name="use-sfn-api-create-caller-state-machine"></a>

**Para iniciar ejecuciones de flujo de trabajo desde un estado `Task`**

1. Abra la [consola de Step Functions](https://console.aws.amazon.com/states/home), seleccione **Máquinas de estado** y, a continuación, elija **Crear máquina de estado**.

1. Elija **Crear desde cero**.

1. Asigne un nombre a la máquina de estado y, a continuación, elija **Continuar** para editarla en Workflow Studio.

1. Desde la pestaña **Acciones**, arrastra la acción de la **StartExecution**API y suéltala en el estado vacío denominado **Arrastra el primer estado aquí**.

1. Elija el **StartExecution**estado y haga lo siguiente en la pestaña **Configuración** de: [Modo Diseño](workflow-studio.md#wfs-interface-design-mode)

   1. Cambie el nombre del estado a **Start nested execution**.

   1. En **Tipo de integración**, seleccione **AWS SDK: nuevo** en la lista desplegable.

   1. En **Parámetros de API**, haga lo siguiente:

      1. En `StateMachineArn`, sustituya el ejemplo de nombre de recurso de Amazon por el ARN de su máquina de estado. Por ejemplo, introduzca el ARN de la [máquina de estado que utiliza Lambda](tutorial-creating-lambda-state-machine.md).

      1. En el nodo `Input`, sustituya el texto del marcador de posición existente por el siguiente valor:

         ```
         "Comment": "Starting workflow execution using a Step Functions API action"
         ```

      1. Asegúrese de que las entradas en **Parámetros de API** son similares a las siguientes:

         ```
         {
           "StateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine",
           "Input": {
             "Comment": "Starting workflow execution using a Step Functions API action",
             "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
           }
         ```

1. (Opcional) Seleccione **Definición** en el panel [Panel del inspector](workflow-studio.md#workflow-studio-components-formdefinition) para ver la definición de [Amazon States Language](concepts-amazon-states-language.md) (ASL) generada automáticamente del flujo de trabajo.
**sugerencia**  
También puede ver la definición de ASL en el [Editor de código](workflow-studio.md#wfs-interface-code-editor) de Workflow Studio. En el editor de código también puede editar la definición de ASL del flujo de trabajo.

1. Especifique un nombre para la máquina de estado. Para ello, seleccione el icono de edición situado junto al nombre predeterminado de la máquina de estado **MyStateMachine**. A continuación, en **Configuración de máquina de estado**, especifique un nombre en el cuadro **Nombre de la máquina de estado**.

   En este tutorial, ingrese el nombre **ParentStateMachine**.

1. (Opcional) En **Configuración de máquina de estado**, especifique otros ajustes del flujo de trabajo, como el tipo de máquina de estado y su función de ejecución.

   Para este tutorial, mantenga todas las selecciones predeterminadas en **Configuración de máquina de estado**.

   Si [ya ha creado un rol de IAM](procedure-create-iam-role.md) con los permisos correctos para su máquina de estado y desea utilizarlo, en **Permisos**, seleccione **Elegir un rol existente** y, a continuación, seleccione un rol de la lista. O seleccione **Escribir un ARN de rol** y, a continuación, proporcione un ARN para ese rol de IAM.

1. En el cuadro de diálogo **Confirmar creación de rol**, elija **Confirmar** para continuar.

   También puede seleccionar **Ver configuración de rol** para volver a **Configuración de máquina de estado**.
**nota**  
Si se elimina el rol de IAM que crea Step Functions, no se podrá volver a crear más adelante. Asimismo, si se modifica el rol (por ejemplo, eliminando Step Functions de las entidades principales de la política de IAM), Step Functions no podrá restablecer la configuración original más adelante. 

## Paso 3: Actualizar la política de IAM
<a name="use-sfn-api-update-policy-start-execution"></a>

Para asegurarse de que su máquina de estado tiene permisos para iniciar la ejecución de la [máquina de estado que utiliza una función de Lambda](tutorial-creating-lambda-state-machine.md), debe asociar una política insertada al rol de IAM de la máquina de estado. Para obtener más información, consulte [Para integrar una política insertada](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#embed-inline-policy-console) en la *Guía del usuario de IAM*.

1. En la **ParentStateMachine**página, elija el ARN del **rol de IAM** para ir a la página de roles de **IAM** de su máquina de estado.

1. Asigne el permiso adecuado a la función de IAM **ParentStateMachine**para que pueda iniciar la ejecución de otra máquina de estado. Para asignar estos permisos, haga lo siguiente:

   1. En la página **Roles** de IAM, elija **Agregar permisos** y, a continuación, **Crear política insertada**.

   1. En la página **Crear política**, elija la pestaña **JSON**.

   1. Reemplace el texto existente por la política siguiente.  
****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "states:StartExecution"
                ],
                "Resource": [
                    "arn:aws:states:us-east-1:123456789012:stateMachine:LambdaStateMachine"
                ]
            }
        ]
      }
      ```

   1. Elija **Revisar política**.

   1. Escriba un nombre para la política y elija **Crear política**.

## Paso 4: Ejecutar la máquina de estado
<a name="use-sfn-api-start-execution"></a>

Las ejecuciones de máquinas de estado son instancias en las que se ejecuta un flujo de trabajo para realizar tareas.

1. En la **ParentStateMachine**página, elija **Iniciar la ejecución**.

   Aparece el cuadro de diálogo **Iniciar ejecución**.

1. En el cuadro de diálogo **Iniciar ejecución**, haga lo siguiente:

   1. (Opcional) Introduzca un nombre de ejecución personalizado para anular el valor predeterminado generado.
**Nombres y registros con caracteres no ASCII**  
Step Functions acepta nombres para máquinas de estado, ejecuciones, actividades y etiquetas que contengan caracteres no ASCII. Dado que estos caracteres impedirán que Amazon registre CloudWatch datos, te recomendamos que utilices únicamente caracteres ASCII para poder realizar un seguimiento de las métricas de Step Functions.

   1. (Opcional) En el cuadro **Entrada**, introduzca los valores de entrada en formato JSON para ejecutar el flujo de trabajo.

   1. Seleccione **Iniciar ejecución**.

   1. La consola de Step Functions le dirige a una página cuyo título es su ID de ejecución. Esta página se conoce como *Detalles de la ejecución*. En esta página, puede revisar los resultados de la ejecución a medida que avanza la ejecución o una vez finalizada.

      Para revisar los resultados de la ejecución, elija los estados individuales en la **Vista de gráfico** y, a continuación, elija las pestañas individuales del panel [Detalles del paso](concepts-view-execution-details.md#exec-details-intf-step-details) para ver los detalles de cada estado, incluidas la entrada, la salida y la definición, respectivamente. Para obtener más información sobre la ejecución que puede ver en la página *Detalles de la ejecución*, consulte [Información general sobre los detalles de ejecución](concepts-view-execution-details.md#exec-details-interface-overview).

1. Abre la **LambdaStateMachine**página y observa una nueva ejecución provocada por el **ParentStateMachine**.