Libérer la puissance de l’orchestration des API avec AWS Step Functions et API Gateway

Dans le paysage logiciel complexe d’aujourd’hui, les applications s’appuient souvent sur des interactions avec plusieurs API pour accomplir leurs tâches. La gestion de ces interactions peut rapidement devenir fastidieuse, entraînant une duplication de code, une complexité accrue et des erreurs potentielles. C’est ici que Orchestration des API vient à la rescousse.
Orchestration des API vous permet de chorégraphier les appels à diverses API dans une séquence prédéfinie, en les traitant comme des éléments de base composables pour une fonctionnalité plus large. Cette approche offre plusieurs avantages :
- Maintenabilité améliorée du code : Vous réduisez la duplication de code et simplifiez la maintenance future en centralisant la logique d’orchestration en un seul emplacement.
- Gestion accrue des erreurs : Définissez des mécanismes centralisés de gestion des erreurs au sein de la couche d’orchestration, améliorant ainsi la résilience globale de votre application.
- Évolutivité améliorée : Les outils d’orchestration tels qu’AWS Step Functions permettent de créer des flux de travail évolutifs qui peuvent s’adapter à différentes charges de travail.
Diagramme d’orchestration d’API
L’image illustre une architecture dans laquelle une passerelle API achemine les requêtes du client vers divers microservices, avec un service Orchestrator gérant les requêtes, regroupant les réponses de plusieurs services (services A, B et C) et composant la réponse finale au client. Le service Orchestrator coordonne les interactions entre les microservices, gère le flux de données et garantit qu’une réponse cohérente est renvoyée au client.
AWS Step Functions est un service d’orchestration sans serveur grâce auquel nous pouvons combiner les fonctions AWS Lambda et d’autres services AWS pour créer des applications métier complexes. Nous pouvons créer la logique d’orchestration dans un style déclaratif en utilisant un format basé sur JSON appelé Amazon States Language (ASL). Les fonctions AWS Step fournissent également un Work ow Studio où nous pouvons définir et exécuter nos flux de travail.
Dans cet article, nous présenterons les concepts d’AWS Step Functions et comprendrons son fonctionnement à l’aide d’un exemple.
Comprenons d’abord quelques concepts de base des Step Functions.
Machine à états, état et transitions
Une machine à états est un modèle mathématique de calcul composé de différents états liés à des transitions. Les fonctions AWS Step implémentent également une machine d’état pour représenter la logique d’orchestration. Chaque étape de l’orchestration est représentée par un état dans la machine à états et connectée à un ou plusieurs états via des transitions.
Ils sont représentés par un diagramme pour visualiser l’état actuel d’un système comme indiqué ici :

Diagramme d’état et de transition
Les machines à états contiennent au moins un état. Les transitions représentent différents événements qui permettent au système de passer d’un état à un autre.
Types d’État
Les États reçoivent des informations, effectuent des actions pour produire des résultats et transmettent ces résultats à d’autres États. Les États sont de différents types qui déterminent la nature des fonctions qu’un État peut remplir. Certains des types couramment utilisés sont :
- Tâche: Un état de type tâche représente une seule unité de travail effectuée par une machine à états. Les tâches effectuent tout le travail dans une machine à états. Le travail est effectué en utilisant une activité ou une fonction AWS Lambda, ou en transmettant des paramètres aux actions API d’autres services.
- Parallèle: Etat du type parallèle est utilisé pour déclencher plusieurs branches d’exécution.
- Carte: Nous pouvons itérer dynamiquement les étapes avec un état de type carte.
- Choix: Nous utilisons ce type d’état comme points de décision au sein d’une machine à états pour choisir parmi plusieurs branches d’exécution.
- Attendez: Un état d’attente représente une pause ou un retard dans l’exécution de votre flux de travail.
- Passer: Un état Pass représente un état sans opération ou pass-through qui transmet son entrée à sa sortie sans effectuer aucun traitement.
- Échouer: Un état d’échec représente un état terminal dans votre flux de travail indiquant que l’exécution a échoué.
La machine à états exécute un état après l’autre jusqu’à ce qu’elle n’ait plus d’état à exécuter. Nous comprendrons ces concepts plus en détail en implémentant un exemple de génération processus d’une application avec une machine à états.
Types de machines à états : standard ou express
Nous pouvons créer deux types de machines à états. Les exécutions de machines à états diffèrent en fonction du type. Le type de machine à états ne peut pas être modifié une fois la machine à états créée.
- Standard: Machine à états de type : Standard doivent être utilisés pour des processus de longue durée, durables et vérifiables.
- Exprimer: Machine à états de type : Express est utilisée pour les charges de travail de traitement d’événements à volume élevé telles que l’ingestion de données IoT, le traitement et la transformation de données en streaming et les backends d’applications mobiles. Ils peuvent courir jusqu’à cinq minutes.
Explorer la machine à états
La machine à états orchestre le traitement et la distribution de la génération des tickets :

Exemple de diagramme de machine à états
Le flux de travail est structuré comme suit :
- État de choix pour la sélection de l’utilisateur: Le flux de travail commence par un état de choix qui s’exécute de manière conditionnelle en fonction du choix de l’utilisateur entre les actions « Récupérer » ou « Générer ».
- État parallèle pour le filtrage des données : un état parallèle est utilisé avec deux états de réussite suivant l’état de choix. Chaque état de réussite filtre les détails spécifiques pour appeler l’API de génération de tickets.
- Fonction Lambda pour la génération de tickets : Après le filtrage des données, une fonction Lambda est invoquée pour générer un ticket à l’aide d’un appel API basé sur les détails filtrés.
- Gérer le succès et l’échec : Le flux de travail comprend des états de réussite et d’échec qui répondent en conséquence et mettent fin au flux de travail si la génération du ticket échoue.
- Fonction Lambda pour le chiffrement des tickets : Une fois la génération réussie du ticket, une autre fonction Lambda est déclenchée pour effectuer le chiffrement du ticket généré.
- État parallèle pour la distribution : Ensuite, un état parallèle est utilisé pour déclencher : Un état de réussite indique l’achèvement du flux de travail. et une action Amazon SNS (Simple Notification Service) qui envoie le ticket chiffré à un abonné.
Connecter API Gateway à Step Functions

Intégration d’API Gateway avec la fonction Step
La connexion d’API Gateway à AWS Step Functions vous permet de déclencher des flux de travail Step Functions directement à partir des requêtes HTTP entrantes.
Création d’une API de repos
Accédez à la console API Gateway et cliquez sur « Créer une API » dans le coin supérieur droit. Cliquez sur « Build » sous « REST API ».
Création de l’API Rest
- Choisissez le type d’API – sélectionnez « API REST »
- Créez une nouvelle API – sélectionnez « Nouvelle API »
- Paramètres – fournissez un « Nom d’API », une « Description » appropriée
- Cliquez sur « Créer une API » pour créer l’API de base.
2. Configurer la demande d’intégration
Ouvrez l’API nouvellement créée. Cliquez sur « Ressources » et créez une méthode « POST » et définissez la « Demande d’intégration » suivante comme indiqué dans la figure.

Page de demande d’intégration
- Type d’intégration – Service AWS
- Région AWS – Définissez la région appropriée
- Service AWS – Fonctions d’étape
- Action – DémarrerSyncExecution
- Rôle d’exécution – ARN de rôle pour permettre à API Gateway d’invoquer l’API Step Function (action IAM – « états : StartSyncExecution »)
3. Déployer l’API
Enfin, déployez l’API dans une étape appropriée.

Déploiement d’API
Dernier point mais non le moindre, le prix

Tarifs
Step Functions facture en fonction du nombre de transitions d’état requises pour exécuter votre application. Ainsi, chaque fois qu’une étape de votre flux de travail est exécutée, elle est comptée comme une transition d’état. AWS vous facture le nombre total de vos transitions d’état sur toutes vos machines d’état, y compris les tentatives.
- Niveau gratuit : 4 000 transitions d’état par mois
- Transitions d’état : 0,000025 $ PAR TRANSITION D’ÉTAT, après quoi 0,025 $ pour 1 000 transitions d’état
Conclusion
L’orchestration des API simplifie la gestion des applications modernes en réduisant la duplication de code et en améliorant la fiabilité. AWS Step Functions offre un cadre puissant pour des flux de travail évolutifs, maintenables et résilients. Grâce à une gestion robuste des erreurs et à une intégration AWS transparente, Step Functions rationalise les processus complexes, permettant des applications efficaces et fiables qui améliorent l’expérience utilisateur.
VOUS TROUVEZ CECI UTILE ? PARTAGEZ-LE
Source link