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.
Temas
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-localpull 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
-
Descargue Step Functions utilizando los siguientes enlaces.
Enlaces de descarga Suma de comprobación .tar.gz .tar.gz.md5 .zip .zip.md5 -
Extraiga el archivo
.zip. -
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 -
(Opcional) Vea una lista de los comandos disponibles.
$ java -jar StepFunctionsLocal.jar -h -
Para iniciar Step Functions en el equipo, abra un símbolo del sistema, vaya al directorio donde ha extraído
StepFunctionsLocal.jary escriba el comando siguiente.java -jar StepFunctionsLocal.jar -
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:8083command
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/ respecto a la ubicación en la que se ejecuta Step Functions Local. Por ejemplo, si el ARN de ejecución es:${execution_arn}.log
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_RESOURCESAWS_ACCESS_KEY_ID=YOUR_AWS_ACCESS_KEYAWS_SECRET_ACCESS_KEY=YOUR_AWS_SECRET_KEYWAIT_TIME_SCALE=VALUELAMBDA_ENDPOINT=VALUEBATCH_ENDPOINT=VALUEDYNAMODB_ENDPOINT=VALUEECS_ENDPOINT=VALUEGLUE_ENDPOINT=VALUESAGE_MAKER_ENDPOINT=VALUESQS_ENDPOINT=VALUESNS_ENDPOINT=VALUESTEP_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
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.
-
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-arnno 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" } -
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.