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

AWS Step Functions es un servicio de organización sin servidor que le permite integrarse con AWS Lambdafunciones y otras funciones Servicios de AWS para crear aplicaciones críticas para la empresa. A través de la consola gráfica de Step Functions, verá el flujo de trabajo de su aplicación como una serie de pasos controlados por eventos.

Step Functions se basa en máquinas de estado y tareas. En Step Functions, un flujo de trabajo se denomina máquina de estado, que consiste en una serie de pasos controlados en eventos. Cada paso de un flujo de trabajo se denomina estado. Un Task estado representa una unidad de trabajo que realiza otro AWS servicio, por ejemplo. AWS Lambda Un estado de tarea puede llamar a Servicio de AWS cualquier API.

Con los controles incorporados de Step Functions, puede examinar el estado de cada paso de su flujo de trabajo para asegurarse de que su 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 crear flujos de trabajo que procesen y publiquen modelos de machine learning. 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 (ETL). También puede crear flujos de trabajo automatizados y de larga duración para aplicaciones que requieren la interacción humana.

sugerencia

Para familiarizarse con las características principales de Step Functions a través de una serie de módulos interactivos, consulte The AWS Step Functions Workshop. O comience a usar Step Functions siguiendo estos tutoriales de introducción para crear un flujo de trabajo de solicitud de tarjetas de crédito.

AWS SDK e integraciones optimizadas

Para llamar a otros AWS servicios, puedes usar las integraciones del AWS SDK de Step Functions o puedes usar una de las integraciones optimizadas de Step Functions.

Flujos de trabajo estándar y rápidos

Step Functions tiene dos tipos de flujo de trabajo. 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. Sin embargo, los flujos de trabajo express tienen una ejecución at-least-once de flujo 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.

Las ejecuciones son instancias en las que se ejecuta el flujo de trabajo para realizar tareas. 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 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.

Especificaciones de flujos de trabajo estándar

  • Índice de ejecución de 2000 por segundo

  • Índice de transición de estado de 4000 por segundo

  • Con precio por transición de estado

  • Muestra el historial de ejecución y la depuración visual

  • Admite todos los patrones y las integraciones de servicios

Especificaciones de flujos de trabajo rápidos

  • Índice de ejecución de 100 000 por segundo

  • Índice de transición de estado casi ilimitada

  • Precio por número y duración de las ejecuciones

  • Enviar el historial de ejecuciones a Amazon CloudWatch

  • Muestra el historial de ejecución y la depuración visual en función del nivel de registro habilitado

  • Admite todas las integraciones de servicios y la mayoría de patrones

Para obtener más información sobre flujos de trabajo estándar y rápidos, incluidos los precios de Step Functions, consulte los siguientes temas:

Casos de uso

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. En esta sección se describen los casos de uso habituales para trabajar con Step Functions.

Caso de uso n.º 1: Orquestación de funciones

Encadenar

Cree un flujo de trabajo que ejecute un grupo de funciones de Lambda (pasos) en un orden específico. La salida de una función de Lambda pasa a la entrada de la siguiente función de Lambda. El último paso del flujo de trabajo arroja un resultado. Con Step Functions, puede ver cómo cada paso de su flujo de trabajo interactúa entre sí, de modo que puede asegurarse de que cada paso cumple su función prevista.

Para ver un tutorial que muestra cómo crear una máquina de estado con un grupo de funciones, consulte los siguientes temas:

Caso de uso n.º 2: ramificación

Ramificación

Un cliente solicita un aumento del límite de crédito. Al usar un estado Choice, puede hacer que Step Functions tome decisiones en función de las aportaciones del estado Choice. 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.

Caso de uso nº. 3: Gestión de errores

Reintentar/atrapar

Retry

En este caso de uso, un cliente solicita un nombre de usuario. La primera vez, la solicitud de su cliente no es válida. Mediante una instrucción Retry, puede hacer que Step Functions vuelva a intentar la solicitud de su cliente. La primera vez, la solicitud de su cliente es válida.

Catch

En un caso de uso similar, un cliente solicita un nombre de usuario no disponible. Mediante una instrucción Catch, Step Functions le sugiere un nombre de usuario disponible. Si su cliente utiliza el nombre de usuario disponible, puede hacer que Step Functions pase al siguiente paso de su flujo de trabajo, que consiste en enviar un correo electrónico de confirmación. Si su cliente no utiliza el nombre de usuario disponible, haga que Step Functions vaya a otro paso de su flujo de trabajo, que consiste en volver a iniciar el proceso de registro.

Para ver ejemplos más detallados de instrucciones Retry y Catch, consulte lo siguiente:

Caso de uso n.º 4: Humano en el bucle

Encadenar

Con una aplicación bancaria, uno de tus clientes envía dinero a un amigo. El cliente espera un correo electrónico de confirmación. Con una devolución de llamada y un token de tarea, Step Functions le dice a Lambda que envíe el dinero a su cliente e informe cuando el amigo de su cliente lo reciba. Cuando Lambda informa de que el amigo de su cliente ha recibido el dinero, puede hacer que Step Functions pase al siguiente paso de su flujo de trabajo, que consiste en enviar a su cliente un correo electrónico de confirmación.

Para ver un ejemplo de proyecto en el que se muestra una devolución de llamada con un token de tarea, consulte lo siguiente:

Caso de uso n.º 5: procesamiento paralelo

Paralelismo

Un cliente convierte un archivo de vídeo en cinco resoluciones de pantalla diferentes para que los espectadores puedan ver el vídeo en varios dispositivos. Mediante un estado Parallel, Step Functions introduce el archivo de vídeo para que Lambda pueda procesarlo en las cinco resoluciones de pantalla al mismo tiempo.

Caso de uso n.º 6: paralelismo dinámico

Encadenar

Un cliente pide tres artículos y debe preparar cada uno de ellos para su entrega. Comprueba la disponibilidad de cada artículo, reúne cada artículo y, a continuación, empaqueta cada artículo para su entrega. Mediante un estado Map, Step Functions hace que Lambda procese en paralelo cada uno de los artículos del cliente. Una vez que todos los artículos de su cliente estén empaquetados para su entrega, Step Functions pasa al siguiente paso de su flujo de trabajo, que consiste en enviar al cliente un correo electrónico de confirmación con información de seguimiento.

Para ver un proyecto de ejemplo que muestra el paralelismo dinámico mediante un estado Map, consulte lo siguiente:

Integraciones de servicios

Step Functions se integra con varios AWS servicios. Para combinar Step Functions con estos servicios, utilice los siguientes patrones de integración de servicios:

Solicitar una respuesta (predeterminado)
  • Llame a un servicio y deje que Step Funciones avance al siguiente estado después de que obtenga una respuesta HTTP.

Ejecutar un trabajo (.sync)
  • Llame a un servicio y haga que Step Functions espere a que finalice un trabajo.

Espera a que te devuelvan la llamada con un token de tarea (. waitForTaskSímbolo)
  • Llame a un servicio con un token de tarea y haga que Step Functions espere hasta que el token de tarea regrese con una devolución de llamada.

En la siguiente tabla se muestran las integraciones de servicios y los patrones de integración de servicios disponibles para Step Functions.

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.

Standard Workflows
Integraciones de servicios compatibles
Servicio Respuesta de la solicitud Ejecutar un trabajo (.sync) Espere la devolución de la llamada (.waitForTaskToken)
Integraciones optimizadas Amazon API Gateway
Amazon Athena
AWS Batch
Amazon Bedrock
AWS CodeBuild
Amazon DynamoDB
Amazon ECS/Fargate
Amazon EKS
Amazon EMR
Amazon EMR on EKS
Amazon EMR Serverless
Amazon EventBridge
AWS Glue
AWS Glue DataBrew
AWS Lambda
AWS Elemental MediaConvert
Amazon SageMaker
Amazon SNS
Amazon SQS
AWS Step Functions
AWS Integraciones de SDK Más de doscientas
Express Workflows

Regiones de admitidas

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

¿Es la primera vez que utiliza Step Functions?

Si es la primera vez que utiliza Step Functions, los temas siguientes le ayudarán a comprender las distintas partes del trabajo con Step Functions, incluida la forma en que Step Functions se combina con otros AWS servicios: