¿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?

Step Functions es un servicio de orquestación sin servidor que le permite combinarAWS Lambdafunciones y otrosAWSservicios para crear aplicaciones críticas para el negocio. A través de la consola gráfica de Step Functions, ve el flujo de trabajo de su aplicación como una serie de pasos basados en eventos.

Step Functions se basa en máquinas y tareas de estado. Un equipo de estado es un flujo de trabajo. Una tarea es un estado de un flujo de trabajo que representa una única unidad de trabajo que otraAWSse desempeña el servicio. Cada paso de un flujo de trabajo es un estado.

Con los controles integrados de Step Functions, examina el estado de cada paso del flujo de trabajo para asegurarse de que la aplicación se ejecuta en orden y según lo esperado. Dependiendo de su caso de uso, puede hacer que se llame a Step FunctionsAWSservicios, como Lambda, para realizar tareas. Puede crear flujos de trabajo que procesan y publican modelos de aprendizaje automático. Puede tener el control Step FunctionsAWSservicios, tales comoAWS 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 interacción humana.

AWSSDK e integraciones optimizadas

Para llamar a otrosAWSservicios, puede utilizar Step FunctionsAWSIntegraciones de SDK o puede utilizar 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 tienen una ejecución del flujo de trabajo exactamente una vez y pueden ejecutarse 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 exprés tienen at-least-once ejecución del flujo de trabajo y puede ejecutarse durante un máximo de 5 minutos. Esto significa que es posible que uno o más pasos de un flujo de trabajo exprés se ejecuten 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 ejecuta el flujo de trabajo para realizar tareas. Los flujos de trabajo estándar son ideales para flujos de trabajo auditables y de ejecución prolongada, 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 de streaming y la ingestión de datos de IoT.

Flujos de trabajo estándar

  • Velocidad de ejecución de 2000 por segundo

  • Velocidad de transición de estado de 4000 por segundo

  • Precios de transición por estado

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

  • Admite todos los patrones y las integraciones de servicios

Flujos de trabajo rápidos

  • Velocidad de ejecución de 100 000 por segundo

  • Velocidad de transición de estado casi ilimitada

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

  • Envía el historial de ejecución aAmazon CloudWatch

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

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

Casos de uso

Step Functions administra 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 típicos para trabajar con Step Functions.

Caso de uso #1: Organización de funciones


          Encadenar

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

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

Caso de uso #2: Ramificación


          Ramificación

Un cliente solicita un aumento del límite de crédito. Uso de unaChoice, puede hacer que Step Functions tome decisiones basándose en elChoiceentrada del estado. Si la solicitud supera el límite de crédito aprobado previamente por el cliente, puedes hacer que Step Functions envíe la solicitud de tu cliente a un gerente para que la cierre. Si la solicitud es inferior al límite de crédito aprobado previamente por el cliente, puede hacer que Step Functions apruebe la solicitud automáticamente.

Caso de uso #3: Control de errores


          Reintentación/captura

Retry

En este caso de uso, un cliente solicita un nombre de usuario. La primera vez, la solicitud de su cliente no se ha realizado correctamente. Uso de unaRetry, puede hacer que Step Functions vuelva a intentar la solicitud de su cliente. La segunda vez, la solicitud de su cliente se realiza correctamente.

Catch

En un caso de uso similar, un cliente solicita un nombre de usuario no disponible. Uso de unaCatch, tienes Step Functions que sugieren un nombre de usuario disponible. Si su cliente toma el nombre de usuario disponible, puede hacer que Step Functions vaya al siguiente paso de su flujo de trabajo, que consiste en enviar un correo electrónico de confirmación. Si su cliente no toma el nombre de usuario disponible, tiene que Step Functions vaya a otro paso de su flujo de trabajo, que consiste en volver a iniciar el proceso de registro.

Para obtener más ejemplos más detallados deRetryyCatchinstrucciones, consulte los temas siguientes:

Caso de uso #4: Humano en el bucle


          Encadenar

Con una aplicación bancaria, uno de tus clientes envía dinero a un amigo. Su cliente espera un correo electrónico de confirmación. conuna devolución de llamada y un token de tarea, tienes Step Functions que le diga a Lambda que envíe el dinero de su cliente e informe cuando el amigo de su cliente lo reciba. Después de que Lambda informe de que el amigo de su cliente recibió el dinero, puede hacer que Step Functions vaya 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 proyecto de ejemplo que muestra una devolución de llamada con un token de tarea, consulte lo siguiente:

Caso de uso #5: Procesamiento paralelo


          Parallelism

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. Uso de unaParallel, Step Functions introduce el archivo de vídeo, por lo que Lambda puede procesarlo en las cinco resoluciones de pantalla al mismo tiempo.

Caso de uso #6: Paralelismo dinámico


          Encadenar

Un cliente pide tres artículos y debes preparar cada artículo para la entrega. Comprueba la disponibilidad de cada artículo, recopila cada artículo y, a continuación, empaqueta cada artículo para su entrega. Uso de unaMapestado, Step Functions hace que Lambda procese cada uno de los artículos de sus clientes en parallel. Una vez que todos los artículos de sus clientes están empaquetados para su entrega, Step Functions pasa al siguiente paso de su flujo de trabajo, que consiste en enviar a su cliente un correo electrónico de confirmación con información de seguimiento.

Para ver un proyecto de ejemplo que muestra paralelismo dinámico mediante unMapstate, consulte los temas siguientes:

Integraciones con los servicios

Step Functions se integra con múltiplesAWSServicios de . 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 Functions avance al siguiente estado de una vez que obtenga una respuesta HTTP.

Ejecutar un trabajo (.sync)

  • Llame a un servicio y haga que Step Functions espere a que finalice un trabajo.

Espere una devolución de llamada con un token de tarea (.waitForTaskToken)

  • Llame a un servicio con un token de tarea y haga que Step Functions espere hasta que devuelva el token de tarea con una devolución de llamada.

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

Los flujos de trabajo estándar y los flujos de trabajo rápidos son compatibles con las mismas integraciones, pero no son compatibles con los mismos patrones de integración. Los flujos de trabajo rápidos no son compatibles con Ejecutar un trabajo (.sync) o Esperar a la devolución de llamada (.waitForTaskToken). El soporte de patrones de integraciones optimizado es diferente para cada integración. Para obtener más información, consulte y estándar.

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

Regiones admitidas

MásAWSlas regiones admiten Step Functions. Para obtener una lista completa deAWSregiones en las que Step Functions está disponible, consulte laAWSTabla de regiones.

¿Es la primera vez que usa Step Functions?

Si es la primera vez que utiliza las Step Functions, los siguientes temas le ayudan a comprender las distintas partes del trabajo con Step Functions, incluida la combinación de Step Functions con otrasAWSservicios: