Tester des machines à états avec Step Functions Local (non pris en charge) - AWS Step Functions

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Tester des machines à états avec Step Functions Local (non pris en charge)

Step Functions Local n'est pas pris en charge

Step Functions Local n'assure pas la parité des fonctionnalités et n'est pas pris en charge.

Vous pouvez envisager des solutions tierces qui émulent Step Functions à des fins de test.

Avec AWS Step Functions Local, une version téléchargeable de Step Functions, vous pouvez tester des applications avec Step Functions exécutées dans votre propre environnement de développement.

Lorsque vous exécutez Step Functions Local, vous pouvez utiliser l'une des méthodes suivantes pour invoquer des intégrations de services :

  • Configuration de points de terminaison locaux pour AWS Lambda et d'autres services.

  • Téléphoner directement à un AWS service depuis Step Functions Local.

  • Se moquer de la réponse des intégrations de services.

AWS Step Functions Local est disponible sous forme de JAR package ou d'image Docker autonome qui s'exécute sur Microsoft Windows, Linux, macOS et d'autres plateformes compatibles avec Java ou Docker.

Avertissement

Vous ne devez utiliser Step Functions Local qu'à des fins de test et ne jamais traiter d'informations sensibles.

Configuration de Step Functions en local (version téléchargeable) dans Docker

L'image Docker Step Functions Local vous permet de démarrer rapidement avec Step Functions Local en utilisant une image Docker avec toutes les dépendances nécessaires. L'image Docker vous permet d'inclure Step Functions Local dans vos versions conteneurisées et dans le cadre de vos tests d'intégration continus.

Pour obtenir l'image Docker de Step Functions Local, consultez https://hub.docker.com/r/amazon/ aws-stepfunctions-local ou entrez la commande pull Docker suivante.

docker pull amazon/aws-stepfunctions-local

Pour démarrer la version téléchargeable de Step Functions sur Docker, exécutez la commande run Docker suivante

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

Pour interagir avec les services pris en charge AWS Lambda ou avec d'autres services pris en charge, vous devez d'abord configurer vos informations d'identification et les autres options de configuration. Pour plus d’informations, consultez les rubriques suivantes :

Configuration de Step Functions en local (version téléchargeable) - Version Java

La version téléchargeable de AWS Step Functions est fournie sous forme de JAR fichier exécutable et d'image Docker. L'application Java s'exécute sur Windows, Linux, macOS X et autres plateformes qui prennent en charge Java. En plus de Java, vous devez installer le AWS Command Line Interface (AWS CLI). Pour plus d'informations sur l'installation et la configuration du AWS CLI, consultez le guide de AWS Command Line Interface l'utilisateur.

Pour configurer et exécuter Step Functions sur votre ordinateur
  1. Téléchargez Step Functions à l'aide des liens suivants.

    Télécharger les liens Total de contrôle
    .tar.gz .tar.gz.md5
    .zip .zip .md5
  2. Extrayez le fichier .zip.

  3. Testez le téléchargement et affichez les informations de version.

    $ java -jar StepFunctionsLocal.jar -v Step Function Local Version: 2.0.0 Build: 2024-05-18
  4. (Facultatif) Affichez la liste des commandes disponibles.

    $ java -jar StepFunctionsLocal.jar -h
  5. Pour démarrer Step Functions sur votre ordinateur, ouvrez une invite de commande, accédez au répertoire dans lequel vous avez effectué l'extraction StepFunctionsLocal.jar et entrez la commande suivante.

    java -jar StepFunctionsLocal.jar
  6. Pour accéder à Step Functions s'exécutant localement, utilisez le --endpoint-url paramètre. Par exemple, en utilisant le AWS CLI, vous devez spécifier les commandes Step Functions comme suit :

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

Par défaut, Step Functions Local utilise un compte de test local et des informations d'identification, et la AWS région est définie sur USA Est (Virginie du Nord). Pour utiliser Step Functions Local avec AWS Lambda ou d'autres services pris en charge, vous devez configurer vos informations d'identification et votre région.

Si vous utilisez des flux de travail Express avec Step Functions Local, l'historique d'exécution sera enregistré dans un fichier journal. Il n'est pas enregistré dans CloudWatch Logs. Le chemin du fichier journal sera basé sur le groupe de CloudWatch journaux des journaux ARN fourni lors de la création de la machine d'état locale. Le fichier journal sera stocké /aws/states/log-group-name/${execution_arn}.log par rapport à l'emplacement où vous exécutez Step Functions Local. Par exemple, si l'exécution ARN est :

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

le fichier journal sera :

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

Configuration des options de configuration pour Step Functions Local

Lorsque vous démarrez AWS Step Functions Local à l'aide du JAR fichier, vous pouvez définir les options de configuration en utilisant le AWS Command Line Interface (AWS CLI) ou en les incluant dans l'environnement système. Pour Docker, vous devez spécifier ces options dans un fichier auquel vous faites référence lors du démarrage de Step Functions Local.

Options de configuration

Lorsque vous configurez le conteneur Step Functions Local pour utiliser un point de terminaison de remplacement tel que Lambda Endpoint et Batch Endpoint, et que vous appelez ce point de terminaison, Step Functions Local n'utilise pas les informations d'identification que vous spécifiez. La définition de ces remplacements de point de terminaison est facultative.

Option Ligne de commande Environnement
Compte -compte, --aws-account AWS_ACCOUNT_ID
Région -région, --aws-region AWS_DEFAULT_REGION
Échelle de délai d'attente -waitTimeScale, --wait-time-scale WAIT_TIME_SCALE
Point de terminaison Lambda -lambdaEndpoint, --lambda-endpoint LAMBDA_ENDPOINT
Point de terminaison par lot -batchEndpoint, --batch-endpoint BATCH_ENDPOINT
Point de terminaison DynamoDB -dynamoDBEndpoint, --dynamodb-endpoint DYNAMODB_ENDPOINT
Point de terminaison ECS -ecsEndpoint, --ecs-point de terminaison ECS_ENDPOINT
Point de terminaison Glue -glueEndpoint, --glue-endpoint GLUE_ENDPOINT
SageMaker Point final -sageMakerEndpoint, --sagemaker-endpoint SAGE_MAKER_ENDPOINT
Point de terminaison SQS -sqsEndpoint, --sqs-point de terminaison SQS_ENDPOINT
Point de terminaison SNS -snsEndpoint, --sns-endpoint SNS_ENDPOINT
Point de terminaison Step Functions -stepFunctionsEndpoint, --step-functions-endpoint STEP_FUNCTIONS_ENDPOINT

Informations d'identification et configuration pour Docker

Pour configurer Step Functions Local pour Docker, créez le fichier suivant : aws-stepfunctions-local-credentials.txt

Ce fichier contient vos informations d'identification et d'autres options de configuration. Ce qui suit peut être utilisé comme modèle lors de la création du aws-stepfunctions-local-credentials.txt fichier.

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

Une fois que vous avez configuré vos informations d'identification et vos options de configuration dansaws-stepfunctions-local-credentials.txt, lancez Step Functions avec la commande suivante.

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

Il est recommandé d'utiliser le DNS nom spécialhost.docker.internal, qui correspond à l'adresse IP interne utilisée par l'hôte, par exemplehttp://host.docker.internal:8000. Pour plus d'informations, consultez la documentation Docker pour Mac et Windows sous Fonctionnalités réseau dans Docker Desktop pour Mac et Fonctionnalités réseau dans Docker Desktop pour Windows respectivement.

Exécution de Step Functions Local sur votre ordinateur

Utilisez la version locale de Step Functions pour configurer, développer et tester des machines d'état sur votre ordinateur.

Exécuter une machine HelloWorld d'état localement

Après avoir exécuté Step Functions localement avec le AWS Command Line Interface (AWS CLI), vous pouvez démarrer une exécution State Machine.

  1. Créez une machine à états à partir du AWS CLI en échappant à la définition de la machine à états.

    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"
    Note

    Le n'role-arnest pas utilisé pour Step Functions Local, mais vous devez l'inclure avec la syntaxe appropriée. Vous pouvez utiliser le nom de ressource Amazon (ARN) de l'exemple précédent.

    Si vous créez correctement la machine à états, Step Functions répond en indiquant la date de création et la machine à étatsARN.

    { "creationDate": 1548454198.202, "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld" }
  2. Lancez une exécution à l'aide ARN de la machine à états que vous avez créée.

    aws stepfunctions --endpoint-url http://localhost:8083 start-execution --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld

Step Functions Local avec AWS SAM CLI Local

Vous pouvez utiliser la version locale de Step Functions avec une version locale de AWS Lambda. Pour configurer cela, vous devez installer et configurer AWS SAM.

Pour plus d'informations sur la configuration et l'exécution AWS SAM, consultez les rubriques suivantes :

Lorsque Lambda est exécuté sur votre système local, vous pouvez démarrer Step Functions Local. Dans le répertoire où vous avez extrait vos JAR fichiers locaux Step Functions, lancez Step Functions Local et utilisez le --lambda-endpoint paramètre pour configurer le point de terminaison Lambda local.

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

Pour plus d'informations sur l'exécution de Step Functions Local avec AWS Lambda, consultezTutoriel : Tester les flux de travail à l'aide de Step Functions et de AWS SAM CLI Local.