Prueba de máquinas de estado con Step Functions Local (no compatible) - AWS Step Functions

Prueba de máquinas de estado con Step Functions Local (no compatible)

Step Functions Local no es compatible

Step Functions Local no proporciona paridad de características y no es compatible.

Podría considerar soluciones de terceros que emulen Step Functions con fines de prueba.

Con AWS Step Functions Local, una versión descargable de Step Functions, puede probar aplicaciones con Step Functions ejecutándose en su propio entorno de desarrollo.

Cuando ejecuta Step Functions Local, puede utilizar una de las siguientes formas de invocar las integraciones de servicios:

  • Configurar de puntos de conexión locales para AWS Lambda y otros servicios.

  • Realizar llamadas directamente a un servicio de AWS desde Step Functions Local.

  • Simular la respuesta de integraciones de servicios.

AWS Step Functions Local está disponible como paquete JAR o como imagen de Docker independiente que se ejecuta en Microsoft Windows, Linux, macOS y otras plataformas compatibles con Java o Docker.

aviso

Solo debe usar Step Functions Local para realizar pruebas y nunca para procesar información confidencial.

Configuración de Step Functions Local (versión descargable) en Docker

La imagen de Docker de Step Functions Local permite empezar a trabajar rápidamente con Step Functions Local mediante una imagen de Docker con todas las dependencias necesarias. La imagen de Docker permite incluir Step Functions Local en las versiones contenedorizadas y como parte de las pruebas continuas de integración.

Para obtener la imagen de Docker para Step Functions Local, vea https://hub.docker.com/r/amazon/aws-stepfunctions-local o escriba el siguiente comando pull de Docker.

docker pull amazon/aws-stepfunctions-local

Para iniciar la versión descargable de Step Functions en Docker, ejecute el siguiente comando run de Docker.

docker run -p 8083:8083 amazon/aws-stepfunctions-local

Para interactuar con AWS Lambda u otros servicios admitidos, primero debe configurar sus credenciales y otras opciones de configuración. Para obtener más información, consulte los temas siguientes:

Configurar Step Functions Local (versión descargable) - Versión Java

La versión descargable de AWS Step Functions se proporciona como archivo JAR ejecutable y como imagen de Docker. La aplicación Java se ejecuta en Windows, Linux, macOS y otras plataformas compatibles con Java. Además de Java, debe instalar la AWS Command Line Interface (AWS CLI). Para obtener información sobre cómo instalar y configurar la AWS CLI, consulte la Guía del usuario de la AWS Command Line Interface.

Para configurar y ejecutar Step Functions en su equipo
  1. Descargue Step Functions utilizando los siguientes enlaces.

    Enlaces de descarga Suma de comprobación
    .tar.gz .tar.gz.md5
    .zip .zip.md5
  2. Extraiga el archivo .zip.

  3. Pruebe la descarga y consulte la información de la versión.

    $ java -jar StepFunctionsLocal.jar -v Step Function Local Version: 2.0.0 Build: 2024-05-18
  4. (Opcional) Vea una lista de los comandos disponibles.

    $ java -jar StepFunctionsLocal.jar -h
  5. Para iniciar Step Functions en el equipo, abra un símbolo del sistema, vaya al directorio donde ha extraído StepFunctionsLocal.jar y escriba el comando siguiente.

    java -jar StepFunctionsLocal.jar
  6. Para obtener acceso a Step Functions en ejecución local, utilice el parámetro --endpoint-url. Por ejemplo, si utiliza la AWS CLI, debería especificar comandos Step Functions como los siguientes:

    aws stepfunctions --endpoint-url http://localhost:8083 command
nota

De forma predeterminada, Step Functions Local utiliza una cuenta de prueba y credenciales locales, y la región de AWS se establece en Este de EE. UU. (Norte de Virginia). Para utilizar Step Functions Local con AWS Lambda u otros servicios admitidos, debe configurar sus credenciales y región.

Si utiliza flujos de trabajo rápidos con Step Functions Local, el historial de ejecución se almacenará en un archivo de registro. No está registrado en CloudWatch Logs. La ruta de acceso del archivo de registro se basará en el ARN del grupo de registro de CloudWatch Logs proporcionado al crear la máquina de estado local. El archivo de registro se almacenará en /aws/states/log-group-name/${execution_arn}.log respecto a la ubicación en la que se ejecuta Step Functions Local. Por ejemplo, si el ARN de ejecución es:

arn:aws:states:region:account-id:express:test:example-ExpressLogGroup-wJalrXUtnFEMI

el archivo de registro será:

aws/states/log-group-name/arn:aws:states:region:account-id:express:test:example-ExpressLogGroup-wJalrXUtnFEMI.log

Configurar opciones de configuración para Step Functions Local

Cuando inicia AWS Step Functions Local utilizando el archivo JAR puede definir opciones de configuración mediante la AWS Command Line Interface (AWS CLI) o incluyéndolas en el entorno del sistema. Para Docker, debe especificar estas opciones en un archivo al que haga referencia cuando inicie Step Functions Local.

Opciones de configuración

Cuando configura el contenedor de Step Functions Local para usar un punto de conexión de anulación, como Punto de conexión de Lambda y Punto de conexión de lote, y realiza llamadas a ese punto de conexión, Step Functions Local no utiliza las credenciales que especifique. La configuración de estas anulaciones de punto de conexión es opcional.

Opción Línea de comandos Entorno
Cuenta -account, --aws-account AWS_ACCOUNT_ID
Región -region, --aws-region AWS_DEFAULT_REGION
Escala de tiempo de espera -waitTimeScale, --wait-time-scale WAIT_TIME_SCALE
Punto de enlace de Lambda -lambdaEndpoint, --lambda-endpoint LAMBDA_ENDPOINT
Punto de enlace de Batch -batchEndpoint, --batch-endpoint BATCH_ENDPOINT
Punto de enlace de DynamoDB -dynamoDBEndpoint, --dynamodb-endpoint DYNAMODB_ENDPOINT
Punto de enlace de ECS -ecsEndpoint, --ecs-endpoint ECS_ENDPOINT
Punto de enlace de Glue -glueEndpoint, --glue-endpoint GLUE_ENDPOINT
Punto de enlace de SageMaker -sageMakerEndpoint, --sagemaker-endpoint SAGE_MAKER_ENDPOINT
Punto de enlace de SQS -sqsEndpoint, --sqs-endpoint SQS_ENDPOINT
Punto de enlace de SNS -snsEndpoint, --sns-endpoint SNS_ENDPOINT
Punto de conexión de Step Functions -stepFunctionsEndpoint, --step-functions-endpoint STEP_FUNCTIONS_ENDPOINT

Credenciales y configuración de Docker

Para configurar Step Functions Local para Docker, cree el archivo siguiente: aws-stepfunctions-local-credentials.txt.

Este archivo contiene sus credenciales y otras opciones de configuración. Se puede utilizar lo siguiente como plantilla al crear el archivo aws-stepfunctions-local-credentials.txt.

AWS_DEFAULT_REGION=AWS_REGION_OF_YOUR_AWS_RESOURCES AWS_ACCESS_KEY_ID=YOUR_AWS_ACCESS_KEY AWS_SECRET_ACCESS_KEY=YOUR_AWS_SECRET_KEY WAIT_TIME_SCALE=VALUE LAMBDA_ENDPOINT=VALUE BATCH_ENDPOINT=VALUE DYNAMODB_ENDPOINT=VALUE ECS_ENDPOINT=VALUE GLUE_ENDPOINT=VALUE SAGE_MAKER_ENDPOINT=VALUE SQS_ENDPOINT=VALUE SNS_ENDPOINT=VALUE STEP_FUNCTIONS_ENDPOINT=VALUE

Una vez que haya configurado sus credenciales y las opciones de configuración en aws-stepfunctions-local-credentials.txt, inicie Step Functions con el siguiente comando.

docker run -p 8083:8083 --env-file aws-stepfunctions-local-credentials.txt amazon/aws-stepfunctions-local
nota

Se recomienda utilizar el nombre de DNS especial host.docker.internal, que se resuelve en la dirección IP interna que utiliza el host, por ejemplo http://host.docker.internal:8000. Para obtener más información, consulte la documentación de Docker para Mac y Windows en Networking features in Docker Desktop for Mac y Networking features in Docker Desktop for Windows, respectivamente.

Ejecute Step Functions Local en su ordenador

Utilice la versión local de Step Functions para configurar, desarrollar y probar máquinas de estado en su ordenador.

Ejecute una máquina de estado HelloWorld localmente

Una vez que haya ejecutado Step Functions localmente con la AWS Command Line Interface (AWS CLI), puede iniciar la ejecución de una máquina de estado.

  1. Cree una máquina de estado desde la AWS CLI incluyendo la definición de la máquina de estado en una secuencia de escape.

    aws stepfunctions --endpoint-url http://localhost:8083 create-state-machine --definition "{\ \"Comment\": \"A Hello World example of the Amazon States Language using a Pass state\",\ \"StartAt\": \"HelloWorld\",\ \"States\": {\ \"HelloWorld\": {\ \"Type\": \"Pass\",\ \"End\": true\ }\ }}" --name "HelloWorld" --role-arn "arn:aws:iam::012345678901:role/DummyRole"
    nota

    El role-arn no se utiliza para Step Functions Local, pero debe incluirlo con la sintaxis adecuada. Puede utilizar el nombre de recurso de Amazon (ARN) del ejemplo anterior.

    Si ha creado correctamente la máquina de estado, Step Functions responderá con la fecha de creación y el ARN de la máquina de estado.

    { "creationDate": 1548454198.202, "stateMachineArn": "arn:aws:states:region:account-id:stateMachine:HelloWorld" }
  2. Inicie una ejecución utilizando el ARN de la máquina de estado que ha creado.

    aws stepfunctions --endpoint-url http://localhost:8083 start-execution --state-machine-arn arn:aws:states:region:account-id:stateMachine:HelloWorld

Step Functions Local con AWS SAM CLI Local

Puede utilizar la versión local de Step Functions junto con una versión local de AWS Lambda. Para configurar esto, debe instalar y configurar AWS SAM.

Para obtener información acerca de cómo configurar y ejecutar AWS SAM, consulte lo siguiente:

Una vez que Lambda se esté ejecutando en el sistema local, puede iniciar Step Functions Local. Desde el directorio en el que extrajo los archivos JAR de Step Functions Local, inicie Step Functions Local y utilice el parámetro --lambda-endpoint para configurar el punto de conexión de Lambda local.

java -jar StepFunctionsLocal.jar --lambda-endpoint http://127.0.0.1:3001 command

Para obtener más información sobre la ejecución Step Functions Local con AWS Lambda, consulte Tutorial: Probar flujos de trabajo con Step Functions y AWS SAM CLI Local.