¿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 Functionses un servicio de orquestación sin servidor que le permite integrarse con AWS Lambdafunciones y otrosServicios de AWS para crear aplicaciones esenciales para la empresa. A través de la consola gráfica de Step Functions, puede ver el flujo de trabajo de su aplicación como una serie de pasos basados en eventos.

Step Functions se basa en máquinas de estados y tareas. Una máquina de estados es un flujo de trabajo. Una tarea es un estado de un flujo de trabajo que representa una sola unidad de trabajo que realiza otroAWS servicio. Cada paso de un flujo de trabajo es un estado.

Con los controles integrados de Step Functions, puede examinar 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. Según su caso de uso, puede hacer que Step Functions llame aAWS servicios, como Lambda, para realizar tareas. Puede crear flujos de trabajo que procesen y publiquen modelos de aprendizaje automático. Puede disponer deAWS servicios de control de Step Functions AWS Glue, por ejemplo, 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.

sugerencia

Para familiarizarse con las funciones principales de Step Functions a través de una serie de módulos interactivos, consulte TheAWS Step Functions Workshop. También puedes empezar a usar Step Functions siguiendo estos tutoriales de introducción para crear un flujo de trabajo para una aplicación de tarjetas de crédito.

AWSSDK e integraciones optimizadas

Para llamar a otrosAWS servicios, puede utilizar las integraciones delAWS SDK de Step Functions o una de las integraciones optimizadas de Step Functions.

Flujos de trabajo estándar y exprés

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 exprés tienen una ejecución de at-least-once flujo de trabajo y pueden durar hasta cinco minutos. Esto significa que uno o más pasos de un flujo de trabajo exprés 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

  • Tasa de ejecución de 2000 por segundo

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

  • Precios por estado de transición

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

  • Support todas las integraciones y patrones de servicios

Especificaciones de flujos de trabajo

  • Tasa de ejecución de 100 000 por segundo

  • Tasa de transición estatal casi ilimitada

  • Precios según el número y la duración de las ejecuciones

  • Enviar el historial de ejecución a Amazon CloudWatch

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

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

Para obtener más información sobre flujos de trabajo Standard y Express, 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: Orquestació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 entrada de la siguiente función Lambda. El último paso del flujo de trabajo da un resultado. Con Step Functions, puede ver cómo cada paso del flujo de trabajo interactúa entre sí, de modo que puede asegurarse de que cada paso cumple la función prevista.

Para ver un tutorial que muestra cómo crear una máquina de estados con un grupo de funciones, consulte lo siguiente:

Caso de uso #2: Ramificación


          Ramificación

Un cliente solicita un aumento del límite de crédito. Al usar unChoice estado, puede hacer que Step Functions tome decisiones en función de la entrada delChoice estado. Si la solicitud supera el límite de crédito preaprobado de su cliente, puede hacer que Step Functions envíe la solicitud de su cliente a un gerente para que la apruebe. Si la solicitud es inferior al límite de crédito preaprobado de su cliente, puede hacer que Step Functions apruebe la solicitud automáticamente.

Caso de uso #3: Tratamiento de errores


          Retirar/atrapar

Retry

En este caso de uso, un cliente solicita un nombre de usuario. La primera vez, la solicitud de tu cliente no tiene éxito. Mediante unaRetry declaración, puede hacer que Step Functions vuelva a intentar la solicitud de su cliente. La segunda vez, la solicitud de tu cliente se ha realizado correctamente.

Catch

En un caso de uso similar, un cliente solicita un nombre de usuario no disponible. Mediante unaCatch sentencia, 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 tu cliente no utiliza el nombre de usuario disponible, puedes hacer que Step Functions pase a otro paso de tu flujo de trabajo, que consiste en volver a iniciar el proceso de registro.

Para obtener ejemplosRetry yCatch declaraciones más detallados, consulte lo siguiente:

Caso de uso #4: Human in the loop


          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, puedes hacer que Step Functions le diga a Lambda que envíe el dinero a tu cliente e informe cuando el amigo de tu cliente lo reciba. Cuando Lambda informe de que el amigo de tu cliente ha recibido el dinero, puedes hacer que Step Functions pase al siguiente paso de tu flujo de trabajo, que consiste en enviarle un correo electrónico de confirmación al cliente.

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

Caso de uso #5: Procesamiento en 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. Mediante unParallel estado, 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 #6: Paralelismo dinámico


          Encadenar

Un cliente pide tres artículos y tienes que preparar cada uno de ellos para la entrega. Verifica la disponibilidad de cada artículo, lo reúne y, a continuación, empaqueta cada artículo para su entrega. Mediante unMap estado, Step Functions hace que Lambda procese cada uno de los elementos de su cliente en parallel. 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 la información de seguimiento.

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

Integraciones con los servicios

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

Solicitar una respuesta (predeterminado)
  • Llama a un servicio y deja que Step Functions pase al siguiente estado después de recibir una respuesta HTTP.

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

Espere a que le devuelvan la llamada con un token de tarea (. waitForTaskSímbolo)
  • Llama a un servicio con un token de tarea y haz que Step Functions espere hasta que el token de tarea regrese con una devolución de llamada.

La siguiente tabla muestra 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 exprés admiten las mismas integraciones, pero no admiten los mismos patrones de integración. Los flujos de trabajo de Express no admiten Run a Job (.sync) ni Wait for Callback (. waitForTaskSímbolo). El soporte de patrones de integraciones optimizados es diferente para cada integración. Para obtener más información, consulte Flujos de trabajo estándar frente a flujos de trabajo rápidos.

Standard Workflows
Integraciones de servicios admitidas
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 de SDK Más de doscientos
Express Workflows

Regiones admitidas

La mayoría deAWS las regiones admiten Step Functions. Para obtener una lista deAWS las regiones en las que está disponible Step Functions, consulte la Tabla deAWS regiones.

¿Es la primera vez que utilizas Step Functions?

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