Ir al contenido
Star
478
Star
478

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.

  1. 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 Container
  2. 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 localstack
    aws configure set aws_secret_access_key test --profile localstack
    aws configure set region us-east-1 --profile localstack
    aws configure set output json --profile localstack
    aws configure set endpoint_url http://localhost:4566 --profile localstack
  3. 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
  1. Abre la Paleta de Comandos: Pulsa F1 o Ctrl+Shift+P.
  2. Conecta a AWS: Escribe y selecciona AWS: Connect to AWS.
  3. Selecciona el perfil: Selecciona el perfil localstack.
  4. Visualiza el grafo: Abre step_function.asl.json y haz clic en el icono Visual Graph (arriba a la derecha).
  5. Ejecuta: En el AWS Explorer, haz clic derecho en UserOnboardingWorkflow y selecciona Start Execution.
  1. Verifica la creación del usuario IAM:
    Ventana de terminal
    aws iam list-users --profile localstack
  2. Verifica los logs de DynamoDB:
    Ventana de terminal
    aws dynamodb scan --table-name UserLogs --profile localstack
  3. Verifica las funciones Lambda:
    Ventana de terminal
    aws lambda list-functions --profile localstack
Ventana de terminal
docker compose down -v
ProblemaSolució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 rechazadaAsegúrate de que LocalStack está en ejecución: docker ps