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)

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 befindet AWS-Konto and AWS-Region als Ihre Zustandsmaschine. 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 KB ü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 Beispiel zeigt die Syntax des ResultWriter Felds, wenn Sie die Ausführungsergebnisse des untergeordneten Workflows exportieren. 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" } } }
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 KB überschreitet, schlägt die Ausführung der Zustandsmaschine fehl und es wird ein States.DataLimitExceeded Fehler zurückgegeben.

[ { "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 geringsten Rechte, die für den Zugriff auf Step Functions erforderlich sind. AWS Ressourcen wie Amazon S3 S3-Buckets und -Objekte sowie Lambda-Funktionen. Wir empfehlen dringend, dass Sie nur die erforderlichen Berechtigungen in Ihre IAM Richtlinien aufnehmen. 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 in einen Ordner mit dem Namen zu schreiben csvJobs in einem Amazon S3 S3-Bucket mit der PutObject API Aktion.

{ "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 das Notwendige angeben AWS KMS Berechtigungen in Ihrer IAM Richtlinie. Weitere Informationen finden Sie unter IAMBerechtigungen für AWS KMS key verschlüsselter Amazon S3 S3-Bucket.