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
- Accedeix a la Consola de Gestió d'AWS.
- Navega a AWS Step Functions.
- Crea una nova Machine State.
- 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
- Crea una funció Lambda que serà invocada pel flux de treball.
- 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
- Inicia una execució del flux de treball des de la consola de Step Functions.
- 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
-
Crea dues funcions Lambda:
HelloWorldFunction: Retorna "Hello, World!".GoodbyeWorldFunction: Retorna "Goodbye, World!".
-
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
}
}
}- 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.
