Continúe con los flujos de trabajo de larga duración con Step Functions API (recomendado) - AWS Step Functions

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.

Continúe con los flujos de trabajo de larga duración con Step Functions API (recomendado)

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 (consulteCuotas de servicio de Step Functions).

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

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

Step Functions puede iniciar las ejecuciones del flujo de trabajo llamando a las suyas propias API como un servicio integrado. 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

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.

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 estados para llamar a la API acción Step Functions

Para iniciar ejecuciones de flujo de trabajo desde un estado Task
  1. Abra la consola de Step Functions y seleccione Crear máquina de estado.

  2. En el cuadro de diálogo Elegir una plantilla, seleccione En blanco.

  3. Seleccione Seleccionar para abrir Workflow StudioModo Diseño.

  4. En la pestaña Acciones, arrastre la StartExecutionAPIacción y suéltela en el estado vacío denominado Arrastre el primer estado aquí.

  5. Elija el StartExecutionestado y haga lo siguiente en la pestaña Configuración de: Modo Diseño

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

    2. En Tipo de integración, elija AWS SDK- nuevo de la lista desplegable.

    3. En APIParámetros, haga lo siguiente:

      1. ParaStateMachineArn, sustituya el ejemplo de Amazon Resource Name por el ARN de su máquina de estado. Por ejemplo, introduzca el ARN de la máquina de estados que usa Lambda.

      2. 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"
      3. Asegúrese de que las entradas en APIlos parámetros sean 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" }
  6. (Opcional) Selecciona Definición en el Panel de inspectores panel para ver la definición de tu flujo de trabajo generada automáticamente Amazon States Language (ASL).

    sugerencia

    También puede ver la ASL definición en Workflow StudioEditor de código. En el editor de código, también puede editar la ASL definición de su flujo de trabajo.

  7. Especifique un nombre para la máquina de estado. Para ello, elija 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.

  8. (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 IAM rol con los permisos correctos para su máquina estatal y desea usarlo, en Permisos, seleccione Elegir un rol existente y, a continuación, seleccione un rol de la lista. O selecciona Introducir un rol ARN y, a continuación, proporciona ARN uno para ese IAM rol.

  9. 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 eliminas el IAM rol que Step Functions crea, Step Functions no podrá volver a crearlo más adelante. Del mismo modo, si modificas el rol (por ejemplo, quitando Step Functions de los principios de la IAM política), Step Functions no podrá restaurar su configuración original más adelante.

Paso 3: Actualizar la política IAM

Para asegurarse de que la máquina de estados tiene permisos para iniciar la ejecución de la máquina de estados que usa una función Lambda, debe adjuntar una política en línea a la función de la máquina de estados. IAM Para obtener más información, consulte Incrustar políticas en línea en la Guía del usuario. IAM

  1. En la ParentStateMachinepágina, elija el IAMrol ARN para ir a la página de IAM roles de su máquina de estados.

  2. Asigne el permiso adecuado a la IAM función ParentStateMachinepara que pueda iniciar la ejecución de otra máquina de estados. Para asignar estos permisos, haga lo siguiente:

    1. En la página IAM Funciones, elija Agregar permisos y, a continuación, elija Crear política integrada.

    2. En la página Crear política, selecciona la JSONpestaña.

    3. 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-2:123456789012:stateMachine:LambdaStateMachine" ] } ] }
    4. Elija Revisar política.

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

Paso 4: Ejecutar la máquina de estado

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

  1. En la ParentStateMachinepágina, elija Iniciar ejecución.

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

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

      ASCIINombres no identificables y registro

      Step Functions acepta nombres para máquinas de estados, ejecuciones, actividades y etiquetas que no contengan ASCII caracteres. Como estos personajes no funcionan con Amazon CloudWatch, te recomendamos que utilices solo ASCII caracteres para poder hacer un seguimiento de las métricas CloudWatch.

    2. (Opcional) En el cuadro de entrada, introduce los valores de entrada en el JSON formato adecuado para ejecutar tu flujo de trabajo.

    3. Seleccione Iniciar ejecución.

    4. 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 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 Descripción general de los detalles de ejecución.

  3. Abra la LambdaStateMachinepágina y observe una nueva ejecución provocada por el ParentStateMachine.