Verarbeiten von Daten in einem Amazon S3-Bucket mit verteilter Zuordnung - 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.

Verarbeiten von Daten in einem Amazon S3-Bucket mit verteilter Zuordnung

Dieses Beispielprojekt zeigt, wie Sie den Status Verteilte Karte verwenden können, um große Daten zu verarbeiten, z. B. historische Wetterdaten zu analysieren und die Wetterzone zu identifizieren, bei der die durchschnittliche Temperatur jeden Monat am Arzt am höchsten ist. Die Wetterdaten werden in über 12.000 CSV-Dateien aufgezeichnet, die wiederum in einem Amazon S3-Bucket gespeichert werden.

Dieses Beispielprojekt enthält zwei Distributed Map-Status mit dem Namen Distributed S3 copy NOA Data und ProcessNOAAData . Verteilte S3-Kopier-NOA-Daten iterieren über die CSV-Dateien in einem öffentlichen Amazon S3-Bucket mit dem Namen noaa-gsod-pds und kopieren sie in einen Amazon S3-Bucket in Ihrem AWS-Konto. ProcessNOAAData iteriert über die kopierten Dateien und enthält eine Lambda-Funktion, die die Temperaturanalyse durchführt.

Das Beispielprojekt überprüft zunächst den Inhalt des Amazon S3-Buckets mit einem Aufruf der -ListObjectsV2-API-Aktion. Basierend auf der Anzahl der Schlüssel, die als Reaktion auf diesen Aufruf zurückgegeben wurden, trifft das Beispielprojekt eine der folgenden Entscheidungen:

  • Wenn die Schlüsselanzahl größer oder gleich 1 ist, wechselt das Projekt in den Status ProcessNOAAData. Dieser Status der verteilten Karte enthält eine Lambda Funktion namens TemperatureFunction, die die Wetterstation findet, die jeden Monat die höchste durchschnittliche Temperatur hatte. Diese Funktion gibt ein Wörterbuch mit year-month als Schlüssel und ein Wörterbuch zurück, das Informationen über die Wetterstation als Wert enthält.

  • Wenn die zurückgegebene Schlüsselanzahl 1 nicht überschreitet, listet der Status Verteilte S3-Kopie NOA-Daten alle Objekte aus dem öffentlichen Bucket auf noaa-gsod-pds und kopiert die einzelnen Objekte iterativ in Batches von 100 in einen anderen Bucket in Ihrem Konto. Eine Inline-Zuweisung führt das iterative Kopieren der Objekte durch.

    Nachdem alle Objekte kopiert wurden, wechselt das Projekt zur Verarbeitung der Wetterdaten in den Status ProcessNOAAData.

Das Beispielprojekt wechselt schließlich zu einer Reducer-LambdaFunktion, die eine endgültige Aggregation der von der TemperatureFunction Funktion zurückgegebenen Ergebnisse durchführt und die Ergebnisse in eine -Amazon DynamoDBTabelle schreibt.

Mit Distributed Map können Sie bis zu 10.000 parallele untergeordnete Workflow-Ausführungen gleichzeitig ausführen. In diesem Beispielprojekt ist die maximale Parallelität von ProcessNOAAData Distributed Map auf 3 000 festgelegt, was sie auf 3 000 parallele untergeordnete Workflow-Ausführungen beschränkt.

Dieses Beispielprojekt erstellt den Zustandsautomaten und die unterstützenden AWS Ressourcen und konfiguriert die zugehörigen IAM-Berechtigungen. Erkunden Sie dieses Beispielprojekt, um mehr über die Verwendung der verteilten Karte zur Orchestrierung großer, paralleler Workloads zu erfahren, oder verwenden Sie sie als Ausgangspunkt für Ihre eigenen Projekte.

Wichtig

Dieses Beispielprojekt ist nur in der Region USA Ost (Nord-Virginia) verfügbar.

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:

  • Ein Step-Functions-Zustandsautomat.

  • Ausführungsrolle für den Zustandsautomaten. Diese Rolle gewährt die Berechtigungen, die Ihr Zustandsautomat für den Zugriff auf andere AWS-Services und Ressourcen benötigt, wie z. B. die Invoke-Aktion der Lambda-Funktion.

  • Ein Amazon S3-Bucket mit dem Namen NOAADataBucket. Dieser Bucket enthält die CSV-Dateien mit Wetterdaten.

  • Eine Lambda-Funktion namens ReducerFunction, die eine endgültige Aggregation der Wetterdaten durchführt und die Ergebnisse in eine Amazon-DynamoDB-Tabelle schreibt.

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

  • Ein Amazon S3-Ausgabe-Bucket mit dem Namen ResultsBucket , um die Wetteranalyseergebnisse zu speichern.

  • Eine DynamoDB-Tabelle mit dem Namen ResultsDynamoDBTable, die die vom zurückgegebenen Ergebnisse enthältReducerFunction.

  • Eine Lambda-Funktion mit dem Namen TemperatureFunction, die die höchste monatliche durchschnittliche Temperatur findet.

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

  • Eine CloudWatch Protokollgruppe, die Informationen über den Ausführungsverlauf des Zustandsautomaten speichert.

Wichtig

Für jeden Service fallen Standardgebühren an.

Schritt 1: Erstellen des Zustandsautomaten und Bereitstellen von Ressourcen

  1. Öffnen Sie die Step-Functions-Konsole und wählen Sie Zustandsautomaten erstellen aus.

  2. Geben Sie Distributed Map to process files in S3 in das Suchfeld ein und wählen Sie dann Distributed Map aus, um Dateien in S3 aus den zurückgegebenen Suchergebnissen zu verarbeiten.

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

  4. Step Functions listet die im ausgewählten Beispielprojekt AWS-Services verwendeten auf. Es zeigt auch ein Workflow-Diagramm für das Beispielprojekt. Stellen Sie dieses Projekt in Ihrem bereit AWS-Konto oder verwenden Sie es als Ausgangspunkt für die Erstellung Ihrer eigenen Projekte. Wählen Sie je nachdem, wie Sie fortfahren möchten, Demo ausführen oder darauf aufbauen aus.

    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 verteilte Karte zur Verarbeitung von Dateien im S3-Beispielprojekt:

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

  6. Führen Sie eine der folgenden Aktionen aus:

    • Wenn Sie darauf aufbauen ausgewählt haben, erstellt Step Functions den Workflow-Prototyp für das ausgewählte Beispielprojekt. Step Functions stellt die in der Workflow-Definition aufgeführten Ressourcen nicht bereit.

      Ziehen Sie in Workflow Studio den Status aus dem Entwurfsmodus, Bundesstaaten-Browser um mit der Erstellung Ihres Workflow-Projekts fortzufahren. Oder wechseln Sie zu Codemodus, das einen integrierten Code-Editor ähnlich wie VS Code zum Aktualisieren der Amazon States Language (ASL)-Definition Ihres Zustandsautomaten in der Step Functions-Konsole bietet. Weitere Informationen zur Verwendung von Workflow Studio zum Erstellen Ihrer Zustandsautomaten finden Sie unter Verwenden von Workflow Studio.

      Wichtig

      Denken Sie daran, den Amazon-Ressourcennamen (ARN) des Platzhalters für die im Beispielprojekt verwendeten Ressourcen zu aktualisieren, bevor Sie Ihren Workflow ausführen.

    • Wenn Sie Demo ausführen ausgewählt haben, erstellt Step Functions ein schreibgeschütztes Beispielprojekt, das eine - AWS CloudFormation Vorlage verwendet, um die in dieser Vorlage aufgeführten AWS Ressourcen in Ihrem bereitzustellen AWS-Konto.

      Tipp

      Um die Definition des Zustandsautomaten des Beispielprojekts anzuzeigen, wählen Sie Code .

      Wenn Sie bereit sind, wählen Sie Bereitstellen und Ausführen aus, um das Beispielprojekt bereitzustellen und die Ressourcen zu erstellen.

      Es kann bis zu 10 Minuten dauern, bis diese Ressourcen und zugehörige IAM-Berechtigungen erstellt werden. Während Ihre Ressourcen bereitgestellt werden, können Sie den Link CloudFormation Stack-ID öffnen, um zu sehen, welche Ressourcen bereitgestellt werden.

      Nachdem alle Ressourcen im Beispielprojekt erstellt wurden, wird das neue Beispielprojekt auf der Seite Zustandsautomaten aufgeführt.

      Wichtig

      Für jeden in der CloudFormation Vorlage verwendeten Service können Standardgebühren anfallen.

Schritt 2: Ausführen des Zustandsautomaten

Nachdem alle Ressourcen bereitgestellt und bereitgestellt wurden, können Sie den Zustandsautomaten ausführen.

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

  2. Wählen Sie auf der Beispielprojektseite 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 eine Demo ausführen ausgewählt haben, müssen Sie keine Ausführungseingabe angeben.

      Anmerkung

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

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

    3. (Optional) Die Step-Functions-Konsole leitet Sie zu einer Seite mit dem Titel mit Ihrer Ausführungs-ID weiter. Diese Seite wird als Ausführungsdetails-Seite bezeichnet. Auf dieser Seite können Sie die Ausführungsergebnisse überprüfen, während die Ausführung fortschreitet oder nachdem sie abgeschlossen sind.

      Nachdem die Ausführung abgeschlossen ist, wählen Sie in der Diagrammansicht einzelne Status und dann die einzelnen Registerkarten im Schrittdetails Bereich aus, um die Details jedes Status anzuzeigen, einschließlich Eingabe, Ausgabe und Definition.

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