Eine CSV Datei aus Amazon S3 mithilfe einer verteilten Map verarbeiten - 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.

Eine CSV Datei aus Amazon S3 mithilfe einer verteilten Map verarbeiten

Dieses Beispielprojekt zeigt, wie Sie den Status Distributed Map verwenden können, um über 10.000 Zeilen einer CSV Datei zu iterieren, die mit einem Lambda Funktion. Die CSV Datei enthält Versandinformationen von Kundenbestellungen und wird in einem Amazon S3 S3-Bucket gespeichert. Die Distributed Map iteriert zur Datenanalyse über einen Stapel von 10 Zeilen in der CSV Datei.

Die verteilte Map enthält eine Lambda Funktion zur Erkennung verspäteter Bestellungen. Die Distributed Map enthält auch eine Inline-Map zur Verarbeitung verzögerter Bestellungen in einem Batch und gibt diese verzögerten Bestellungen in einem Array zurück. Für jede verzögerte Bestellung sendet die Inline Map eine Nachricht an einen Amazon SQS Warteschlange. Schließlich speichert dieses Beispielprojekt die Map Run-Ergebnisse in einem anderen Amazon S3 S3-Bucket in Ihrem AWS-Konto.

Mit Distributed Map können Sie bis zu 10.000 parallel untergeordnete Workflow-Ausführungen gleichzeitig ausführen. In diesem Beispielprojekt ist die maximale Parallelität von Distributed Map auf 1000 festgelegt, wodurch sie auf 1000 parallel untergeordnete Workflow-Ausführungen begrenzt ist.

In diesem Beispielprojekt wird der Zustandsmaschine, der unterstützende AWS Ressourcen und konfiguriert die zugehörigen IAM Berechtigungen. Erkunden Sie dieses Beispielprojekt, um mehr über die Verwendung von Distributed Map für die Orchestrierung umfangreicher, parallel Workloads zu erfahren, oder verwenden Sie es als Ausgangspunkt für Ihre eigenen Projekte.

AWS CloudFormation Vorlage und zusätzliche Ressourcen

Sie verwenden eine CloudFormation Vorlage, um dieses Beispielprojekt bereitzustellen. Diese Vorlage erstellt die folgenden Ressourcen in Ihrem AWS-Konto:

  • Eine Step Functions Functions-Zustandsmaschine.

  • Ausführungsrolle für die Zustandsmaschine. Diese Rolle gewährt die Berechtigungen, die Ihr Zustandsmaschine benötigt, um auf andere zuzugreifen AWS-Services und Ressourcen wie die Invoke-Aktion der Lambda-Funktion.

  • Eine Lambda-Funktion mit dem NamenCSVGeneratorFunction, die eine CSV Datei generiert, die die Bestelldetails des Kunden enthält.

  • Ausführungsrolle für die CSV Generator-Lambda-Funktion. Diese Rolle gewährt der Funktion die Berechtigung, auf andere zuzugreifen AWS-Services.

  • Ein Amazon S3 S3-Eingabe-Bucket zum Speichern der generierten CSV Datei.

  • Eine Lambda-Funktion zur Erkennung verzögerter Bestellungen, die die CSV Dateidaten analysiert und verzögerte Bestellungen erkennt.

  • Ausführungsrolle für die Lambda-Funktion mit verzögerter Bestellung. Diese Rolle gewährt der Funktion die Berechtigung, auf andere zuzugreifen AWS-Services.

  • Ein Amazon S3 S3-Ausgabe-Bucket zum Speichern der Analyseergebnisse der Kundenbestellungen.

  • Eine SQS Amazon-Warteschlange, an die Step Functions Nachrichten für jede verzögerte Bestellung sendet. Diese Nachrichten enthalten die IDs der Kunden und ihrer Bestellungen.

  • Eine CloudWatch Protokollgruppe, die Informationen zum Ausführungsverlauf der Zustandsmaschine speichert.

Wichtig

Für jeden Service fallen Standardgebühren an.

Schritt 1: Erstellen Sie den Zustandsmaschine und stellen Sie Ressourcen bereit

  1. Öffnen Sie die Step Functions Functions-Konsole und wählen Sie Create State Machine.

  2. Geben Sie Distributed Map to process a CSV file in S3 etwas in das Suchfeld ein und wählen Sie dann aus den zurückgegebenen Suchergebnissen Distributed Map aus, um eine CSV Datei in S3 zu verarbeiten.

  3. Wählen Sie Next (Weiter), um fortzufahren.

  4. Wählen Sie „Demo ausführen“, um eine schreibgeschützte Version und einen ready-to-deploy Workflow zu erstellen, oder wählen Sie „Darauf aufbauen“, um eine bearbeitbare Zustandsmaschinen-Definition zu erstellen, auf der Sie aufbauen und die Sie später bereitstellen können.

    Informationen zu den Ressourcen, die für dieses Beispielprojekt erstellt werden, finden Sie unter. AWS CloudFormation Vorlage und zusätzliche Ressourcen

    Die folgende Abbildung zeigt das Workflow-Diagramm für die Distributed Map zur Verarbeitung einer CSV Datei im S3-Beispielprojekt:

    Workflow-Diagramm der Distributed Map zur Verarbeitung einer CSV Datei im S3-Beispielprojekt.
  5. Wählen Sie Vorlage verwenden, um mit Ihrer Auswahl fortzufahren.

Die nächsten Schritte hängen von Ihrer vorherigen Auswahl ab:

  1. Führen Sie eine Demo durch — Sie können den Status Machine überprüfen, bevor Sie ein schreibgeschütztes Projekt mit Ressourcen erstellen, die bereitgestellt werden von AWS CloudFormation zu Ihrem AWS-Konto.

    Sie können sich die State-Machine-Definition ansehen. Wenn Sie bereit sind, wählen Sie Deploy and run, um das Projekt bereitzustellen und die Ressourcen zu erstellen.

    Die Bereitstellung kann bis zu 10 Minuten dauern, bis Ressourcen und Berechtigungen erstellt sind. Sie können den Stack-ID-Link verwenden, um den Fortschritt zu überwachen AWS CloudFormation.

    Nach Abschluss der Bereitstellung sollte Ihre neue Zustandsmaschine in der Konsole angezeigt werden.

  2. Darauf aufbauen — Sie können die Workflow-Definition überprüfen und bearbeiten. Möglicherweise müssen Sie Werte für Platzhalter im Beispielprojekt festlegen, bevor Sie versuchen, Ihren benutzerdefinierten Workflow auszuführen.

Anmerkung

Für Dienste, die für Ihr Konto bereitgestellt werden, können Standardgebühren anfallen.

Schritt 2: Führen Sie die Zustandsmaschine aus

Nachdem alle Ressourcen bereitgestellt und bereitgestellt wurden, können Sie die Zustandsmaschine ausführen.

  1. Wählen Sie auf der Seite State Machines Ihr Beispielprojekt aus.

  2. Wählen Sie auf der Seite mit dem Beispielprojekt die Option Ausführung starten aus.

  3. Gehen Sie im Dialogfeld Ausführung starten wie folgt vor:

    1. (Optional) Geben Sie Eingabewerte im JSON Format ein, um Ihr Beispielprojekt auszuführen.

      Wenn Sie sich dafür entschieden haben, eine Demo auszuführen, müssen Sie keine Ausführungseingaben angeben.

      Anmerkung

      Wenn das von Ihnen bereitgestellte Demo-Projekt vorab aufgefüllte Eingabedaten für die Ausführung enthält, verwenden Sie diese Eingabe, um den Zustandsmaschine auszuführen.

    2. Wählen Sie Start execution (Ausführung starten) aus.

    3. (Optional) Die Step Functions Functions-Konsole leitet Sie zu einer Seite weiter, die mit Ihrer Ausführungs-ID betitelt ist. Diese Seite wird als Seite mit den Ausführungsdetails bezeichnet. Auf dieser Seite können Sie die Ausführungsergebnisse im Verlauf oder nach Abschluss der Ausführung überprüfen.

      Wählen Sie nach Abschluss der Ausführung einzelne Status in der Diagrammansicht aus und wählen Sie dann die einzelnen Registerkarten im Einzelheiten zu den Schritten Bereich, um die Details der einzelnen Status, einschließlich Eingabe, Ausgabe und Definition, anzuzeigen.

      • Einzelheiten zu den Ausführungsinformationen, die Sie auf der Seite mit den Ausführungsdetails einsehen können, finden Sie unterÜberblick über die Ausführungsdetails.

      • Weitere Informationen zur Anzeige der Ausführung eines Distributed Map-Status in der Konsole finden Sie unterMap Runs anzeigen.

    4. (Optional) Überprüfen Sie die Ausführungsergebnisse, die in den Amazon S3 S3-Bucket exportiert wurden. Zu diesen Ergebnissen gehören Daten wie die Eingabe und Ausgabe der Ausführung sowie der Ausführungsstatus. ARN Weitere Informationen finden Sie unter ResultWriter (Karte).