ResultWriter (Karte) - 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.

ResultWriter (Karte)

Status verwalten und Daten transformieren

Step Functions hat kürzlich Variablen hinzugefügt und JSONata dient der Verwaltung von Zustands- und Transformationsdaten.

Erfahren Sie mehr über das Übergeben von Daten mit Variablen und das Transformieren von Daten mit JSONata.

Das ResultWriter Feld ist ein JSON Objekt, das den Amazon S3 S3-Speicherort angibt, an den Step Functions die Ergebnisse der untergeordneten Workflow-Ausführungen schreibt, die durch einen Distributed Map-Status gestartet wurden. Standardmäßig exportiert Step Functions diese Ergebnisse nicht.

Wichtig

Stellen Sie sicher, dass sich der Amazon S3 S3-Bucket, den Sie zum Exportieren der Ergebnisse eines Map Runs verwenden, unter demselben AWS-Konto und AWS-Region wie Ihr Zustandsmaschine befindet. Andernfalls schlägt die Ausführung Ihrer Zustandsmaschine mit dem States.ResultWriterFailed Fehler fehl.

Das Exportieren der Ergebnisse in einen Amazon S3 S3-Bucket ist hilfreich, wenn Ihre Ausgabe-Payload-Größe 256 KiB überschreitet. Step Functions konsolidiert alle Ausführungsdaten des untergeordneten Workflows, wie z. B. die Eingabe und Ausgabe der Ausführung sowie den Ausführungsstatus. ARN Anschließend werden Ausführungen mit demselben Status in die entsprechenden Dateien am angegebenen Amazon S3 S3-Speicherort exportiert.

Das folgende Anwendungsbeispiel zeigt die Syntax des ResultWriter Felds mit JSONPathParameters, in das die Ausführungsergebnisse des untergeordneten Workflows exportiert werden sollen. In diesem Beispiel speichern Sie die Ergebnisse in einem Bucket, der mit einem Präfix namens benannt amzn-s3-demo-destination-bucket istcsvProcessJobs.

{ "ResultWriter": { "Resource": "arn:aws:states:::s3:putObject", "Parameters": { "Bucket": "amzn-s3-demo-destination-bucket", "Prefix": "csvProcessJobs" } } }

ParametersWird für JSONataBundesstaaten durch ersetztArguments.

{ "ResultWriter": { "Resource": "arn:aws:states:::s3:putObject", "Arguments": { "Bucket": "amzn-s3-demo-destination-bucket", "Prefix": "csvProcessJobs" } } }
Tipp

In Workflow Studio können Sie die Ergebnisse der untergeordneten Workflow-Ausführung exportieren, indem Sie Map-Status-Ergebnisse nach Amazon S3 exportieren auswählen. Geben Sie dann den Namen des Amazon S3 S3-Buckets und das Präfix an, in das Sie die Ergebnisse exportieren möchten.

Step Functions benötigt die entsprechenden Berechtigungen, um auf den Bucket und den Ordner zuzugreifen, in den Sie die Ergebnisse exportieren möchten. Informationen zur erforderlichen IAM Richtlinie finden Sie unterIAMRichtlinien für ResultWriter.

Wenn Sie die Ergebnisse der untergeordneten Workflow-Ausführung exportieren, gibt die Ausführung des Status Distributed Map den Map Run ARN und Daten über den Amazon S3 S3-Exportspeicherort im folgenden Format zurück:

{ "MapRunArn": "arn:aws:states:us-east-2:123456789012:mapRun:csvProcess/Map:ad9b5f27-090b-3ac6-9beb-243cd77144a7", "ResultWriterDetails": { "Bucket": "amzn-s3-demo-destination-bucket", "Key": "csvProcessJobs/ad9b5f27-090b-3ac6-9beb-243cd77144a7/manifest.json" } }

Step Functions exportiert Ausführungen mit demselben Status in ihre jeweiligen Dateien. Wenn Ihre untergeordneten Workflow-Ausführungen beispielsweise zu 500 Erfolgs- und 200 Fehlschlagsergebnissen geführt haben, erstellt Step Functions am angegebenen Amazon S3 S3-Speicherort zwei Dateien für die Erfolgs- und Fehlschlagsergebnisse. In diesem Beispiel enthält die Datei mit den Erfolgsergebnissen die 500 Erfolgsergebnisse, während die Datei mit den Fehlschlagsergebnissen die 200 Fehlerergebnisse enthält.

Für einen bestimmten Ausführungsversuch erstellt Step Functions je nach Ihrer Ausführungsausgabe die folgenden Dateien am angegebenen Amazon S3 S3-Speicherort:

  • manifest.json— Enthält Map Run-Metadaten wie den Exportort, Map Run ARN und Informationen zu den Ergebnisdateien.

    Wenn du redrivenEin Map Run, die manifest.json Datei, enthält Verweise auf alle erfolgreichen untergeordneten Workflow-Ausführungen aller Versuche eines Map Run. Diese Datei enthält jedoch Verweise auf die fehlgeschlagenen und ausstehenden Ausführungen für einen bestimmten redrive.

  • SUCCEEDED_n.json— Enthält die konsolidierten Daten für alle erfolgreichen untergeordneten Workflow-Ausführungen. n steht für die Indexnummer der Datei. Die Indexnummer beginnt bei 0. Beispiel, SUCCEEDED_1.json.

  • FAILED_n.json— Enthält die konsolidierten Daten für alle fehlgeschlagenen, zeitüberschreitenden und abgebrochenen untergeordneten Workflow-Ausführungen. Verwenden Sie diese Datei, um nach fehlgeschlagenen Ausführungen Daten wiederherzustellen. n steht für den Index der Datei. Die Indexnummer beginnt bei 0. Beispiel, FAILED_1.json.

  • PENDING_n.json— Enthält die konsolidierten Daten für alle untergeordneten Workflow-Ausführungen, die nicht gestartet wurden, weil der Map Run fehlgeschlagen oder abgebrochen wurde. n steht für den Index der Datei. Die Indexnummer beginnt bei 0. Beispiel, PENDING_1.json.

Step Functions unterstützt einzelne Ergebnisdateien mit bis zu 5 GB. Wenn eine Dateigröße 5 GB überschreitet, erstellt Step Functions eine weitere Datei, um die verbleibenden Ausführungsergebnisse zu schreiben, und hängt eine Indexnummer an den Dateinamen an. Wenn die Größe der Succeeded_0.json Datei beispielsweise 5 GB überschreitet, erstellt Step Functions eine Succeeded_1.json Datei, um die verbleibenden Ergebnisse aufzuzeichnen.

Wenn Sie nicht angegeben haben, dass die Ergebnisse der untergeordneten Workflow-Ausführung exportiert werden sollen, gibt die State-Machine-Ausführung eine Reihe von Ergebnissen der untergeordneten Workflow-Ausführung zurück, wie im folgenden Beispiel gezeigt:

Anmerkung

Wenn die zurückgegebene Ausgabegröße 256 KiB überschreitet, schlägt die Ausführung der Zustandsmaschine fehl und gibt einen States.DataLimitExceeded Fehler zurück.

[ { "statusCode": 200, "inputReceived": { "show_id": "s1", "release_year": "2020", "rating": "PG-13", "type": "Movie" } }, { "statusCode": 200, "inputReceived": { "show_id": "s2", "release_year": "2021", "rating": "TV-MA", "type": "TV Show" } }, ... ]

IAMRichtlinien für ResultWriter

Wenn Sie Workflows mit der Step Functions-Konsole erstellen, kann Step Functions automatisch IAM Richtlinien auf der Grundlage der Ressourcen in Ihrer Workflow-Definition generieren. Diese Richtlinien beinhalten die geringsten Rechte, die erforderlich sind, damit die Zustandsmaschinen-Rolle die StartExecution API Aktion für den Status Distributed Map aufrufen kann. Diese Richtlinien beinhalten auch die Step Functions mit den geringsten Rechten, die für den Zugriff auf AWS Ressourcen wie Amazon S3 S3-Buckets und -Objekte sowie Lambda-Funktionen erforderlich sind. Wir empfehlen dringend, dass Sie nur die Berechtigungen in Ihre IAM Richtlinien aufnehmen, die erforderlich sind. Wenn Ihr Workflow beispielsweise einen Map Status im Modus „Verteilt“ umfasst, beschränken Sie Ihre Richtlinien auf den spezifischen Amazon S3 S3-Bucket und -Ordner, der Ihren Datensatz enthält.

Wichtig

Wenn Sie einen Amazon S3 S3-Bucket und ein Objekt oder ein Präfix mit einem Referenzpfad zu einem vorhandenen Schlüssel-Wert-Paar in Ihrer Distributed Map-Statuseingabe angeben, stellen Sie sicher, dass Sie die IAM Richtlinien für Ihren Workflow aktualisieren. Beschränken Sie die Richtlinien auf die Bucket- und Objektnamen, zu denen der Pfad zur Laufzeit aufgelöst wird.

Das folgende IAM Richtlinienbeispiel gewährt die geringsten Rechte, die erforderlich sind, um die Ergebnisse der Workflow-Ausführung Ihres untergeordneten Workflows mithilfe der PutObject API Aktion in einen Ordner zu schreiben, der csvJobs in einem Amazon S3 S3-Bucket benannt ist.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/csvJobs/*" ] } ] }

Wenn der Amazon S3 S3-Bucket, in den Sie das Ergebnis der untergeordneten Workflow-Ausführung schreiben, verschlüsselt ist mit einem AWS Key Management Service (AWS KMS) Schlüssel, Sie müssen die erforderlichen AWS KMS Berechtigungen in Ihre IAM Richtlinie aufnehmen. Weitere Informationen finden Sie unter IAMBerechtigungen für AWS KMS key verschlüsselter Amazon S3 S3-Bucket.