Teoría
¿Qué son las funciones de pasos?
De AWS Docs: Step Functions es un servicio de orquestación sin servidor que le permite combinar funciones de AWS Lambda y otros servicios de AWS para crear aplicaciones críticas para el negocio. Con la consola gráfica Step Functions, ve el flujo de trabajo de su aplicación como una serie de pasos controlados por eventos. Step Functions se basa en tareas y máquinas de estado. Una máquina de estado es un flujo de trabajo. Una tarea es un estado en un flujo de trabajo que es una unidad de trabajo que está realizando otro servicio de AWS. Cada paso del flujo de trabajo es un estado.
Con los controles de Step Functions integrados, usted verifica el estado de cada paso del flujo de trabajo para asegurarse de que su aplicación se esté ejecutando en el orden correcto y como se esperaba. Según su caso de uso, Step Functions puede llamar a servicios de AWS como Lambda para realizar tareas. Puede crear flujos de trabajo para procesar y publicar modelos de aprendizaje automático. Puede utilizar Step Functions para administrar servicios de AWS como AWS Glue para crear flujos de trabajo de extracción, transformación y carga (ETL). También puede crear largos flujos de trabajo automatizados para aplicaciones que requieren interacción humana.
O, en pocas palabras, un servicio para gestionar sus procesos.
¿Cuáles son los posibles casos de uso de Step Functions?
- Funciones de Lambda de orquestación
- Derivación
- Manejo de excepciones (reintento o captura)
- Participación humana en el proceso
- Paralelismo
Tipos de proceso en funciones de pasos
- Estándar: necesario para procesos que se ejecutan durante mucho tiempo, tiene un amplio soporte para servicios y opciones de interacción
- Express: necesario para procesos de ejecución rápida (5 minutos), ahorrando ~ 20 veces por millón de procesos ejecutados. Tiene menos integración con los servicios de AWS
Tipos de integración con los servicios de AWS
Solicitar una respuesta (predeterminado): llama al servicio y permite que Step Functions pase al siguiente estado después de recibir la respuesta HTTP.
Ejecutar un trabajo (.sync): llama al servicio y espera a que se complete el trabajo.
Espere una devolución de llamada con un token de tarea (.waitForTaskToken): llama al servicio con el token de tarea y espera a que el token de tarea regrese usando la devolución de llamada.
Comparación de la integración con los servicios de AWS en los tipos estándar y expreso
Integraciones de servicios admitidas para estándar
Servicio | Solicitar respuesta | Ejecutar un trabajo (.sync) | Espere la devolución de llamada (.waitForTaskToken) |
---|---|---|---|
Lambda | ✓ | ✓ | |
Lote de AWS | ✓ | ✓ | |
DynamoDB | ✓ | ||
Amazon ECS / AWS Fargate | ✓ | ✓ | ✓ |
Amazon SNS | ✓ | ✓ | |
Amazon SQS | ✓ | ✓ | |
AWS Glue | ✓ | ✓ | |
SageMaker | ✓ | ✓ | |
Amazon EMR | ✓ | ✓ | |
CodeBuild | ✓ | ✓ | |
Funciones de paso de AWS | ✓ | ✓ | ✓ |
Integraciones de servicios admitidas para Express
Servicio | Solicitar respuesta | Ejecutar un trabajo (.sync) | Espere la devolución de llamada (.waitForTaskToken) |
---|---|---|---|
Lambda | ✓ | ||
Lote de AWS | ✓ | ||
DynamoDB | ✓ | ||
Amazon ECS / AWS Fargate | ✓ | ||
Amazon SNS | ✓ | ||
Amazon SQS | ✓ | ||
AWS Glue | ✓ | ||
SageMaker | ✓ | ||
Amazon EMR | ✓ | ||
CodeBuild | ✓ | ||
Funciones de pasos | ✓ | ✓ |
Basta de teoría, vamos por ejemplo.
Ejemplo teórico
Para tener al menos una idea de cómo se ve el servicio, considere el ejemplo de Hello world.
Condiciones previas
- Cuenta de AWS
- Vaya al servicio Step Functions en la cuenta de AWS
Entonces lo siguiente es lo que hacemos:
- Vaya a "Crear funciones de pasos"
- Definir máquina de estado = Autor con fragmentos de código
- Tipo = Estándar
- Definición =
{ "Comment": "A Hello World example of the Amazon States Language using Pass states", "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "Result": "Hello", "Next": "World" }, "World": { "Type": "Pass", "Result": "World", "End": true } } }
Haga clic en Iniciar ejecución. Insertar se puede omitir. Debería ver un diagrama como este:
Felicitaciones, ha creado las funciones de pasos más simples.
En lugar de una conclusión
Si este tema es interesante, en la siguiente parte crearemos Step Functions con integración AWS Lambda + SQS + SNS, como se muestra en el diagrama:
Enlaces a fuentes:
https://docs.aws.amazon.com/step-functions/