¿Qué es Step Functions? - 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.

¿Qué es Step Functions?

Con AWS Step Functionsél, puede crear flujos de trabajo, también denominados máquinas de estados, para crear aplicaciones distribuidas, automatizar procesos, organizar microservicios y crear canalizaciones de datos y aprendizaje automático.

Step Functions se basa en máquinas y tareas de estados. En Step Functions, las máquinas de estados se denominan flujos de trabajo, que son una serie de pasos basados en eventos. Cada paso de un flujo de trabajo se denomina estado. Por ejemplo, un estado de tarea representa una unidad de trabajo que realiza otro AWS servicio, como llamar a otro Servicio de AWS oAPI. Las instancias de flujos de trabajo en ejecución que realizan tareas se denominan ejecuciones en Step Functions.

Ejemplo ilustrativo de un diagrama de flujo de trabajo de Step Functions.

En la consola de Step Functions, puede visualizar, editar y depurar el flujo de trabajo de su aplicación. Puede examinar el estado de cada paso de su flujo de trabajo para asegurarse de que la aplicación se ejecuta en orden y según lo esperado.

Según su caso de uso, puede hacer que Step Functions llame a AWS servicios, como Lambda, para realizar tareas. Puede disponer de AWS servicios de control de Step Functions, por ejemplo AWS Glue, para crear flujos de trabajo de extracción, transformación y carga. También puede crear flujos de trabajo automatizados y de larga duración para aplicaciones que requieren la interacción humana.

Para obtener una lista completa de AWS las regiones en las que Step Functions está disponible, consulta la tabla de AWS regiones.

Aprenda a usar Step Functions

Para aprender a usar Step Functions, siga los módulos interactivos del AWS Step Functions taller o consulte la sección Primeros pasos de esta guía.

Tipos de flujos de trabajo estándar y exprés

Step Functions tiene dos tipos de flujo de trabajo:

  • Los flujos de trabajo estándar son ideales para flujos de trabajo auditables y de larga duración, ya que muestran el historial de ejecución y la depuración visual.

    Los flujos de trabajo estándar se ejecutan exactamente una vez y pueden durar hasta un año. Esto significa que cada paso de un flujo de trabajo estándar se ejecutará exactamente una vez.

  • Los flujos de trabajo exprés son ideales para high-event-rate cargas de trabajo, como el procesamiento de datos en streaming y la ingesta de datos de IoT.

    Los flujos de trabajo exprés tienen una ejecución de at-least-onceflujo de trabajo y pueden ejecutarse durante un máximo de cinco minutos. Esto significa que uno o más pasos de un flujo de trabajo rápidos pueden ejecutarse más de una vez, mientras que cada paso del flujo de trabajo se ejecuta al menos una vez.

Flujos de trabajo estándar Flujos de trabajo rápidos
Índice de ejecución de 2000 por segundo Índice de ejecución de 100 000 por segundo
Índice de transición de estado de 4000 por segundo Índice de transición de estado casi ilimitada
Con precio por transición de estado Precio por número y duración de las ejecuciones
Muestra el historial de ejecución y la depuración visual Muestra el historial de ejecución y la depuración visual en función del nivel de registro
Consulta el historial de ejecuciones en Step Functions

Envíe el historial de ejecuciones a CloudWatch

Support integraciones con todos los servicios.

Support optimiza las integraciones con algunos servicios.

Support integraciones con todos los servicios.
Patrón de respuesta a solicitudes de soporte para todos los servicios

Support Run a Job y/o Wait for Callback en servicios específicos (consulte la siguiente sección para obtener más información)

Patrón de respuesta a solicitudes de soporte para todos los servicios

Para obtener más información sobre los precios de Step Functions y la elección del tipo de flujo de trabajo, consulte lo siguiente:

Integración con otros servicios de

Step Functions se integra con varios AWS servicios. Para llamar a otros AWS servicios, puede utilizar dos tipos de integración:

  • AWS SDKLas integraciones permiten llamar a cualquier AWS servicio directamente desde tu máquina de estados, lo que te da acceso a miles de API acciones.

  • Las integraciones optimizadas ofrecen opciones personalizadas para usar esos servicios en sus máquinas de estado.

Para combinar Step Functions con otros servicios, existen tres patrones de integración de servicios:

Los flujos de trabajo estándar y los flujos de trabajo exprés admiten las mismas integraciones pero no los mismos patrones de integración.

Los flujos de trabajo de Express admiten Request Response, pero no admiten Run a Job (.sync) ni Wait for Callback (. waitForTaskSímbolo).

Para obtener más información, consulte Elegir el tipo de flujo de trabajo en Step Functions.

AWS SDKIntegraciones compatibles en Step Functions

Integraciones optimizadas compatibles en Step Functions

Servicio Respuesta de la solicitud Ejecutar un trabajo (.sync) Espere la devolución de la llamada (.waitForTaskToken)
Amazon API Gateway Estándar y exprés No compatible Estándar
Amazon Athena Estándar y exprés Estándar No compatible
AWS Batch Estándar y exprés Estándar No compatible
Amazon Bedrock Estándar y exprés Estándar Estándar
AWS CodeBuild Estándar y exprés Estándar No compatible
Amazon DynamoDB Estándar y exprés No admitido No admitido
Amazon ECS/Fargate Estándar y exprés Estándar Estándar
Amazon EKS Estándar y exprés Estándar Estándar
Amazon EMR Estándar y exprés Estándar No compatible
Amazon EMR on EKS Estándar y exprés Estándar No compatible
Amazon EMR Serverless Estándar y exprés Estándar No compatible
Amazon EventBridge Estándar y exprés No compatible Estándar
AWS Glue Estándar y exprés Estándar No compatible
AWS Glue DataBrew Estándar y exprés Estándar No compatible
AWS Lambda Estándar y exprés No compatible Estándar
AWS Elemental MediaConvert Estándar y exprés Estándar No compatible
Amazon SageMaker Estándar y exprés Estándar No compatible
Amazon SNS Estándar y exprés No compatible Estándar
Amazon SQS Estándar y exprés No compatible Estándar
AWS Step Functions Estándar y exprés Estándar Estándar

Ejemplos de casos de uso para flujos de trabajo

Step Functions gestiona los componentes y la lógica de la aplicación para que pueda escribir menos código y centrarse en crear y actualizar la aplicación rápidamente. La siguiente imagen muestra seis casos de uso de los flujos de trabajo de Step Functions.

Ejemplos visuales de seis casos de uso comunes de flujos de trabajo, que se describen en el texto siguiente.

  1. Organice las tareas: puede crear flujos de trabajo que organicen una serie de tareas o pasos en un orden específico. Por ejemplo, la tarea A podría ser una función Lambda que proporciona entradas para otra función Lambda de la tarea B. El último paso del flujo de trabajo proporciona el resultado final.

  2. Elige tareas en función de los datos: al usar un Choice estado, puedes hacer que Step Functions tome decisiones en función de las entradas del estado. Por ejemplo, imagine que un cliente solicita un aumento del límite de crédito. Si la solicitud supera el límite de crédito previamente aprobado por su cliente, puede hacer que Step Functions envíe la solicitud de su cliente a un administrador para que la apruebe. Si la solicitud es inferior al límite de crédito preaprobado por su cliente, puede hacer que Step Functions apruebe la solicitud automáticamente.

  3. Gestión de errores (Retry/Catch): puede volver a intentar las tareas fallidas o detectar las tareas fallidas y ejecutar automáticamente pasos alternativos.

    Por ejemplo, después de que un cliente solicite un nombre de usuario, es posible que la primera llamada al servicio de validación falle, por lo que el flujo de trabajo podría volver a intentar la solicitud. Cuando la segunda solicitud se realice correctamente, el flujo de trabajo podrá continuar.

    O bien, si el cliente solicitó un nombre de usuario no válido o no disponible, una Catch declaración podría llevar a un paso del flujo de trabajo de Step Functions que sugiera un nombre de usuario alternativo.

    Para ver ejemplos de Retry yCatch, consulteGestión de errores de estado en los flujos de trabajo de Step Functions.

  4. Human in the loop: Step Functions puede incluir pasos de aprobación humana en el flujo de trabajo. Por ejemplo, imagine que un cliente bancario intenta enviar fondos a un amigo. Con una llamada y un token de tarea, puedes hacer que Step Functions espere hasta que el amigo del cliente confirme la transferencia y, a continuación, Step Functions continuará con el flujo de trabajo para notificar al cliente bancario que la transferencia se ha completado.

    Para ver un ejemplo, consulte Ejemplo de creación de un patrón de devolución de llamada con Amazon SQSSNS, Amazon y Lambda.

  5. Procesamiento paralelo: al usar un Parallel estado, Step Functions puede procesar entradas en paralelo. Por ejemplo, es posible que un cliente necesite convertir un archivo de vídeo a varias resoluciones de pantalla para que los espectadores puedan ver el vídeo en varios dispositivos. Su flujo de trabajo podría enviar el archivo de vídeo original a varias funciones de Lambda o utilizar la AWS Elemental MediaConvert integración optimizada para procesar un vídeo en varias resoluciones de pantalla al mismo tiempo.

  6. Paralelismo dinámico: al usar un Map estado, Step Functions puede ejecutar un conjunto de pasos de flujo de trabajo en cada elemento de un conjunto de datos. Las iteraciones se ejecutan en paralelo, lo que permite procesar un conjunto de datos rápidamente. Por ejemplo, cuando un cliente pide treinta artículos, el sistema debe aplicar el mismo flujo de trabajo para preparar cada artículo para su entrega. Una vez que se hayan reunido y empaquetado todos los artículos para su entrega, el siguiente paso podría ser enviar rápidamente al cliente un correo electrónico de confirmación con la información de seguimiento.

    Para ver un ejemplo de plantilla de inicio, consulteProcesa datos de forma dinámica con un mapa.