¿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 otrosAWSpara crear aplicaciones críticas para el negocio. 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 basan en máquinas y tareas de estado. Una máquina 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 otroAWSrealiza el 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 como se esperaba. Dependiendo de su caso de uso, puede hacer que Step Functions llamenAWSservicios, como Lambda, para realizar tareas. Puede crear flujos de trabajo que procesen y publiquen modelos de aprendizaje automático. Puede tener el control de funciones de pasoAWSservicios, comoAWS GluePara 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.

Flujos de trabajo estándar y rápidos

Step Functions tienen dos tipos de flujo de trabajo. Los flujos de trabajo estándar tienen una ejecución de flujo de trabajo exactamente una vez y pueden ejecutarse hasta por un año. Los flujos de trabajo rápidos tienen una ejecución de flujo de trabajo al menos una vez y pueden ejecutarse durante un máximo de 5 minutos. 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 ejecución prolongada, ya que muestran el historial de ejecución y la depuración visual. Los flujos de trabajo Express son ideales para cargas de trabajo de alta tasa de eventos, como el procesamiento de datos por 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 del estado de 4.000 por segundo

  • Precios 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

Flujos de trabajo rápidos

  • 100 000 por segundo tasa de ejecución

  • Velocidad de transición del estado casi ilimitada

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

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

  • Admite todos los patrones y las integraciones de servicios.

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 su 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

Crear 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 puede asegurarse de que cada paso realiza la función prevista.

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

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 tomen decisiones basadas en elChoiceentrada del estado. Si la solicitud supera el límite de crédito aprobado previamente de su cliente, puede hacer que Step Functions envíe la solicitud de su cliente a un gerente para que lo firme. Si la solicitud es inferior al límite de crédito aprobado previamente por el cliente, puede hacer que Step Functions aprueben la solicitud automáticamente.

Caso de uso #3: Control de errores


          Retract/Captura

Retry

En este caso de uso, un cliente solicita un nombre de usuario. La primera vez, la solicitud de su cliente no tiene éxito. 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, tiene Step Functions 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 es enviar un correo electrónico de confirmación. Si su cliente no toma el nombre de usuario disponible, puede que Step Functions vayan a un paso diferente en su flujo de trabajo, que es comenzar el proceso de suscripción de nuevo.

Para obtener más ejemplos más detallados deRetryyCatchPara ver las instrucciones, consulte los siguientes temas:

Caso de uso #4: Humano en el bucle


          Encadenar

Usando una aplicación bancaria, uno de tus clientes envía dinero a un amigo. Tu cliente espera un correo electrónico de confirmación. conuna devolución de llamada y un token de tarea, tienes Step Functions para decirle a Lambda que envíe el dinero de tu cliente e informe cuando el amigo de tu cliente lo reciba. Después de que Lambda informe de que el amigo de su cliente recibió el dinero, puede hacer que Step Functions pasen al siguiente paso de su flujo de trabajo, que es 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 ingresa 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 debe preparar cada artículo para su 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 unaMap, Step Functions tiene Lambda procesar cada uno de los artículos de su cliente en paralelo. Una vez que todos los artículos de tu cliente están empaquetados para su entrega, Step Functions pasa al siguiente paso en tu flujo de trabajo, que es enviar a tu 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 usando unMapConsulte los siguientes temas:

Integraciones con los servicios

Step Functions se integran 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 después de que obtenga una respuesta HTTP.

Ejecute un trabajo (.sync)

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

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

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

La siguiente tabla muestra todas las integraciones de servicios compatibles y los patrones de integración de servicios para Step Functions.

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

Regiones admitidas

MásAWSregiones admiten Step Functions. Para obtener una lista completa deAWSen las que las funciones de paso están disponibles, consulte laAWSTabla de regiones.

¿Es esta tu primera vez que usas Step Functions?

Si es la primera vez que utiliza Step Functions, los siguientes temas le ayudarán a comprender las distintas partes del trabajo con funciones de paso, incluido el modo en que las funciones de paso se combinan con otrasAWSServicios: