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.
ItemReader
DerItemReader
Feld ist ein JSON-Objekt, das einen Datensatz und seinen Speicherort angibt. EINStatus der verteilten Karteverwendet diesen Datensatz als Eingabe. Das folgende Beispiel zeigt die Syntax vonItemReader
Feld, wenn Ihr Datensatz eine CSV-Datei ist, die in einem Amazon S3 S3-Bucket gespeichert ist.
"ItemReader": {
"ReaderConfig": {
"InputType": "CSV",
"CSVHeaderLocation": "FIRST_ROW"
},
"Resource": "arn:aws:states:::s3:getObject",
"Parameters": {
"Bucket": "myBucket
",
"Key": "csvDataset/ratings.csv
"
}
}
Tipp
In Workflow Studio geben Sie den Datensatz und seinen Speicherort imQuelle des ArtikelsFeld.
Inhalt des ItemReader Feld
Abhängig von Ihrem Datensatz ist der Inhalt desItemReader
Feld variiert. Wenn es sich bei Ihrem Datensatz beispielsweise um ein JSON-Array handelt, das aus einem vorherigen Schritt im Workflow übergeben wurde,ItemReader
Feld wird weggelassen. Wenn es sich bei Ihrem Datensatz um eine Amazon S3 S3-Datenquelle handelt, enthält dieses Feld die folgenden Unterfelder.
ReaderConfig
Ein JSON-Objekt, das die folgenden Details spezifiziert:
InputType
Gibt den Typ der Amazon S3 S3-Datenquelle an, z. B. CSV-Datei, Objekt, JSON-Datei oder eine Amazon S3 S3-Inventarliste. In Workflow Studio können Sie einen Eingabetyp aus derAmazon S3 S3-ArtikelquelleDrop-down-Liste unterQuelle des ArtikelsFeld.
CSVHeaderLocation
Anmerkung
Sie müssen dieses Feld nur angeben, wenn Sie eine CSV-Datei als Datensatz verwenden.
Akzeptiert einen der folgenden Werte, um die Position der Spaltenüberschrift anzugeben:
Wichtig
Derzeit unterstützt Step Functions CSV-Header mit bis zu 10 KB.
FIRST_ROW
— Verwenden Sie diese Option, wenn die erste Zeile der Datei der Header ist.GIVEN
— Verwenden Sie diese Option, um den Header innerhalb der State-Machine-Definition anzugeben. Wenn Ihre CSV-Datei beispielsweise die folgenden Daten enthält.1,307,3.5,1256677221 1,481,3.5,1256677456 1,1091,1.5,1256677471 ...
Stellen Sie das folgende JSON-Array als CSV-Header bereit.
"ItemReader": { "ReaderConfig": { "InputType": "CSV", "CSVHeaderLocation": "GIVEN", "CSVHeaders": [
"userId"
,"movieId"
,"rating"
,"timestamp"
] } }
Tipp
In Workflow Studio finden Sie diese Option unterZusätzliche Konfigurationin derQuelle des ArtikelsFeld.
MaxItems
Beschränkt die Anzahl der übergebenen Datenelemente
Map
Bundesstaat. Nehmen wir beispielsweise an, Sie stellen eine CSV-Datei bereit, die 1000 Zeilen enthält, und geben einen Grenzwert von 100 an. Dann hat der Interpreter den Test bestandennur100 Zeilen bis zumMap
Bundesstaat. DerMap
state verarbeitet Elemente in sequentieller Reihenfolge, beginnend nach der Kopfzeile.Standardmäßig ist der
Map
state iteriert über alle Elemente im angegebenen Datensatz.Anmerkung
Derzeit können Sie einen Grenzwert von bis zu 100.000.000 angeben. DerStatus der verteilten Kartebeendet das Lesen von Elementen, die diesen Grenzwert überschreiten.
Tipp
In Workflow Studio finden Sie diese Option unterZusätzliche Konfigurationin derQuelle des ArtikelsFeld.
Sie können auch eine angebenReferenzpfadzu einem vorhandenen Schlüssel-Wert-Paar in IhremStatus der verteilten KarteEingabe. Dieser Pfad muss in eine positive Ganzzahl aufgelöst werden. Sie geben den Referenzpfad in der
MaxItemsPath
Unterfeld.Wichtig
Sie können entweder
MaxItems
oder dasMaxItemsPath
Unterfeld, aber nicht beides.
Resource
Die Amazon S3 S3-API-Aktion, die Step Functions aufrufen muss, hängt vom angegebenen Datensatz ab.
Parameters
Ein JSON-Objekt, das den Amazon S3 S3-Bucket-Namen und den Objektschlüssel angibt, in dem der Datensatz gespeichert ist.
Wichtig
Stellen Sie sicher, dass sich Ihre Amazon S3 S3-Buckets unter demselben befindenAWS-KontoundAWS-Regionals Ihre Staatsmaschine.
Beispiele für Datensätze
Sie können eine der folgenden Optionen als Datensatz angeben:
Wichtig
Step Functions benötigt die entsprechenden Berechtigungen, um auf die Amazon S3 S3-Datensätze zuzugreifen, die Sie verwenden. Informationen über IAM-Richtlinien für die Datensätze finden Sie unterIAM-Richtlinien für Datensätze.
EINStatus der verteilten Kartekann JSON-Eingaben akzeptieren, die von einem vorherigen Schritt im Workflow übergeben wurden. Diese Eingabe muss entweder ein Array sein oder ein Array innerhalb eines bestimmten Knotens enthalten. Um einen Knoten auszuwählen, der das Array enthält, können Sie denItemsPath
Feld.
Um einzelne Elemente im Array zu verarbeiten,Status der verteilten Kartestartet eine untergeordnete Workflow-Ausführung für jedes Array-Element. Die folgenden Registerkarten zeigen Beispiele für die Eingabe, die an die übergeben wurdeMap
Status und die entsprechende Eingabe für die Ausführung eines untergeordneten Workflows.
Anmerkung
Step Functions lässt das ausItemReader
Feld, wenn es sich bei Ihrem Datensatz um ein JSON-Array aus einem vorherigen Schritt handelt.
EINStatus der verteilten Kartekann über die Objekte iterieren, die in einem Amazon S3 S3-Bucket gespeichert sind. Wenn die Workflow-Ausführung denMap
state, Step Functions ruft dieListObjectsV2API-Aktion, die ein Array der Amazon S3 S3-Objektmetadaten zurückgibt. In diesem Array enthält jedes Element Daten, wieETagundSchlüssel, für die im Bucket gespeicherten Daten.
Um einzelne Elemente im Array zu verarbeiten,Status der verteilten Kartestartet die Ausführung eines untergeordneten Workflows. Nehmen Sie beispielsweise an, dass Ihr Amazon S3 S3-Bucket 100 Bilder enthält. Dann kehrte das Array nach dem Aufrufen von zurückListObjectsV2
Die API-Aktion enthält 100 Elemente. DieStatus der verteilten Kartestartet dann 100 untergeordnete Workflow-Ausführungen, um jedes Array-Element zu verarbeiten.
Anmerkung
Derzeit enthält Step Functions auch einen Eintrag für jeden Ordner, den Sie in einem bestimmten Amazon S3 S3-Bucket mithilfe der Amazon S3 S3-Konsole erstellen. Dies führt zu einer zusätzlichen untergeordneten Workflow-Ausführung, die vonStatus der verteilten Karte. Um zu vermeiden, dass für den Ordner eine zusätzliche untergeordnete Workflow-Ausführung erforderlich ist, empfehlen wir die Verwendung desAWS CLIum Ordner zu erstellen. Weitere Informationen finden Sie unterAmazon S3 S3-Befehle auf hoher Ebenein derAWS Command Line InterfaceBenutzerleitfaden.
Step Functions benötigt die entsprechenden Berechtigungen, um auf die Amazon S3 S3-Datensätze zuzugreifen, die Sie verwenden. Informationen über IAM-Richtlinien für die Datensätze finden Sie unterIAM-Richtlinien für Datensätze.
Die folgenden Tabs zeigen Beispiele fürItemReader
Feldsyntax und die Eingabe, die an die Ausführung eines untergeordneten Workflows für diesen Datensatz übergeben wurde.
EINStatus der verteilten Kartekann eine JSON-Datei, die in einem Amazon S3 S3-Bucket gespeichert ist, als Datensatz akzeptieren. Die JSON-Datei muss ein Array enthalten.
Wenn die Workflow-Ausführung denMap
state, Step Functions ruft dieGetObjectAPI-Aktion zum Abrufen der angegebenen JSON-Datei. DieMap
Der Status iteriert dann über jedes Element im Array und startet für jedes Element eine untergeordnete Workflow-Ausführung. Wenn Ihre JSON-Datei beispielsweise 1000 Array-Elemente enthält,Map
state startet 1000 untergeordnete Workflow-Ausführungen.
Anmerkung
Die Ausführungseingabe, die verwendet wird, um die Ausführung eines untergeordneten Workflows zu starten, darf 256 KB nicht überschreiten. Step Functions unterstützt jedoch das Lesen eines Elements mit einer Größe von bis zu 8 MB aus einer CSV- oder JSON-Datei, wenn Sie dann das optionale
ItemSelector
Feld, um die Größe des Elements zu reduzieren.Derzeit unterstützt Step Functions 10 GB als maximale Größe einer einzelnen Datei in einem Amazon S3 S3-Inventarbericht. Step Functions kann jedoch mehr als 10 GB verarbeiten, wenn jede einzelne Datei weniger als 10 GB groß ist.
Step Functions benötigt die entsprechenden Berechtigungen, um auf die Amazon S3 S3-Datensätze zuzugreifen, die Sie verwenden. Informationen über IAM-Richtlinien für die Datensätze finden Sie unterIAM-Richtlinien für Datensätze.
Die folgenden Tabs zeigen Beispiele fürItemReader
Feldsyntax und die Eingabe, die an die Ausführung eines untergeordneten Workflows für diesen Datensatz übergeben wurde.
Stellen Sie sich für dieses Beispiel vor, Sie haben eine JSON-Datei mit dem Namen
. Sie haben diese Datei in einem Präfix mit dem Namen gespeichertfactcheck.json
in einem Amazon S3 S3-Bucket. Das Folgende ist ein Beispiel für den JSON-Datensatz.jsonDataset
[
{
"verdict": "true",
"statement_date": "6/11/2008",
"statement_source": "speech"
},
{
"verdict": "false",
"statement_date": "6/7/2022",
"statement_source": "television"
},
{
"verdict": "mostly-true",
"statement_date": "5/18/2016",
"statement_source": "news"
},
...
]
EINStatus der verteilten Kartekann eine CSV-Datei, die in einem Amazon S3 S3-Bucket gespeichert ist, als Datensatz akzeptieren. Wenn Sie eine CSV-Datei als Datensatz verwenden, müssen Sie eine CSV-Spaltenüberschrift angeben. Informationen zum Angeben eines CSV-Headers finden Sie unterInhalt des ItemReader Feld.
Da es kein standardisiertes Format zum Erstellen und Verwalten von Daten in CSV-Dateien gibt, analysiert Step Functions CSV-Dateien auf der Grundlage der folgenden Regeln:
-
Kommas (,) sind ein Trennzeichen, das einzelne Felder voneinander trennt.
-
Zeilenumbrüche sind ein Trennzeichen, das einzelne Datensätze voneinander trennt.
-
Felder werden als Zeichenketten behandelt. Verwenden Sie für Datentypkonvertierungen den
States.StringToJson
intrinsische Funktion inItemSelector. -
Um Zeichenketten einzuschließen, sind keine doppelten Anführungszeichen (“ „) erforderlich. Zeichenketten, die in doppelte Anführungszeichen eingeschlossen sind, können jedoch Kommas und Zeilenumbrüche enthalten, ohne dass sie als Trennzeichen dienen.
-
Vermeiden Sie doppelte Anführungszeichen, indem Sie sie wiederholen.
-
Wenn die Anzahl der Felder in einer Zeile geringer ist als die Anzahl der Felder in der Kopfzeile, stellt Step Functions leere Zeichenketten für die fehlenden Werte bereit.
-
Wenn die Anzahl der Felder in einer Zeile größer ist als die Anzahl der Felder in der Kopfzeile, überspringt Step Functions die zusätzlichen Felder.
Weitere Informationen darüber, wie Step Functions eine CSV-Datei analysiert, finden Sie unterExample of parsing an input CSV file.
Wenn die Workflow-Ausführung denMap
state, Step Functions ruft dieGetObjectAPI-Aktion zum Abrufen der angegebenen CSV-Datei. DieMap
Der Status iteriert dann über jede Zeile in der CSV-Datei und startet eine untergeordnete Workflow-Ausführung, um die Elemente in jeder Zeile zu verarbeiten. Angenommen, Sie stellen eine CSV-Datei bereit, die 100 Zeilen als Eingabe enthält. Dann übergibt der Interpreter jede Zeile anMap
Bundesstaat. DerMap
state verarbeitet Elemente in serieller Reihenfolge, beginnend nach der Kopfzeile.
Anmerkung
Die Ausführungseingabe, die verwendet wird, um die Ausführung eines untergeordneten Workflows zu starten, darf 256 KB nicht überschreiten. Step Functions unterstützt jedoch das Lesen eines Elements mit einer Größe von bis zu 8 MB aus einer CSV- oder JSON-Datei, wenn Sie dann das optionale
ItemSelector
Feld, um die Größe des Elements zu reduzieren.Derzeit unterstützt Step Functions 10 GB als maximale Größe einer einzelnen Datei in einem Amazon S3 S3-Inventarbericht. Step Functions kann jedoch mehr als 10 GB verarbeiten, wenn jede einzelne Datei weniger als 10 GB groß ist.
Step Functions benötigt die entsprechenden Berechtigungen, um auf die Amazon S3 S3-Datensätze zuzugreifen, die Sie verwenden. Informationen über IAM-Richtlinien für die Datensätze finden Sie unterIAM-Richtlinien für Datensätze.
Die folgenden Tabs zeigen Beispiele fürItemReader
Feldsyntax und die Eingabe, die an die Ausführung eines untergeordneten Workflows für diesen Datensatz übergeben wurde.
EINStatus der verteilten Kartekann eine Amazon S3 S3-Inventarmanifestdatei, die in einem Amazon S3 S3-Bucket gespeichert ist, als Datensatz akzeptieren.
Wenn die Workflow-Ausführung denMap
state, Step Functions ruft dieGetObjectAPI-Aktion zum Abrufen der angegebenen Amazon S3 S3-Inventarmanifestdatei. DieMap
state iteriert dann über die Objekte im Inventar, um ein Array von Amazon S3 S3-Inventarobjekt-Metadaten zurückzugeben.
Anmerkung
Derzeit unterstützt Step Functions 10 GB als maximale Größe einer einzelnen Datei in einem Amazon S3 S3-Inventarbericht. Step Functions kann jedoch mehr als 10 GB verarbeiten, wenn jede einzelne Datei weniger als 10 GB groß ist.
Step Functions benötigt die entsprechenden Berechtigungen, um auf die Amazon S3 S3-Datensätze zuzugreifen, die Sie verwenden. Informationen über IAM-Richtlinien für die Datensätze finden Sie unterIAM-Richtlinien für Datensätze.
Das Folgende ist ein Beispiel für eine Inventardatei im CSV-Format. Diese Datei enthält die benannten ObjektecsvDataset
undimageDataset
, die in einem Amazon S3 S3-Bucket mit dem Namen gespeichert sindsourceBucket
.
"sourceBucket","csvDataset/","0","2022-11-16T00:27:19.000Z"
"sourceBucket","csvDataset/titles.csv","3399671","2022-11-16T00:29:32.000Z"
"sourceBucket","imageDataset/","0","2022-11-15T20:00:44.000Z"
"sourceBucket","imageDataset/n02085620_10074.jpg","27034","2022-11-15T20:02:16.000Z"
...
Wichtig
Derzeit unterstützt Step Functions keinen benutzerdefinierten Amazon S3 S3-Inventarbericht als Datensatz. Sie müssen auch sicherstellen, dass das Ausgabeformat Ihres Amazon S3 S3-Inventarberichts CSV ist. Weitere Informationen zu Amazon S3 S3-Inventaren und deren Einrichtung finden Sie unterAmazon S3 Inventoryin derAmazon-S3-Benutzerhandbuch.
Das folgende Beispiel für eine Inventar-Manifestdatei zeigt die CSV-Header für die Metadaten des Inventarobjekts.
{
"sourceBucket" : "sourceBucket
",
"destinationBucket" : "arn:aws:s3:::inventory
",
"version" : "2016-11-30",
"creationTimestamp" : "1668560400000",
"fileFormat" : "CSV",
"fileSchema" : "Bucket, Key, Size, LastModifiedDate",
"files" : [ {
"key" : "source-bucket
/destination-prefix
/data/20e55de8-9c21-45d4-99b9-46c732000228.csv.gz
",
"size" : 7300,
"MD5checksum" : "a7ff4a1d4164c3cd55851055ec8f6b20"
} ]
}
Die folgenden Registerkarten zeigen Beispiele fürItemReader
Feldsyntax und die Eingabe, die an die Ausführung eines untergeordneten Workflows für diesen Datensatz übergeben wurde.
IAM-Richtlinien für Datensätze
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 State-Machine-Rolle folgende Funktionen aufrufen kannStartExecution
API-Aktion fürStatus der verteilten Karte. Diese Richtlinien beinhalten auch die geringsten Rechte, die für den Zugriff auf Step Functions erforderlich sind.AWSRessourcen, wie Amazon S3-Bucket und -Objekte sowie Lambda-Funktionen. Wir empfehlen dringend, dass Sie nur die Berechtigungen in Ihre IAM-Richtlinien aufnehmen, die erforderlich sind. Zum Beispiel, wenn Ihr Workflow Folgendes beinhaltetMap
Geben Sie im Modus Verteilt an, 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 angebenReferenzpfadzu einem vorhandenen Schlüssel-Wert-Paar in IhremStatus der verteilten KarteEingabe, stellen Sie die IAM-Richtlinie für Ihren Workflow sicher. Beschränken Sie die Richtlinien auf die Bucket- und Objektnamen, zu denen der Pfad zur Laufzeit aufgelöst wird.
Die folgenden Beispiele für IAM-Richtlinien gewähren die geringsten Rechte, die für den Zugriff auf Ihre Amazon S3 S3-Datensätze erforderlich sind, indem SieListObjectsV2undGetObjectAPI-Aktionen.
Beispiel IAM-Richtlinie für Amazon S3 S3-Objekt als Datensatz
Das folgende Beispiel zeigt eine IAM-Richtlinie, die die geringsten Rechte für den Zugriff auf die darin organisierten Objekte gewährt
in einem Amazon S3 S3-Bucket mit dem NamenprocessImages
.myBucket
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
myBucket
" ], "Condition": { "StringLike": { "s3:prefix": [ "processImages
" ] } } } ] }
Beispiel IAM-Richtlinie für eine CSV-Datei als Datensatz
Das folgende Beispiel zeigt eine IAM-Richtlinie, die die geringsten Rechte für den Zugriff auf eine CSV-Datei gewährt
.ratings.csv
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
myBucket
/csvDataset
/ratings.csv
" ] } ] }
Beispiel IAM-Richtlinie für ein Amazon S3 S3-Inventar als Datensatz
Das folgende Beispiel zeigt eine IAM-Richtlinie, die die geringsten Rechte für den Zugriff auf einen Amazon S3 S3-Inventarbericht gewährt.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
destination-prefix
/source-bucket
/config-ID
/YYYY-MM-DDTHH-MMZ
/manifest.json", "arn:aws:s3:::destination-prefix
/source-bucket
/config-ID
/data/*" ] } ] }