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.
Dans ce guide, vous allez télécharger, créer et déployer un exemple d' AWS SAM application contenant une machine à AWS Step Functions états. Cette application crée un flux de travail simulé de transactions boursières qui s'exécute selon un calendrier prédéfini (veuillez noter que le calendrier est désactivé par défaut pour éviter d'encourir des frais).
Le diagramme suivant montre les composants de cette application :

Voici un aperçu des commandes que vous exécutez pour créer votre exemple d'application. Pour plus d'informations sur chacune de ces commandes, consultez les sections plus loin dans cette page
# Step 1 - Download a sample application. For this tutorial you # will follow the prompts to select an AWS Quick Start Template # called 'Multi-step workflow'
sam init
# Step 2 - Build your applicationcd
project-directory
sam build
# Step 3 - Deploy your applicationsam deploy --guided
Prérequis
Ce guide part du principe que vous avez terminé les étapes de la section Installation de la AWS SAM CLI pour votre système d'exploitation. Il suppose que ce qui suit a été effectué :
-
J'ai créé un AWS compte.
-
Autorisations IAM configurées.
-
Homebrew installé. Remarque : Homebrew est uniquement un prérequis pour Linux et macOS.
-
Installation de la AWS SAM CLI. Remarque : assurez-vous d'avoir la version 0.52.0 ou ultérieure. Vous pouvez vérifier la version dont vous disposez en exécutant la commande
sam --version
.
Étape 1 : Téléchargez un exemple d'application AWS SAM
Commande à exécuter :
sam init
Suivez les invites à l'écran pour sélectionner les éléments suivants :
-
Modèle : Modèles de démarrage AWS rapide
-
Langage : Python, Ruby, NodeJS, Go, Java ou .NET
-
Nom du projet : (nom de votre choix - par défaut :
sam-app
) -
Application de démarrage rapide : flux de travail en plusieurs étapes
Que AWS SAM fais-tu :
Cette commande crée un répertoire avec le nom que vous avez fourni pour l'invite 'Nom du projet' (par défaut : sam-app
). Le contenu spécifique du répertoire dépendra du langage choisi.
Voici le contenu du répertoire lorsque vous choisissez l'un des runtimes Python :
├── README.md ├── functions │ ├── __init__.py │ ├── stock_buyer │ │ ├── __init__.py │ │ ├── app.py │ │ └── requirements.txt │ ├── stock_checker │ │ ├── __init__.py │ │ ├── app.py │ │ └── requirements.txt │ └── stock_seller │ ├── __init__.py │ ├── app.py │ └── requirements.txt ├── statemachine │ └── stock_trader.asl.json ├── template.yaml └── tests └── unit ├── __init__.py ├── test_buyer.py ├── test_checker.py └── test_seller.py
Il y a deux fichiers particulièrement intéressants que vous pouvez examiner :
-
template.yaml
: contient le AWS SAM modèle qui définit les AWS ressources de votre application. -
statemachine/stockTrader.asl.json
: contient la définition de la machine d'état de l'application, qui est écrite dans Utiliser Amazon States Language pour définir les flux de travail Step Functions.
Vous pouvez voir l'entrée suivante dans le fichier template.yaml
, qui pointe vers le fichier de définition de la machine d'état :
Properties:
DefinitionUri: statemachine/stock_trader.asl.json
Il peut être utile de conserver la définition de la machine à états sous forme de fichier distinct au lieu de l'intégrer dans le AWS SAM modèle. Par exemple, le suivi des modifications apportées à la définition de la machine à états est plus facile si vous n'incluez pas la définition dans le modèle. Vous pouvez utiliser le Workflow Studio pour créer et gérer la définition de la machine à états, et exporter la définition de la console directement vers le fichier de spécification Amazon States Language sans la fusionner dans le modèle.
Pour plus d'informations sur l'application exemple, consultez le fichier README.md
dans le répertoire du projet.
Étape 2 : Créer votre application
Commande à exécuter :
Changez d'abord dans le répertoire du projet (c'est-à-dire le répertoire où se trouve le fichier template.yaml
de l'application exemple ; par défaut : sam-app
), puis exécutez cette commande :
sam build
Exemple de sortie :
Build Succeeded Built Artifacts : .aws-sam/build Built Template : .aws-sam/build/template.yaml Commands you can use next ========================= [*] Invoke Function: sam local invoke [*] Deploy: sam deploy --guided
Que AWS SAM fais-tu :
La AWS SAM CLI est fournie avec des abstractions pour un certain nombre d'environnements d'exécution Lambda afin de créer vos dépendances, et copie tous les artefacts de construction dans des dossiers intermédiaires afin que tout soit prêt à être empaqueté et déployé. La commande sam build
crée toutes les dépendances de votre application et copie les artefacts de création dans les dossiers sous .aws-sam/build
.
Étape 3 : Déployer votre application dans le AWS cloud
Commande à exécuter :
sam deploy --guided
Suivez les invites à l’écran. Vous pouvez simplement répondre avec Enter
pour accepter les options par défaut fournies dans l'expérience interactive.
Que AWS SAM fais-tu :
Cette commande déploie votre application dans le AWS cloud. Il prend les artefacts de déploiement que vous créez à l'aide de la sam build
commande, les empaquète et les télécharge dans un compartiment Amazon S3 créé par la AWS SAM CLI, puis déploie l'application à l'aide de. AWS CloudFormation Dans la sortie de la commande de déploiement, vous pouvez voir les modifications apportées à votre pile AWS CloudFormation
.
Vous pouvez vérifier que l'exemple de machine d'état Step Functions a été déployé avec succès en suivant ces étapes :
Connectez-vous à la console Step Functions AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/states/
. -
Dans le panneau de navigation de gauche, choisissez Machines d’état.
-
Recherchez et choisissez dans la liste votre nouvelle machine d'état. Il sera nommé StockTradingStateMachine -
<unique-hash>
. -
Choisissez l'onglet Définition.
Vous devriez maintenant disposer d’une représentation visuelle de votre machine d'état. Vous pouvez vérifier que la représentation visuelle correspond à la définition de la machine d'état trouvée dans le fichier statemachine/stockTrader.asl.json
du répertoire de votre projet.
Résolution des problèmes
Erreur de l’interface de ligne de commande SAM : « aucune option de ce type : —guidé »
Lors de l'exécution de sam deploy
, l'erreur suivante s'affiche :
Error: no such option: --guided
Cela signifie que vous utilisez une ancienne version de la AWS SAM CLI qui ne prend pas en charge le --guided
paramètre. Pour résoudre ce problème, vous pouvez soit mettre à jour votre version de AWS SAM CLI vers la version 0.33.0 ou ultérieure, soit omettre le --guided
paramètre dans la commande. sam deploy
Erreur de l’interface de ligne de commande SAM : « Impossible de créer les ressources gérées : impossible de localiser les informations d'identification »
Lors de l'exécution de sam deploy
, l'erreur suivante s'affiche :
Error: Failed to create managed resources: Unable to locate credentials
Cela signifie que vous n'avez pas configuré AWS d'informations d'identification pour permettre à la AWS SAM CLI d'effectuer des appels AWS de service. Pour résoudre ce problème, vous devez configurer les AWS informations d'identification. Pour plus d'informations, consultez la section Configuration des AWS informations d'identification dans le guide du AWS Serverless Application Model développeur.
Nettoyage
Si vous n'avez plus besoin des AWS ressources que vous avez créées en exécutant ce didacticiel, vous pouvez les supprimer en supprimant la AWS CloudFormation pile que vous avez déployée.
Pour supprimer la AWS CloudFormation pile créée avec ce didacticiel à l'aide du AWS Management Console, procédez comme suit :
Connectez-vous à la AWS CloudFormation console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudformation.
-
Dans le volet de navigation de gauche, choisissez Stacks (Piles).
-
Dans la liste des piles, choisissez sam-app (ou le nom de la pile que vous avez créée).
-
Sélectionnez Delete (Supprimer).
L'état de la pile passe alors à DELETE_COMPLETE.
Vous pouvez également supprimer la AWS CloudFormation pile en exécutant la AWS CLI commande suivante :
aws cloudformation delete-stack --stack-name
sam-app
--regionregion
Vérifier la pile supprimée
Pour les deux méthodes de suppression de la AWS CloudFormation pile, vous pouvez vérifier qu'elle a été supprimée en accédant à https://console.aws.amazon.com/cloudformation