Tutorial 5: Gleichzeitiges Iterieren über eine Sammlung von Elementen - AWS Step Functions

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.

Tutorial 5: Gleichzeitiges Iterieren über eine Sammlung von Elementen

Im vorherigen Tutorial haben Sie gelernt, wie Sie mithilfe des Parallel Status separate Schrittzweige parallel ausführen können. 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. In diesem Tutorial führen Sie den Map Status im Standard-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

In diesem Tutorial erfahren Sie, wie Sie den Map Status im Inline-Modus verwenden, 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.

  1. Melden Sie sich bei der DynamoDB-Konsole an AWS Management Console und öffnen Sie sie unter https://console.aws.amazon.com/dynamodb/.

  2. Wählen Sie im Navigationsbereich der Konsole Tabellen und dann Tabelle erstellen aus.

  3. Geben Sie die Tabellendetails wie folgt ein:

    1. Geben Sie für Table name (Tabellenname) den Namen GetCreditBureau ein.

    2. Geben Sie für den Partitionsschlüssel Name ein.

    3. Behalten Sie die Standardauswahl bei und wählen Sie Tabelle erstellen aus.

  4. Nachdem Ihre Tabelle erstellt wurde, wählen Sie in der Tabellenliste die GetCreditBureauTabelle aus.

  5. Wählen Sie Aktionen und anschließend Element erstellen aus.

  6. Geben Sie unter Wert den Namen eines Kreditbüros ein. Zum Beispiel CredTrack.

  7. Wählen Sie Create item (Element erstellen) aus.

  8. Wiederholen Sie diesen Vorgang und erstellen Sie Artikel für Namen anderer Auskunfteien. Beispiel: KapFinn und CapTrust.

Schritt 2: State-Machine aktualisieren — Ergebnisse aus der DynamoDB-Tabelle abrufen

In der Step Functions Functions-Konsole fügen Sie einen Task Status hinzu und verwenden die AWSSDK-Integration, 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 in diesem Tutorial hinzufügen werden.

  1. Öffnen Sie die CreditCardWorkflowZustandsmaschine, um sie zu aktualisieren.

  2. Wählen Sie die Option Liste des Bundesstaates der Kreditauskunfteien abrufen aus.

  3. Geben Sie für API-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 in Schritt 4 dieses Tutorials zu Ihrem Workflow hinzufügen.

  1. Erstellen Sie eine Node.js 16.x Lambda-Funktion und benennen Sie sie. get-credit-score

  2. 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 + "."); };
  3. 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.

  1. Öffnen Sie die CreditCardWorkflowZustandsmaschine, um sie zu aktualisieren.

  2. Wählen Sie den Status Punkte aus allen Auskunfteien abrufen.

  3. Wählen Sie auf der Registerkarte Konfiguration die Option Geben Sie einen Pfad zum Artikelarray an und geben Sie dann die Eingabetaste ein$.Items.

  4. Wählen Sie Alle Punktzahlen abrufen, Schritt innerhalb des Map Bundesstaats aus.

  5. Vergewissern Sie sich, dass auf der Registerkarte Konfiguration als Integrationstyp die Option Optimiert ausgewählt ist.

  6. Geben Sie als Funktionsname den Namen der get-credit-scoreLambda-Funktion ein und wählen Sie ihn aus der angezeigten Dropdownliste aus.

  7. Wählen Sie für Payload die Option No payload aus.