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

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

Step Functions Local no es compatible

Step Functions Local no proporciona paridad de funciones y no es compatible.

Podrías 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.

Al ejecutar Step Functions Local, puede utilizar una de las siguientes formas de invocar las integraciones de servicios:

  • Configuración de puntos finales locales para AWS Lambda y otros servicios.

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

  • Simular la respuesta de integraciones de servicios.

AWS Step Functions Local está disponible como un JAR paquete o una 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, consulta https://hub.docker.com/r/amazon/ aws-stepfunctions-local o introduce el siguiente comando de pull 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 compatibles, 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 JAR archivo 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 el AWS Command Line Interface (AWS CLI). Para obtener información sobre la instalación y configuración de AWS CLI, consulte la Guía del AWS Command Line Interface usuario.

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, mediante el AWS CLI, especificaría los comandos de Step Functions de la siguiente manera:

    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 usar Step Functions Local con AWS Lambda u otros servicios compatibles, debe configurar sus credenciales y su 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 del archivo de registro se basará en el grupo de CloudWatch registros ARN 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 la ejecución ARN es:

arn:aws:states:us-east-1:123456789012:express:test:example-ExpressLogGroup-wJalrXUtnFEMI

el archivo de registro será:

aws/states/log-group-name/arn:aws:states:us-east-1:123456789012:express:test:example-ExpressLogGroup-wJalrXUtnFEMI.log

Configurar opciones de configuración para Step Functions Local

Al iniciar AWS Step Functions Local mediante el JAR archivo, puede establecer las opciones de configuración mediante 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-punto final LAMBDA_ENDPOINT
Punto de enlace de Batch -batchEndpoint, --punto final por lotes BATCH_ENDPOINT
Punto de enlace de DynamoDB -, --punto final de dynamodb dynamoDBEndpoint DYNAMODB_ENDPOINT
Punto de enlace de ECS -ecsEndpoint, --ecs-endpoint ECS_ENDPOINT
Punto de enlace de Glue -, --glue-endpoint glueEndpoint GLUE_ENDPOINT
SageMaker Punto final -sageMakerEndpoint, --sagemaker-endpoint SAGE_MAKER_ENDPOINT
Punto de enlace de SQS -sqsEndpoint, --sqs-endpoint SQS_ENDPOINT
Punto de enlace de SNS -, --sns-endpoint snsEndpoint 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 DNS nombre especialhost.docker.internal, que se traduce 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 HelloWorld estados localmente

Tras ejecutar Step Functions localmente con AWS Command Line Interface (AWS CLI), puede iniciar la ejecución de una máquina de estados.

  1. Cree una máquina de estados a partir AWS CLI de la definición de la máquina de estados.

    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 usar el nombre del recurso de Amazon (ARN) del ejemplo anterior.

    Si ha creado correctamente la máquina de estados, Step Functions responde con la fecha de creación y la máquina de estadosARN.

    { "creationDate": 1548454198.202, "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld" }
  2. Inicie una ejecución con la máquina ARN de estados que creó.

    aws stepfunctions --endpoint-url http://localhost:8083 start-execution --state-machine-arn arn:aws:states:us-east-1:123456789012: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 sobre la configuración y la ejecución 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 JAR archivos locales de Step Functions, inicie Step Functions Local y utilice el --lambda-endpoint parámetro para configurar el punto final de Lambda local.

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

Para obtener más información sobre cómo ejecutar Step Functions Local con AWS Lambda, consulteTutorial: Probar flujos de trabajo con Step Functions y AWS SAM CLI Local.