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, puede crear flujos de trabajo, también denominadosMáquinas de estado, 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 más que otra AWS un servicio realiza, 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.
El trabajo en las tareas de su máquina de estados también se puede realizar utilizando Actividades trabajadores que existen fuera 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 AWS servicios, como Lambda, para realizar tareas. Puedes tener el control de Step Functions AWS servicios, como 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 regiones en las que Step Functions está disponible, consulte AWS
Tabla de regiones
Aprenda a usar Step Functions
Para aprender a utilizar Step Functions, siga los módulos interactivos del taller The Step Functions
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 múltiples AWS servicios. Para llamar a otros AWS servicios, puede usar dos tipos de integración:
-
AWS SDKlas integraciones proporcionan una forma de llamar a cualquier AWS presta 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 estatales.
Para combinar Step Functions con otros servicios, existen tres patrones de integración de servicios:
-
Solicitud de respuesta (predeterminado)
Llama a un servicio y deja que Step Functions pase al siguiente estado cuando reciba una HTTP respuesta.
-
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.
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 estándar admiten las integraciones de solicitudes y respuestas. Algunos servicios admiten Run a Job (.sync) o Wait for Callback (. waitForTaskToken) y, en algunos casos, ambas cosas. Consulte la siguiente tabla de integraciones optimizadas para obtener más información.
-
Express Workflows solo admite integraciones de solicitudes y respuestas.
Para ayudarle a decidir entre los dos tipos, consulteElegir el tipo de flujo de trabajo en Step Functions.
AWS SDKintegraciones en Step Functions
Servicio de integrado | Respuesta de la solicitud | Ejecutar un trabajo - .sync | Espere a que Callback -. waitForTaskSímbolo |
---|---|---|---|
Más de doscientos servicios | Estándar y exprés | No compatible | Estándar |
Integraciones optimizadas en Step Functions
Servicio de integrado | Respuesta de la solicitud | Ejecutar un trabajo - .sync | Espere a que Callback -. waitForTaskSímbolo |
---|---|---|---|
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.
-
Organice 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.
-
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. -
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 en los flujos de trabajo de Step Functions. -
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.
-
Procesar datos en pasos paralelos: al usar un
Parallel
estado, Step Functions puede procesar datos de entrada en pasos paralelos. 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 el archivo optimizado AWS Elemental MediaConvert integración para procesar un vídeo en varias resoluciones de pantalla al mismo tiempo. -
Procesar elementos de datos de forma dinámica: mediante 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 con un mapa.