Descripción general de AWS Step Functions

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?



  1. Funciones de Lambda de orquestación



    imagen

  2. Derivación



    imagen

  3. Manejo de excepciones (reintento o captura)



    imagen

  4. Participación humana en el proceso



    imagen

  5. Paralelismo



    imagen



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



  1. Cuenta de AWS
  2. Vaya al servicio Step Functions en la cuenta de AWS


Entonces lo siguiente es lo que hacemos:



  1. Vaya a "Crear funciones de pasos"
  2. Definir máquina de estado = Autor con fragmentos de código
  3. Tipo = Estándar
  4. 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:



imagen

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:



imagen



Enlaces a fuentes:



https://docs.aws.amazon.com/step-functions/



All Articles