Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Utilisation AWS SAM pour créer des flux de travail Step Functions

Mode de mise au point
Utilisation AWS SAM pour créer des flux de travail Step Functions - 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.

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.

Vous pouvez utiliser AWS Serverless Application Model Step Functions pour créer des flux de travail et déployer l'infrastructure dont vous avez besoin, y compris les fonctions Lambda APIs et les événements, pour créer des applications sans serveur.

Vous pouvez également utiliser la AWS Serverless Application Model CLI conjointement avec le dans le AWS Toolkit for Visual Studio Code cadre d'une expérience intégrée pour créer et déployer des machines AWS Step Functions d'état. Vous pouvez créer une application sans serveur avec AWS SAM, puis créer votre machine d'état dans l'IDE VS Code. Vous pouvez ensuite valider, empaqueter et déployer vos ressources.

Astuce

Pour déployer un exemple d'application sans serveur qui démarre un flux de travail Step Functions à l'aide AWS SAM de la section Déployer avec AWS SAM dans The AWS Step Functions Workshop.

Pourquoi utiliser Step Functions avec AWS SAM ?

Lorsque vous utilisez Step Functions avec, AWS SAM vous pouvez :

  • Commencez à utiliser un AWS SAM exemple de modèle.

  • Construire votre machine d'état dans votre application sans serveur.

  • Utilisez la substitution de variables pour remplacer ARNs votre machine d'état au moment du déploiement.

    AWS CloudFormation supports DefinitionSubstitutionsqui vous permettent d'ajouter des références dynamiques dans la définition de votre flux de travail à une valeur que vous fournissez dans votre CloudFormation modèle. Vous pouvez ajouter des références dynamiques en ajoutant des substitutions à la définition de votre flux de travail à l'aide de la ${dollar_sign_brace} notation. Vous devez également définir ces références dynamiques dans la DefinitionSubstitutions propriété de la StateMachine ressource de votre CloudFormation modèle. Ces substitutions sont remplacées par des valeurs réelles au cours de CloudFormation processus de création de piles. Pour de plus amples informations, veuillez consulter DefinitionSubstitutions dans AWS SAM modèles.

  • Spécifiez le rôle de votre machine à états à l'aide AWS SAM de modèles de politiques.

  • Lancez des exécutions par machine à états à l'aide d'API Gateway, d' EventBridge événements ou selon un calendrier défini dans votre AWS SAM modèle.

Step Functions : intégration avec la AWS SAM spécification

Vous pouvez utiliser les modèles AWS SAM de politique pour ajouter des autorisations à votre machine d'état. Avec ces autorisations, vous pouvez orchestrer les fonctions Lambda et AWS d'autres ressources pour créer des flux de travail complexes et robustes.

Intégration de Step Functions avec l’interface de ligne de commande SAM

Step Functions est intégré à la AWS SAM CLI. Utilisez cela pour développer rapidement une machine d'état dans votre application sans serveur.

Essayez le Créez une machine d'état Step Functions en utilisant AWS SAM didacticiel pour apprendre à l'utiliser AWS SAM pour créer des machines à états.

Les fonctions AWS SAM CLI prises en charge incluent :

Commande de l'interface de ligne de commande (CLI) Description
démarrage sam

Initialise une application sans serveur avec un AWS SAM modèle. Peut être utilisée avec un modèle SAM pour Step Functions.

valider sam Valide un AWS SAM modèle.
package sam

Regroupe une AWS SAM application. Il crée un fichier ZIP contenant votre code et vos dépendances, puis le télécharge sur Amazon S3. Elle renvoie ensuite une copie de votre modèle AWS SAM , en remplaçant les références vers des artefacts locaux par l'emplacement Amazon S3 où la commande a chargé les artefacts.

déploiement sam Déploie une AWS SAM application.
publication sam

Publiez une AWS SAM application dans le AWS Serverless Application Repository. Cette commande prend un AWS SAM modèle empaqueté et publie l'application dans la région spécifiée.

Note

Lorsque vous utilisez le AWS SAM mode local, vous pouvez émuler Lambda et API Gateway localement. Cependant, vous ne pouvez pas émuler Step Functions localement en utilisant AWS SAM.

DefinitionSubstitutions dans AWS SAM modèles

Vous pouvez définir des machines à états en utilisant CloudFormation modèles avec AWS SAM. En utilisant AWS SAM, vous pouvez définir la machine à états en ligne dans le modèle ou dans un fichier séparé. Procédez comme suit : AWS SAM le modèle inclut une machine à états qui simule un flux de travail de négociation d'actions. Cette machine à états invoque trois Lambda fonctions permettant de vérifier le prix d'une action et de déterminer s'il faut acheter ou vendre l'action. Cette transaction est ensuite enregistrée dans un Amazon DynamoDB table. Le ARNs pour le Lambda fonctions et DynamoDB les tables du modèle suivant sont spécifiées à l'aide de DefinitionSubstitutions.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: | step-functions-stock-trader Sample SAM Template for step-functions-stock-trader Resources: StockTradingStateMachine: Type: AWS::Serverless::StateMachine Properties: DefinitionSubstitutions: StockCheckerFunctionArn: !GetAtt StockCheckerFunction.Arn StockSellerFunctionArn: !GetAtt StockSellerFunction.Arn StockBuyerFunctionArn: !GetAtt StockBuyerFunction.Arn DDBPutItem: !Sub arn:${AWS::Partition}:states:::dynamodb:putItem DDBTable: !Ref TransactionTable Policies: - DynamoDBWritePolicy: TableName: !Ref TransactionTable - LambdaInvokePolicy: FunctionName: !Ref StockCheckerFunction - LambdaInvokePolicy: FunctionName: !Ref StockBuyerFunction - LambdaInvokePolicy: FunctionName: !Ref StockSellerFunction DefinitionUri: statemachine/stock_trader.asl.json StockCheckerFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/stock-checker/ Handler: app.lambdaHandler Runtime: nodejs18.x Architectures: - x86_64 StockSellerFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/stock-seller/ Handler: app.lambdaHandler Runtime: nodejs18.x Architectures: - x86_64 StockBuyerFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/stock-buyer/ Handler: app.lambdaHandler Runtime: nodejs18.x Architectures: - x86_64 TransactionTable: Type: AWS::DynamoDB::Table Properties: AttributeDefinitions: - AttributeName: id AttributeType: S

Le code suivant est la définition de la machine à états dans le fichier stock_trader.asl.json utilisé dans le Créez une machine d'état Step Functions en utilisant AWS SAM didacticiel. Cette définition de machine à états contient plusieurs définitions DefinitionSubstitutions désignées par la notation. ${dollar_sign_brace} Par exemple, au lieu de spécifier une valeur statique Lambda fonction ARN pour la Check Stock Value tâche, la substitution ${StockCheckerFunctionArn} est utilisée. Cette substitution est définie dans la DefinitionSubstitutions propriété du modèle. DefinitionSubstitutionsest une carte de paires clé-valeur pour la ressource State Machine. DansDefinitionSubstitutions, $ {StockCheckerFunctionArn} correspond à l'ARN de la StockCheckerFunction ressource à l'aide du CloudFormation fonction intrinsèque !GetAtt. Lorsque vous déployez le AWS SAM modèle, les valeurs DefinitionSubstitutions contenues dans le modèle sont remplacées par les valeurs réelles.

{ "Comment": "A state machine that does mock stock trading.", "StartAt": "Check Stock Value", "States": { "Check Stock Value": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "Payload.$": "$", "FunctionName": "${StockCheckerFunctionArn}" }, "Next": "Buy or Sell?" }, "Buy or Sell?": { "Type": "Choice", "Choices": [ { "Variable": "$.stock_price", "NumericLessThanEquals": 50, "Next": "Buy Stock" } ], "Default": "Sell Stock" }, "Buy Stock": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "Payload.$": "$", "FunctionName": "${StockBuyerFunctionArn}" }, "Retry": [ { "ErrorEquals": [ "Lambda.ServiceException", "Lambda.AWSLambdaException", "Lambda.SdkClientException", "Lambda.TooManyRequestsException" ], "IntervalSeconds": 1, "MaxAttempts": 3, "BackoffRate": 2 } ], "Next": "Record Transaction" }, "Sell Stock": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "Payload.$": "$", "FunctionName": "${StockSellerFunctionArn}" }, "Next": "Record Transaction" }, "Record Transaction": { "Type": "Task", "Resource": "arn:aws:states:::dynamodb:putItem", "Parameters": { "TableName": "${DDBTable}", "Item": { "Id": { "S.$": "$.id" }, "Type": { "S.$": "$.type" }, "Price": { "N.$": "$.price" }, "Quantity": { "N.$": "$.qty" }, "Timestamp": { "S.$": "$.timestamp" } } }, "End": true } } }

Étapes suivantes

Pour en savoir plus sur l'utilisation de Step Functions, consultez les ressources suivantes : AWS SAM

Vous pouvez également concevoir et créer vos flux de travail dans l'infrastructure sous forme de code (IaC) à l'aide de générateurs visuels, tels que Workflow Studio dans Infrastructure Composer. Pour plus d'informations, consultezUtilisation de Workflow Studio dans Infrastructure Composer pour créer des flux de travail Step Functions.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.