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 Functions es un servicio de organización sin servidor que le permite integrarse con AWS Lambda
Step Functions se basa en máquinas de estado y tareas. En Step Functions, un flujo de trabajo se denomina máquina de estado, que consiste en una serie de pasos controlados en eventos. Cada paso de un flujo de trabajo se denomina estado. Un Task estado representa una unidad de trabajo que realiza otro AWS servicio, por ejemplo. AWS Lambda Un estado de tarea puede llamar a Servicio de AWS cualquier API.
Con los controles incorporados de Step Functions, puede examinar el estado de cada paso de su flujo de trabajo para asegurarse de que su aplicación se ejecuta en orden y según lo esperado. Según su caso de uso, puede hacer que Step Functions llame a AWS servicios, como Lambda, para realizar tareas. Puede crear flujos de trabajo que procesen y publiquen modelos de machine learning. Puede disponer de AWS servicios de control de Step Functions, por ejemplo AWS Glue
sugerencia
Para familiarizarse con las características principales de Step Functions a través de una serie de módulos interactivos, consulte The AWS Step Functions Workshop
Temas
AWS SDK e integraciones optimizadas
Para llamar a otros AWS servicios, puedes usar las integraciones del AWS SDK de Step Functions o puedes usar una de las integraciones optimizadas de Step Functions.
-
Las integraciones del AWS SDK te permiten llamar a cualquiera de los más de doscientos AWS servicios directamente desde tu máquina de estado, lo que te da acceso a más de nueve mil acciones de la API.
-
Las integraciones optimizadas de Step Functions se han personalizado para simplificar el uso en sus máquinas de estado.
Flujos de trabajo estándar y rápidos
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 express tienen una ejecución at-least-once de flujo 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.
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
-
Índice de ejecución de 2000 por segundo
-
Índice de transición de estado de 4000 por segundo
-
Con precio 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
Especificaciones de flujos de trabajo rápidos
-
Índice de ejecución de 100 000 por segundo
-
Índice de transición de estado casi ilimitada
-
Precio por número y duración de las ejecuciones
-
Enviar el historial de ejecuciones a Amazon CloudWatch
-
Muestra el historial de ejecución y la depuración visual en función del nivel de registro habilitado
-
Admite todas las integraciones de servicios y la mayoría de patrones
Para obtener más información sobre flujos de trabajo estándar y rápidos, incluidos los precios de Step Functions, consulte los siguientes temas:
Casos de uso
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. En esta sección se describen los casos de uso habituales para trabajar con Step Functions.
Caso de uso n.º 1: Orquestación de funciones
Cree un flujo de trabajo que ejecute un grupo de funciones de Lambda (pasos) en un orden específico. La salida de una función de Lambda pasa a la entrada de la siguiente función de Lambda. El último paso del flujo de trabajo arroja un resultado. Con Step Functions, puede ver cómo cada paso de su flujo de trabajo interactúa entre sí, de modo que puede asegurarse de que cada paso cumple su función prevista.
Para ver un tutorial que muestra cómo crear una máquina de estado con un grupo de funciones, consulte los siguientes temas:
Caso de uso n.º 2: ramificación
Un cliente solicita un aumento del límite de crédito. Al usar un estado Choice
, puede hacer que Step Functions tome decisiones en función de las aportaciones del estado Choice
. 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.
Caso de uso nº. 3: Gestión de errores
Retry
En este caso de uso, un cliente solicita un nombre de usuario. La primera vez, la solicitud de su cliente no es válida. Mediante una instrucción Retry
, puede hacer que Step Functions vuelva a intentar la solicitud de su cliente. La primera vez, la solicitud de su cliente es válida.
Catch
En un caso de uso similar, un cliente solicita un nombre de usuario no disponible. Mediante una instrucción Catch
, 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 su cliente no utiliza el nombre de usuario disponible, haga que Step Functions vaya a otro paso de su flujo de trabajo, que consiste en volver a iniciar el proceso de registro.
Para ver ejemplos más detallados de instrucciones Retry
y Catch
, consulte lo siguiente:
Caso de uso n.º 4: Humano en el bucle
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, Step Functions le dice a Lambda que envíe el dinero a su cliente e informe cuando el amigo de su cliente lo reciba. Cuando Lambda informa de que el amigo de su cliente ha recibido el dinero, puede hacer que Step Functions pase 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 ejemplo de proyecto en el que se muestra una devolución de llamada con un token de tarea, consulte lo siguiente:
Caso de uso n.º 5: procesamiento paralelo
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 un estado Parallel
, 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 n.º 6: paralelismo dinámico
Un cliente pide tres artículos y debe preparar cada uno de ellos 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. Mediante un estado Map
, Step Functions hace que Lambda procese en paralelo cada uno de los artículos del cliente. 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 ejemplo que muestra el paralelismo dinámico mediante un estado Map
, consulte lo siguiente:
Integraciones de servicios
Step Functions se integra con varios AWS servicios. 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 Funciones avance al siguiente estado después de que obtenga una respuesta HTTP.
Ejecutar un trabajo (.sync)
-
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.
En la siguiente tabla se muestran 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 exprés admiten las mismas integraciones pero no los mismos patrones de integración.
La compatibilidad con los patrones de integración es diferente para cada integración.
Los flujos de trabajo de Express no admiten Run a Job (.sync) ni Wait for Callback (). waitForTaskSímbolo).
Para obtener más información, consulte Flujos de trabajo estándar en comparación con flujos de trabajo rápidos.
Regiones de admitidas
La mayoría de AWS las regiones admiten Step Functions. Para obtener una lista completa de AWS las regiones en las que Step Functions está disponible, consulta la tabla de AWS
regiones
¿Es la primera vez que utiliza Step Functions?
Si es la primera vez que utiliza Step Functions, los temas siguientes le ayudarán a comprender las distintas partes del trabajo con Step Functions, incluida la forma en que Step Functions se combina con otros AWS servicios: