Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Gleichzeitiges Iterieren über Elemente in einem Step Functions Functions-Workflow
Im vorherigen Thema haben Sie gelerntDefinieren Sie parallel Aufgaben, wie Sie mithilfe des Parallel
Status separate Schrittzweige parallel ausführen. Mithilfe des Map
Status können Sie für jedes Element in einem Datensatz eine Reihe von Workflow-Schritten ausführen. Die Iterationen des Map
Staates laufen parallel, was eine schnelle Verarbeitung eines Datensatzes ermöglicht.
Indem Sie den Map
Status in Ihre Workflows einbeziehen, können Sie Aufgaben wie die Datenverarbeitung mithilfe einer der beiden Methoden ausführenZustandsverarbeitungsmodi zuordnen: Inline-Modus und Verteilter Modus. Um einen Map
Status zu konfigurieren, definieren Sie einenItemProcessor
, der JSON Objekte enthält, die den Map
Zustandsverarbeitungsmodus und seine Definition angeben. Sie führen den Map
Status im standardmäßigen Inline-Modus aus, der bis zu 40 gleichzeitige Iterationen unterstützt. Wenn Sie den Map
Status im verteilten Modus ausführen, unterstützt er bis zu 10.000 parallel Ausführungen untergeordneter Workflows.
Wenn Ihre Workflow-Ausführung in den Map
Status übergeht, iteriert sie über ein JSON Array, das in der Statuseingabe angegeben ist. Für jedes Array-Element wird die entsprechende Iteration im Kontext des Workflows ausgeführt, der den Status enthält. Map
Wenn alle Iterationen abgeschlossen sind, gibt der Map
Status ein Array zurück, das die Ausgabe für jedes Element enthält, das von der verarbeitet wurde. ItemProcessor
Sie verwenden den Map
Status im Inline-Modus, um die Kreditwürdigkeit eines Bewerbers abzurufen, indem Sie eine Reihe von Auskunfteien durchlaufen. Dazu rufen Sie zunächst die Namen aller Auskunfteien ab, die in einer Amazon DynamoDB-Tabelle gespeichert sind, und verwenden dann den Map
Status, um die Auskunfteiliste zu durchsuchen, um die Kreditwürdigkeit des Antragstellers abzurufen, die von jeder dieser Büros gemeldet wurden.
Schritt 1: Erstellen Sie eine DynamoDB-Tabelle, um die Namen aller Auskunfteien zu speichern
In diesem Schritt erstellen Sie GetCreditBureau
mithilfe der DynamoDB-Konsole eine benannte Tabelle. Die Tabelle verwendet das Zeichenkettenattribut Name als Partitionsschlüssel. In dieser Tabelle speichern Sie die Namen aller Auskunfteien, von denen Sie die Kreditwürdigkeit des Bewerbers abrufen möchten.
Melden Sie sich bei der an AWS Management Console und öffnen Sie die DynamoDB-Konsole unter. https://console.aws.amazon.com/dynamodb/
Wählen Sie im Navigationsbereich der Konsole Tabellen und dann Tabelle erstellen aus.
Geben Sie die Tabellendetails wie folgt ein:
Geben Sie für Table name (Tabellenname) den Namen
GetCreditBureau
ein.Geben Sie für den Partitionsschlüssel
Name
ein.Behalten Sie die Standardauswahl bei und wählen Sie Tabelle erstellen aus.
Nachdem Ihre Tabelle erstellt wurde, wählen Sie in der Tabellenliste die GetCreditBureauTabelle aus.
Wählen Sie Aktionen und anschließend Element erstellen aus.
Geben Sie unter Wert den Namen eines Kreditbüros ein. Beispiel,
CredTrack
.Wählen Sie Create item (Element erstellen) aus.
Wiederholen Sie diesen Vorgang und erstellen Sie Artikel für Namen anderer Auskunfteien. Beispiel:
KapFinn
undCapTrust
.
Schritt 2: State-Machine aktualisieren — Ergebnisse aus der DynamoDB-Tabelle abrufen
In der Step Functions Functions-Konsole fügen Sie einen Task Bundesstaat hinzu und verwenden die AWS SDKIntegration, um die Namen von Auskunfteien aus der DynamoDB-Tabelle abzurufen, die Sie in Schritt 1 erstellt haben. Sie verwenden die Ausgabe dieses Schritts als Eingabe für den Map
Status, den Sie später in Ihrem Workflow hinzufügen werden.
Öffnen Sie die CreditCardWorkflowZustandsmaschine, um sie zu aktualisieren.
Wählen Sie die Option Liste des Bundesstaates der Kreditauskunfteien abrufen aus.
Geben Sie APIunter Parameter den Wert für den Tabellennamen als
GetCreditBureau
an.
Schritt 3: Erstellen Sie eine Lambda-Funktion, die die Kreditwürdigkeit aller Auskunfteien zurückgibt
In diesem Schritt erstellen Sie eine Lambda-Funktion, die die Namen aller Auskunfteien als Eingabe empfängt und die Kreditwürdigkeit des Antragstellers für jede dieser Auskunfteien zurückgibt. Diese Lambda-Funktion wird von dem Map
Status aus aufgerufen, den Sie Ihrem Workflow hinzufügen.
Erstellen Sie eine Node.js 16.x Lambda-Funktion und benennen Sie sie.
get-credit-score
Fügen Sie auf der Seite mit dem Titel get-credit-scoreden folgenden Code in den Bereich Codequelle ein.
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 + "."); };
Stellen Sie die Lambda-Funktion bereit.
Schritt 4: Aktualisieren Sie die Zustandsmaschine — fügen Sie einen Kartenstatus hinzu, um iterativ Kredit-Scores abzurufen
In der Step Functions Functions-Konsole fügen Sie einen Map
Bundesstaat hinzu, der die get-credit-scoreLambda-Funktion aufruft, um die Kreditwürdigkeit des Antragstellers für alle Auskunfteien zu überprüfen, die vom Status „Liste der Kreditbüros abrufen“ zurückgegeben wurden.
Öffnen Sie die CreditCardWorkflowZustandsmaschine, um sie zu aktualisieren.
Wählen Sie den Status Punkte aus allen Auskunfteien abrufen.
Wählen Sie auf der Registerkarte Konfiguration die Option Geben Sie einen Pfad zum Artikelarray an und geben Sie dann die Eingabetaste ein
$.Items
.Wählen Sie Alle Punktzahlen abrufen, Schritt innerhalb des
Map
Bundesstaats aus.Vergewissern Sie sich, dass auf der Registerkarte Konfiguration als Integrationstyp die Option Optimiert ausgewählt ist.
Geben Sie als Funktionsname den Namen der get-credit-scoreLambda-Funktion ein und wählen Sie ihn aus der angezeigten Dropdownliste aus.
Wählen Sie für Payload die Option No payload aus.
Nächste Schritte
Im nächsten Schritt erfahren SieFühren Sie Ihren Workflow aus , wie Sie Ihren Workflow ausführen.