Introducció a AWS Step Functions

AWS Step Functions és un servei que permet coordinar múltiples serveis d'AWS en fluxos de treball visuals per construir i actualitzar aplicacions ràpidament. Amb Step Functions, pots dissenyar i executar fluxos de treball que orquestren serveis com AWS Lambda, Amazon ECS, AWS Batch, i més.

Conceptes Clau

  • Estat: Cada pas en un flux de treball és un estat. Els estats poden ser tasques, decisions, temporitzadors, etc.
  • Definició de l'Estat: Un document JSON que descriu el flux de treball, incloent-hi els estats i les transicions entre ells.
  • Execució: Una instància d'un flux de treball en execució.
  • Machine State: La representació del flux de treball en AWS Step Functions.

Creació d'un Flux de Treball amb AWS Step Functions

Pas 1: Definir el Flux de Treball

  1. Accedeix a la Consola de Gestió d'AWS.
  2. Navega a AWS Step Functions.
  3. Crea una nova Machine State.
  4. Defineix els estats utilitzant el llenguatge Amazon States Language (ASL).

Exemple de Definició de l'Estat

{
  "Comment": "Un exemple de flux de treball simple",
  "StartAt": "HelloWorld",
  "States": {
    "HelloWorld": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:HelloWorldFunction",
      "End": true
    }
  }
}

Pas 2: Crear una Funció Lambda

  1. Crea una funció Lambda que serà invocada pel flux de treball.
  2. Defineix el codi de la funció. Per exemple, una funció simple que retorna un missatge de benvinguda:
import json

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': json.dumps('Hello, World!')
    }

Pas 3: Executar el Flux de Treball

  1. Inicia una execució del flux de treball des de la consola de Step Functions.
  2. Monitora l'execució per veure els estats i les transicions.

Exercici Pràctic

Objectiu

Crear un flux de treball que invoqui dues funcions Lambda seqüencialment.

Passos

  1. Crea dues funcions Lambda:

    • HelloWorldFunction: Retorna "Hello, World!".
    • GoodbyeWorldFunction: Retorna "Goodbye, World!".
  2. Defineix el flux de treball amb els següents estats:

{
  "Comment": "Un flux de treball amb dues funcions Lambda",
  "StartAt": "HelloWorld",
  "States": {
    "HelloWorld": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:HelloWorldFunction",
      "Next": "GoodbyeWorld"
    },
    "GoodbyeWorld": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:GoodbyeWorldFunction",
      "End": true
    }
  }
}
  1. Inicia una execució del flux de treball i verifica els resultats.

Solució

Funció Lambda HelloWorldFunction

import json

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': json.dumps('Hello, World!')
    }

Funció Lambda GoodbyeWorldFunction

import json

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': json.dumps('Goodbye, World!')
    }

Definició del Flux de Treball

{
  "Comment": "Un flux de treball amb dues funcions Lambda",
  "StartAt": "HelloWorld",
  "States": {
    "HelloWorld": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:HelloWorldFunction",
      "Next": "GoodbyeWorld"
    },
    "GoodbyeWorld": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:GoodbyeWorldFunction",
      "End": true
    }
  }
}

Errors Comuns i Consells

  • Error de Permisos: Assegura't que les funcions Lambda tenen els permisos necessaris per ser invocades per AWS Step Functions.
  • Definició Incorrecta de l'Estat: Verifica que la definició JSON del flux de treball sigui vàlida i segueixi la sintaxi correcta.
  • Monitoratge: Utilitza les eines de monitoratge d'AWS Step Functions per depurar i solucionar problemes en els fluxos de treball.

Resum

En aquesta secció, hem après què és AWS Step Functions i com crear un flux de treball bàsic que coordina dues funcions Lambda. Hem vist com definir els estats utilitzant el llenguatge Amazon States Language (ASL) i com executar i monitorar el flux de treball. Amb aquests coneixements, estàs preparat per crear fluxos de treball més complexos que orquestren múltiples serveis d'AWS.

© Copyright 2024. Tots els drets reservats