¿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 conAWS Lambdafunciones y otrosServicios de AWSpara crear aplicaciones críticas para el negocio. 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 basados en eventos.

Step Functions se basa en máquinas y tareas de estado. 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 otra.AWSel servicio funciona. Cada paso de un flujo de trabajo es un estado.

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

AWSSDK e integraciones optimizadas

Para llamar a otrosAWS, puedes usar Step FunctionsAWSIntegraciones de SDK, o puedes usar una de las integraciones optimizadas de Step Functions.

Flujos de trabajo estándar y express

Step Functions tiene dos tipos de flujo de trabajo Los flujos de trabajo estándar se ejecutan 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 rápidos tienen at-least-once ejecución del flujo de trabajo y puede ejecutarse hasta cinco minutos. Esto significa que es posible que uno o más pasos de un flujo de trabajo rápido se ejecuten más de una vez, mientras que cada paso del flujo de trabajo se ejecuta at-least-once.

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 de larga duración, ya que muestran el historial de ejecución y la depuración visual. Los flujos de trabajo rápidos son ideales para high-event-rate cargas de trabajo, como el procesamiento de datos de streaming y la ingesta de datos de IoT.

Flujos de trabajo

  • Tasa de ejecución de 2000 por segundo

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

  • Precio por transición de estado

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

  • Admite todas las integraciones y patrones de servicios

Flujos de trabajo

  • Tasa de ejecución de 100 000 por segundo

  • Tasa de transición estatal 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 patrones

Para obtener más información sobre los flujos de trabajo Standard y Express, incluidos los precios de Step Functions, consulte lo siguiente:

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 su aplicación rápidamente. En esta sección se describen casos de uso típicos para trabajar con Step Functions.

Caso de uso #1: Orquestación


          Encadenar

Cree un flujo de trabajo que ejecute un grupo de funciones 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 de tu flujo de trabajo da un resultado. Con Step Functions, puede ver cómo interactúa cada paso de su flujo de trabajo entre sí, de modo que puede asegurarse de que cada paso realice su función prevista.

Para ver un tutorial que muestra cómo crear una máquina de estado 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. UsoChoice, puede hacer que Step Functions tome decisiones en función delChoiceentrada del estado. Si la solicitud supera el límite de crédito previamente aprobado 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 previamente aprobado de su cliente, puede hacer que Step Functions apruebe la solicitud automáticamente.

Caso de uso #3: Control de errores


          Reintento/Captura

Retry

En este caso de uso, un cliente solicita un nombre de usuario. La primera vez, la solicitud de tu cliente no se ha realizado correctamente. UsoRetry, puedes hacer que Step Functions vuelva a intentar la solicitud de tu cliente. La segunda vez, la solicitud del cliente se ha realizado correctamente.

Catch

En un caso de uso similar, un cliente solicita un nombre de usuario no disponible. UsoCatch, tienes Step Functions sugiriendo un nombre de usuario disponible. Si su cliente utiliza 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 tu cliente no toma el nombre de usuario disponible, tienes que hacer que Step Functions vaya a un paso diferente de tu flujo de trabajo, que consiste en volver a iniciar el proceso de registro.

Para obtener ejemplos más detallados deRetryyCatch, consulte lo siguiente:

Caso de uso #4: Humano en el bucle


          Encadenar

Mediante 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, Step Functions le dice 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 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 al 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, consulta 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. UsoParallel, Step Functions introduce el archivo de vídeo, de modo 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 tienes que preparar cada artículo 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. UsoMap, 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 información de seguimiento.

Para ver un proyecto de muestra que muestre el paralelismo dinámico mediante unMapestado, consulte lo siguiente:

Integraciones con los servicios

Step Functions se integra con múltiplesAWSServicios. 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 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.

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

  • Llama a un servicio con un token de tarea y haz que Step Functions espere hasta que el token de tarea vuelva con una devolución de llamada.

La siguiente tabla muestra 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 rápidos admiten las mismas integraciones, pero no admiten los mismos patrones de integración. Express Workflows no admite Ejecutar un Job (.sync) ni Esperar devolución de llamada (.waitForTaskToken). El soporte de patrones de integraciones optimizadas es diferente para cada integración. Para obtener más información, consulte Flujos de trabajo estándar vs. express.

Standard Workflows
Integraciones de servicios
Servicio Respuesta de la solicitud Ejecute un trabajo (.sync) Espere la devolución de la llamada (.waitForTaskToken)
Integraciones optimizadas Lambda
AWS Batch
DynamoDB
Amazon ECSAWS 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

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

¿Es la primera vez que utilizas Step Functions?

Si es la primera vez que utilizas Step Functions, los siguientes temas te ayudarán a entender diferentes partes del trabajo con Step Functions, incluida la forma en que Step Functions se combina con otrasAWSServicios: