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.
Itérer simultanément sur les éléments d'un flux de travail Step Functions
Dans la rubrique précédenteDéfinissez des tâches parallèles, vous avez appris à exécuter des branches distinctes d'étapes en parallèle à l'aide de l'Parallel
état. À l'aide de Map
l'état, vous pouvez exécuter un ensemble d'étapes de flux de travail pour chaque élément d'un ensemble de données. Les itérations de Map
l'état s'exécutent en parallèle, ce qui permet de traiter rapidement un ensemble de données.
En incluant l'Map
état dans vos flux de travail, vous pouvez effectuer des tâches, telles que le traitement des données, en utilisant l'un des deux modes Modes de traitement de l'état des cartes : en ligne et en mode distribué. Pour configurer un Map
état, vous définissez unItemProcessor
, qui contient des JSON objets qui spécifient le mode de traitement de Map
l'état et sa définition. Vous exécuterez l'Map
état dans le mode Inline par défaut, qui prend en charge jusqu'à 40 itérations simultanées. Lorsque vous exécutez l'Map
état en mode distribué, il prend en charge jusqu'à 10 000 exécutions parallèles de flux de travail enfants.
Lorsque l'exécution de votre flux de travail entre dans Map
cet état, elle itère sur un JSON tableau spécifié dans l'entrée d'état. Pour chaque élément du tableau, l'itération correspondante s'exécute dans le contexte du flux de travail contenant l'Map
état. Lorsque toutes les itérations sont terminées, l'Map
état renvoie un tableau contenant la sortie pour chaque élément traité par leItemProcessor
.
Vous utiliserez l'Map
état en mode Inline pour récupérer le pointage de crédit d'un candidat en effectuant une itération sur un ensemble de bureaux de crédit. Pour ce faire, vous devez d'abord récupérer les noms de toutes les agences de crédit stockées dans une table Amazon DynamoDB, puis vous utilisez l'état pour parcourir Map
la liste des agences de crédit afin de récupérer la cote de solvabilité du candidat déclarée par chacune de ces agences.
Étape 1 : créer une table DynamoDB pour stocker le nom de toutes les agences de crédit
Au cours de cette étape, vous allez créer une table nommée à GetCreditBureau
l'aide de la console DynamoDB. La table utilise l'attribut de chaîne Name comme clé de partition. Dans ce tableau, vous enregistrez le nom de toutes les agences de crédit auprès desquelles vous souhaitez obtenir le pointage de crédit du demandeur.
Connectez-vous à la console DynamoDB AWS Management Console et ouvrez-la à l'adresse. https://console.aws.amazon.com/dynamodb/
Dans le volet de navigation de la console, choisissez Tables, puis Create table.
Saisissez les informations de la table comme suit :
Comme Nom de la table, entrez
GetCreditBureau
.Pour la clé de partition, saisissez
Name
.Conservez les sélections par défaut, puis choisissez Create table.
Une fois votre table créée, dans la liste Tables, GetCreditBureauchoisissez-la.
Choisissez Actions, puis sélectionnez Créer un élément.
Dans Valeur, entrez le nom d'une agence de crédit. Par exemple,
CredTrack
.Choisissez Créer un élément.
Répétez ce processus et créez des éléments pour les noms d'autres bureaux de crédit. Par exemple :
KapFinn
etCapTrust
.
Étape 2 : Mettre à jour la machine à états — Extraire les résultats depuis la table DynamoDB
Dans la console Step Functions, vous allez ajouter un Task état et utiliser l'AWS SDKintégration pour récupérer les noms des agences de crédit dans la table DynamoDB que vous avez créée à l'étape 1. Vous utiliserez le résultat de cette étape comme entrée pour l'Map
état que vous ajouterez ultérieurement dans votre flux de travail.
Ouvrez la machine CreditCardWorkflowd'état pour la mettre à jour.
Choisissez l'état Obtenir la liste des agences de crédit.
Pour APIParamètres, spécifiez la valeur du nom de la table sous la forme
GetCreditBureau
.
Étape 3 : Création d'une fonction Lambda qui renvoie les cotes de crédit de tous les bureaux de crédit
Au cours de cette étape, vous créez une fonction Lambda qui reçoit les noms de toutes les agences de crédit en entrée et renvoie la cote de solvabilité du demandeur pour chacune de ces agences de crédit. Cette fonction Lambda sera invoquée à partir de l'Map
état que vous ajouterez à votre flux de travail.
Créez une fonction Lambda 16.x de Node.js et nommez-la.
get-credit-score
Sur la page intitulée get-credit-score, collez le code suivant dans la zone Code source.
function getScore(arr) { let temp; let i = Math.floor((Math.random() * arr.length)); temp = arr[i]; console.log(i); console.log(temp); return temp; } const arrScores = [700, 820, 640, 460, 726, 850, 694, 721, 556]; exports.handler = (event, context, callback) => { let creditScore = getScore(arrScores); callback(null, "Credit score pulled is: " + creditScore + "."); };
Déployez la fonction Lambda.
Étape 4 : Mettre à jour la machine à états — ajouter un état de carte pour récupérer de manière itérative les cotes de crédit
Dans la console Step Functions, vous ajoutez un Map
état qui invoque la fonction get-credit-scoreLambda pour vérifier la cote de solvabilité du candidat pour toutes les agences de crédit renvoyées par l'état Get list of Credit Bureaus.
Ouvrez la machine CreditCardWorkflowd'état pour la mettre à jour.
Choisissez l'option Obtenir les scores de tous les bureaux de crédit de l'État.
Dans l'onglet Configuration, choisissez Fournir un chemin vers le tableau d'éléments, puis entrez
$.Items
.Choisissez Get all scores step inside the
Map
state.Dans l'onglet Configuration, assurez-vous que Type d'intégration, Optimisé est sélectionné.
Dans Nom de la fonction, commencez à saisir le nom de la fonction get-credit-scoreLambda et choisissez-le dans la liste déroulante qui apparaît.
Pour Charge utile, sélectionnez Aucune charge utile.
Étapes suivantes
À l'étape suivanteExécutez votre flux de travail , vous allez apprendre à exécuter votre flux de travail.