Step Functions (LocalStack)
Esta guía te muestra cómo trabajar con AWS Step Functions localmente usando LocalStack, Python y el AWS Toolkit para VS Code. Este lab demuestra un flujo de incorporación de usuarios con ejecución paralela de Lambda y creación de usuarios IAM.
Prerrequisitos
Sección titulada «Prerrequisitos»- Docker instalado y en ejecución.
- Dev Containers extension instalada (opcional).
- AWS Toolkit para VS Code (incluido en el Dev Container).
- AWS CLI (incluido en el Dev Container).
Cómo ejecutar
Sección titulada «Cómo ejecutar»-
Configurar el entorno:
Abre VS Code en la carpeta del proyecto y ejecuta este comando en la Paleta de Comandos:
Ventana de terminal > Dev Containers: Reopen in ContainerVentana de terminal pip3 install uv && uv sync -
Configurar el perfil de LocalStack: Configura un perfil de AWS dedicado para LocalStack:
Ventana de terminal aws configure set aws_access_key_id test --profile localstackaws configure set aws_secret_access_key test --profile localstackaws configure set region us-east-1 --profile localstackaws configure set output json --profile localstackaws configure set endpoint_url http://localhost:4566 --profile localstack -
Ejecutar el ejemplo:
- Inicia LocalStack:
Ventana de terminal docker compose up -d - Despliega la infraestructura:
Ventana de terminal python deploy.py - Ejecuta el flujo:
Ventana de terminal python main.py
- Inicia LocalStack:
Uso del AWS Toolkit
Sección titulada «Uso del AWS Toolkit»- Abre la Paleta de Comandos: Pulsa
F1oCtrl+Shift+P. - Conecta a AWS: Escribe y selecciona AWS: Connect to AWS.
- Selecciona el perfil: Selecciona el perfil
localstack. - Visualiza el grafo: Abre
step_function.asl.jsony haz clic en el icono Visual Graph (arriba a la derecha). - Ejecuta: En el AWS Explorer, haz clic derecho en
UserOnboardingWorkflowy selecciona Start Execution.
Validar resultados
Sección titulada «Validar resultados»- Verifica la creación del usuario IAM:
Ventana de terminal aws iam list-users --profile localstack - Verifica los logs de DynamoDB:
Ventana de terminal aws dynamodb scan --table-name UserLogs --profile localstack - Verifica las funciones Lambda:
Ventana de terminal aws lambda list-functions --profile localstack
Limpieza
Sección titulada «Limpieza»docker compose down -vSolución de problemas
Sección titulada «Solución de problemas»| Problema | Solución |
|---|---|
| La función Lambda está en estado ‘Pending’ | Espera 5-10 segundos después de deploy.py e inténtalo de nuevo. LocalStack puede estar todavía inicializando el entorno Lambda. |
| Conexión rechazada | Asegúrate de que LocalStack está en ejecución: docker ps |