

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 (Karte)
<a name="input-output-itemreader"></a>

Das `ItemReader` Feld ist ein JSON-Objekt, das einen Datensatz und seinen Speicherort angibt. Ein *Distributed-Map-Status* verwendet diesen Datensatz als Eingabe. 

Das folgende Beispiel zeigt die Syntax des `ItemReader` Felds in einem **JSONPathbasierten** Workflow für einen Datensatz in einer durch Text getrennten Datei, die in einem Amazon S3 S3-Bucket gespeichert ist.

```
"ItemReader": {
    "ReaderConfig": {
        "InputType": "CSV",
        "CSVHeaderLocation": "FIRST_ROW"
    },
    "Resource": "arn:aws:states:::s3:getObject",
    "Parameters": {
        "Bucket": "amzn-s3-demo-bucket",
        "Key": "csvDataset/ratings.csv",
        "VersionId": "BcK42coT2jE1234VHLUvBV1yLNod2OEt"
    }
}
```

**Beachten Sie, dass dies im folgenden **JSONatabasierten** Workflow durch `Parameters` Argumente ersetzt wird.**

```
"ItemReader": {
    "ReaderConfig": {
        "InputType": "CSV",
        "CSVHeaderLocation": "FIRST_ROW"
    },
    "Resource": "arn:aws:states:::s3:getObject",
    "Arguments": {
        "Bucket": "amzn-s3-demo-bucket",
        "Key": "csvDataset/ratings.csv"
        "VersionId": "BcK42coT2jE1234VHLUvBV1yLNod2OEt"
    }
}
```

## Inhalt des ItemReader Felds
<a name="itemreader-field-contents"></a>

Je nach Datensatz variiert der Inhalt des `ItemReader` Felds. Wenn es sich bei Ihrem Datensatz beispielsweise um ein JSON-Array handelt, das aus einem vorherigen Schritt im Workflow übergeben wurde, wird das `ItemReader` Feld weggelassen. Wenn es sich bei Ihrem Datensatz um eine Amazon S3 S3-Datenquelle handelt, enthält dieses Feld die folgenden Unterfelder.

**`Resource`**  
Die Amazon S3 S3-API-Integrationsaktion, die Step Functions verwenden wird, z. B. `arn:aws:states:::s3:getObject`

**`Arguments (JSONata) or Parameters (JSONPath)`**  
Ein JSON-Objekt, das den Amazon S3 S3-Bucket-Namen und den Objektschlüssel angibt, in dem der Datensatz gespeichert ist.   
Wenn für den Bucket die Versionierung aktiviert ist, können Sie auch die Amazon S3 S3-Objektversion angeben.

**`ReaderConfig`**  
Ein JSON-Objekt, das die folgenden Details spezifiziert:  
+ `InputType`

  Akzeptiert einen der folgenden Werte:`CSV`,`JSON`,`JSONL`,`PARQUET`,`MANIFEST`.

  Gibt den Typ der Amazon S3 S3-Datenquelle an, z. B. eine durch Text getrennte Datei (`CSV`), ein Objekt, eine JSON-Datei, JSON-Zeilen, eine Parquet-Datei, ein Athena-Manifest oder eine Amazon S3 S3-Inventarliste. In Workflow Studio können Sie einen Eingabetyp aus der **S3-Elementquelle** auswählen.

  Die meisten Eingabetypen, die den `S3GetObject` Abruf verwenden, unterstützen `ExpectedBucketOwner` auch `VersionId` AD-Felder in ihren Parametern. Parquet-Dateien sind die einzige Ausnahme, die nicht unterstützt `VersionId` wird.

  Eingabedateien unterstützen die folgenden externen Komprimierungstypen: GZIP, ZSTD. 

  Beispieldateinamen: `myObject.jsonl.gz` und. `myObject.csv.zstd` 

  Hinweis: Parquet-Dateien sind binäre Dateien, die intern komprimiert werden. GZIP-, ZSTD- und Snappy-Komprimierung werden unterstützt.
+ `Transformation`

  *Optional*. Der Wert wird entweder oder oder sein. `NONE` `LOAD_AND_FLATTEN` 

  Falls nicht angegeben, `NONE` wird davon ausgegangen. Wenn auf gesetzt`LOAD_AND_FLATTEN`, müssen Sie auch einstellen`InputType`.

  Standardverhalten: Map iteriert über **Metadatenobjekte**, die von Aufrufen von zurückgegeben wurden. `S3:ListObjectsV2` Wenn diese Option auf gesetzt ist`LOAD_AND_FLATTEN`, liest und verarbeitet Map die tatsächlichen **Datenobjekte**, auf die in der Ergebnisliste verwiesen wird. 
+ `ManifestType`

  *Optional*. Der Wert ist entweder oder `ATHENA_DATA` oder`S3_INVENTORY`. 

  Hinweis: Wenn auf gesetzt`S3_INVENTORY`, müssen Sie **nicht** zusätzlich angeben, `InputType` da davon ausgegangen wird`CSV`, dass der Typ
+ `CSVDelimiter`

  Sie können dieses Feld angeben, wenn `InputType` es `CSV` oder ist`MANIFEST`. 

  Akzeptiert einen der folgenden Werte: `COMMA` (Standard),`PIPE`,`SEMICOLON`,`SPACE`,`TAB`.
**Anmerkung**  
Mit `CSVDelimiter` diesem Feld `ItemReader` können Dateien verarbeitet werden, die durch andere Zeichen als ein Komma getrennt sind. Verweise auf „CSV-Dateien“ umfassen auch Dateien, die alternative Trennzeichen verwenden, die im Feld angegeben sind. `CSVDelimiter`
+ `CSVHeaderLocation`

  Sie können dieses Feld angeben, wenn `InputType` es oder ist`CSV`. `MANIFEST` 

  Akzeptiert einen der folgenden Werte, um die Position der Spaltenüberschrift anzugeben:
  + `FIRST_ROW`— Verwenden Sie diese Option, wenn die erste Zeile der Datei die Kopfzeile ist.
  + `GIVEN`— Verwenden Sie diese Option, um den Header innerhalb der State-Machine-Definition anzugeben. 

    Zum Beispiel, wenn Ihre Datei die folgenden Daten enthält.

    ```
    1,307,3.5,1256677221
    1,481,3.5,1256677456
    1,1091,1.5,1256677471
    ...
    ```

    Sie könnten das folgende JSON-Array als CSV-Header angeben:

    ```
    "ItemReader": {
        "ReaderConfig": {
            "InputType": "CSV",
            "CSVHeaderLocation": "GIVEN",
            "CSVHeaders": [
                "userId",
                "movieId",
                "rating",
                "timestamp"
            ]
        }
    }
    ```
**Größe des CSV-Headers**  
Step Functions unterstützt Header von bis zu 10 KiB für textgetrennte Dateien.
+ `ItemsPointer`

  *Optional*. Sie können dieses Feld angeben, wenn dies der Fall ist. `InputType` `JSON` 

  `ItemsPointer`verwendet JSONPointer Syntax, um ein bestimmtes Array oder Objekt auszuwählen, das in Ihrer JSON-Datei verschachtelt ist. JSONPointer ist eine standardisierte Syntax, die ausschließlich für die Navigation und Referenzierung von Speicherorten in JSON-Dokumenten entwickelt wurde.

  JSONPointer Die Syntax verwendet Schrägstriche (/), um die einzelnen Verschachtelungsebenen voneinander zu trennen, wobei Array-Indizes als Zahlen ohne Klammern dargestellt werden. Beispiel:
  + `/Data/Contents`- verweist auf das Contents-Array innerhalb des Datenobjekts
  + `/Data/Contents/0`- verweist auf das erste Element des Contents-Arrays

  Die Startposition des Ziel-Arrays muss innerhalb der ersten 16 MB der JSON-Datei liegen, und der JSONPointer Pfad muss weniger als 2000 Zeichen lang sein.

  Wenn Ihre JSON-Datei beispielsweise Folgendes enthält:

  ```
  {"data": {"items": [{"id": 1}, {"id": 2}]}}
  ```

  Sie würden angeben`"ItemsPointer": "/data/items"`, dass das Artikel-Array verarbeitet werden soll.
+ `MaxItems`

  Standardmäßig durchläuft der `Map` Status alle Elemente im angegebenen Datensatz. Durch diese Einstellung `MaxItems` können Sie die Anzahl der Datenelemente begrenzen, die an den `Map` Status übergeben werden. Wenn Sie beispielsweise eine durch Text getrennte Datei bereitstellen, die 1.000 Zeilen enthält, und Sie einen Grenzwert von 100 festlegen, übergibt der Interpreter *nur* 100 Zeilen an den Status *Distributed* Map. Der `Map` Status verarbeitet Elemente in sequentieller Reihenfolge, beginnend nach der Kopfzeile. 

  Für **JSONPath**Workflows können Sie einen *Referenzpfad* zu einem Schlüssel-Wert-Paar in der Statuseingabe verwenden`MaxItemsPath`, das in eine Ganzzahl aufgelöst wird. **Beachten Sie, dass Sie entweder `MaxItems` oder angeben können`MaxItemsPath`, aber nicht beide.**
**Anmerkung**  
Sie können einen Grenzwert von bis zu 100.000.000 angeben, nach dessen Ablauf das Lesen von Elementen `Distributed Map` beendet wird.

**Anforderungen für Konto und Region**  
Ihre Amazon S3 S3-Buckets müssen sich im selben AWS-Konto und AWS-Region wie Ihr Zustandsmaschine befinden.  
Beachten Sie, dass Ihr Zustandsmaschine zwar auf Dateien in Buckets zugreifen kann, die sich in verschiedenen AWS-Konten Buckets befinden AWS-Region, Step Functions jedoch nur das Auflisten von Objekten in Amazon S3 S3-Buckets unterstützt, die sich *sowohl* in derselben AWS-Region als auch in derselben AWS-Konto Zustandsmaschine befinden.

## Verarbeitung verschachtelter Datensätze (aktualisiert am 11. September 2025)
<a name="itemreader-flatten"></a>

Mit dem neuen `Transformation` Parameter können Sie einen Wert von angeben `LOAD_AND_FLATTEN` und die Map liest die **tatsächlichen** Datenobjekte, auf die in der Ergebnisliste eines Aufrufs von verwiesen wird. `S3:ListObjectsV2` 

Vor dieser Version mussten Sie verschachtelte Distributed Maps erstellen, um die Metadaten **abzurufen** und dann die eigentlichen Daten zu **verarbeiten**. In der ersten Map wurden die von zurückgegebenen **Metadaten** iteriert `S3:ListObjectsV2` und untergeordnete Workflows aufgerufen. Eine weitere Map in jedem Child State Machine würde die **tatsächlichen Daten** aus einzelnen Dateien lesen. Mit der Transformationsoption können Sie beide Schritte gleichzeitig ausführen.

Stellen Sie sich vor, Sie möchten ein tägliches Audit der letzten 24 Protokolldateien durchführen, die Ihr System stündlich erstellt und in Amazon S3 speichert. Ihr Distributed Map-Status kann die Protokolldateien mit `S3:ListObjectsV2` auflisten und dann entweder über die *Metadaten* jedes Objekts iterieren oder er kann jetzt die **tatsächlichen Datenobjekte** laden und analysieren, die in Ihrem Amazon S3 S3-Bucket gespeichert sind.

Mit dieser `LOAD_AND_FLATTEN` Option können Sie die Skalierbarkeit erhöhen, die Anzahl der geöffneten Map-Runs reduzieren und mehrere Objekte gleichzeitig verarbeiten. Athena- und Amazon EMR-Jobs generieren in der Regel Ausgaben, die mit der neuen Konfiguration verarbeitet werden können. 

Im Folgenden finden Sie ein Beispiel für die Parameter in einer `ItemReader` Definition: 

```
{
  "QueryLanguage": "JSONata",
  "States": {
    ...
    "Map": {
        ...
        "ItemReader": {
            "Resource": "arn:aws:states:::s3:listObjectsV2",
            "ReaderConfig": {
                // InputType is required if Transformation is LOAD_AND_FLATTEN.
                "InputType": "CSV | JSON | JSONL | PARQUET",

                // Transformation is OPTIONAL and defaults to NONE if not present
                "Transformation": "NONE | LOAD_AND_FLATTEN" 
            },
            "Arguments": {
                "Bucket": "amzn-s3-demo-bucket1",
                "Prefix": "{% $states.input.PrefixKey %}"
            }
        },
        ...
    }
}
```

## Beispiele für Datensätze
<a name="itemreader-examples-map"></a>

Sie können eine der folgenden Optionen als Ihren Datensatz angeben:
+ [JSON-Daten aus einem vorherigen Schritt](#itemsource-json-array)
+ [Eine Liste von Amazon S3 S3-Objekten](#itemsource-example-s3-object-data)
+ [Amazon S3 S3-Objekte, die durch LOAD\$1AND\$1FLATTEN transformiert wurden](#itemsource-example-s3-object-data-flatten)
+ [JSON-Datei in einem Amazon S3 S3-Bucket](#itemsource-example-json-data)
+ [JSON Lines-Datei in einem Amazon S3 S3-Bucket](#itemsource-example-json-lines-data)
+ [CSV-Datei in einem Amazon S3 S3-Bucket](#itemsource-example-csv-data)
+ [Parkettdatei in einem Amazon S3 S3-Bucket](#itemsource-example-parquet-data)
+ [Athena-Manifest (mehrere Elemente verarbeiten)](#itemsource-example-athena-manifest-data)
+ [Amazon S3 S3-Inventar (mehrere Artikel verarbeiten)](#itemsource-example-s3-inventory)

**Anmerkung**  
Step Functions benötigt die entsprechenden Berechtigungen für den Zugriff auf die Amazon S3 S3-Datensätze, die Sie verwenden. Informationen zu den IAM-Richtlinien für die Datensätze finden Sie unter. [IAM-Richtlinienempfehlungen für Datensätze](#itemreader-iam-policies)

### JSON-Daten aus einem vorherigen Schritt
<a name="itemsource-json-array"></a>

Ein *Distributed-Map-Status* kann eine JSON-Eingabe akzeptieren, die aus einem vorherigen Schritt im Workflow übergeben wurde. 

Die Eingabe kann ein JSON-Array, ein JSON-Objekt oder ein Array innerhalb eines Knotens eines JSON-Objekts sein. 

Step Functions iteriert direkt über die Elemente eines Arrays oder die Schlüssel-Wert-Paare eines JSON-Objekts. 

Um einen bestimmten Knoten auszuwählen, der ein verschachteltes JSON-Array oder ein verschachteltes JSON-Objekt aus der Eingabe enthält, können Sie den `ItemsPath ( JSONPath Nur Karte)` oder einen JSONata Ausdruck im Feld für Bundesstaaten verwenden. `Items` JSONata 

Um einzelne Elemente zu verarbeiten, startet der *Status Distributed Map* für jedes Element eine untergeordnete Workflow-Ausführung. Die folgenden Registerkarten zeigen Beispiele für die an den `Map` Status übergebenen Eingaben und die entsprechenden Eingaben für die Ausführung eines untergeordneten Workflows.

**Anmerkung**  
Das `ItemReader` Feld wird nicht benötigt, wenn es sich bei Ihrem Datensatz um JSON-Daten aus einem vorherigen Schritt handelt.

------
#### [ Input passed to the Map state ]

Betrachten Sie das folgende JSON-Array mit drei Elementen.

```
"facts": [
    {
        "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"
    }
]
```

------
#### [ Input passed to a child workflow execution ]

Mit dem *Status Distributed Map werden* drei untergeordnete Workflow-Ausführungen gestartet. Jede Ausführung erhält ein Array-Element als Eingabe. Das folgende Beispiel zeigt die Eingabe, die von einer untergeordneten Workflow-Ausführung empfangen wurde.

```
{
  "verdict": "true",
  "statement_date": "6/11/2008",
  "statement_source": "speech"
}
```

------

### Eine Liste von Amazon S3 S3-Objekten
<a name="itemsource-example-s3-object-data"></a>

Ein *Distributed Map-Status* kann über die Objekte iterieren, die in einem Amazon S3 S3-Bucket gespeichert sind. Wenn die Workflow-Ausführung den `Map` Status erreicht, ruft Step Functions die [ListObjectsV2-API-Aktion](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) auf, die ein Array der Amazon S3 **S3-Objektmetadaten** zurückgibt. In diesem Array enthält jedes Element Daten, wie z. B. **ETag**und **Key**, für die tatsächlichen Daten, die im Bucket gespeichert sind. 

Um einzelne Elemente im Array zu verarbeiten, startet der *Status Distributed Map* die Ausführung eines untergeordneten Workflows. Nehmen wir zum Beispiel an, dass Ihr Amazon S3 S3-Bucket 100 Bilder enthält. Dann enthält das nach dem Aufrufen der `ListObjectsV2` API-Aktion zurückgegebene Array 100 Metadatenelemente. Im *Status Distributed Map werden* dann 100 untergeordnete Workflow-Ausführungen gestartet, um jedes Element zu verarbeiten.

**Um Datenobjekte direkt und ohne verschachtelte Workflows zu verarbeiten, können Sie die Transformationsoption LOAD\$1AND\$1FLATTEN wählen, um Elemente direkt zu verarbeiten.**

**Anmerkung**  
Step Functions enthält auch ein Element für jeden **Ordner**, der mit der Amazon S3 **S3-Konsole** im Amazon S3 S3-Bucket erstellt wurde. Die Ordnerelemente führen dazu, dass zusätzliche untergeordnete Workflow-Ausführungen gestartet werden.   
Um zu vermeiden, dass für jeden Ordner zusätzliche untergeordnete Workflow-Ausführungen erstellt werden, empfehlen wir, die AWS CLI zum Erstellen von Ordnern zu verwenden. Weitere Informationen finden Sie unter [Amazon S3 S3-Befehle auf hoher Ebene](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-managing-buckets-creating) im *AWS Command Line Interface Benutzerhandbuch*.
Step Functions benötigt die entsprechenden Berechtigungen für den Zugriff auf die Amazon S3 S3-Datensätze, die Sie verwenden. Informationen zu den IAM-Richtlinien für die Datensätze finden Sie unter. [IAM-Richtlinienempfehlungen für Datensätze](#itemreader-iam-policies)

Die folgenden Registerkarten zeigen Beispiele für die `ItemReader` Feldsyntax und die Eingabe, die an die Ausführung eines untergeordneten Workflows für diesen Datensatz übergeben wurde.

------
#### [ ItemReader syntax ]

In diesem Beispiel haben Sie Ihre Daten, zu denen Bilder, JSON-Dateien und Objekte gehören, in einem Präfix organisiert, das `processData` in einem Amazon S3 S3-Bucket mit dem Namen benannt ist`amzn-s3-demo-bucket`.

```
"ItemReader": {
    "Resource": "arn:aws:states:::s3:listObjectsV2",
    "Parameters": {
        "Bucket": "amzn-s3-demo-bucket",
        "Prefix": "processData"
    }
}
```

------
#### [ Input passed to a child workflow execution ]

Der *Status Distributed Map* startet so viele untergeordnete Workflow-Ausführungen wie die Anzahl der Metadatenelemente, die im Amazon S3 S3-Bucket vorhanden sind. Das folgende Beispiel zeigt die Eingabe, die bei der Ausführung eines untergeordneten Workflows empfangen wurde.

```
{
  "Etag": "\"05704fbdccb224cb01c59005bebbad28\"",
  "Key": "processData/images/n02085620_1073.jpg",
  "LastModified": 1668699881,
  "Size": 34910,
  "StorageClass": "STANDARD"
}
```

------

### Amazon S3 S3-Objekte, transformiert von `LOAD_AND_FLATTEN`
<a name="itemsource-example-s3-object-data-flatten"></a>

Dank der verbesserten Unterstützung für S3 ListObjects V2 als Eingabequelle in Distributed Map können Ihre Zustandsmaschinen mehrere **Datenobjekte** direkt aus Amazon S3 S3-Buckets lesen und verarbeiten, sodass keine verschachtelten Maps zur Verarbeitung der Metadaten erforderlich sind\$1

Mit dieser `LOAD_AND_FLATTEN` Option macht Ihr State Machine Folgendes:
+ Lesen Sie den **tatsächlichen Inhalt** jedes Objekts, das per Amazon S3 `ListObjectsV2` S3-Aufruf aufgelistet wurde.
+ Analysieren Sie den Inhalt anhand von InputType (CSV, JSON, JSONL, Parquet).
+ Erstellen Sie Elemente aus dem Dateiinhalt (Zeilen/Datensätze) und nicht aus Metadaten.

Mit der Transformationsoption benötigen Sie keine verschachtelten verteilten Maps mehr, um die Metadaten zu verarbeiten. Die Verwendung der Option LOAD\$1AND\$1FLATTEN erhöht die Skalierbarkeit, reduziert die Anzahl der aktiven Kartenläufe und verarbeitet mehrere Objekte gleichzeitig.

Die folgende Konfiguration zeigt die Einstellung für: `ItemReader`

```
"ItemReader": {
   "Resource": "arn:aws:states:::s3:listObjectsV2",
   "ReaderConfig": {
      "InputType": "JSON",
      "Transformation": "LOAD_AND_FLATTEN"
   },
   "Arguments": {
      "Bucket": "S3_BUCKET_NAME",
      "Prefix": "S3_BUCKET_PREFIX"
   }
}
```

**Empfehlung für das Bucket-Präfix**  
Wir empfehlen, Ihrem Präfix einen abschließenden Schrägstrich hinzuzufügen. Wenn Sie beispielsweise Daten mit dem Präfix von auswählen`folder1`, verarbeitet Ihre Zustandsmaschine sowohl als auch`folder1/myData.csv`. `folder10/myData.csv` Bei `folder1/` der Verwendung wird ausschließlich ein Ordner verarbeitet.

### JSON-Datei in einem Amazon S3 S3-Bucket
<a name="itemsource-example-json-data"></a>

Ein *Distributed Map-Status* kann eine JSON-Datei, die in einem Amazon S3 S3-Bucket gespeichert ist, als Datensatz akzeptieren. Die JSON-Datei muss ein Array oder ein JSON-Objekt enthalten. 

Wenn die Workflow-Ausführung den `Map` Status erreicht, ruft Step Functions die [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)API-Aktion auf, um die angegebene JSON-Datei abzurufen. 

Wenn die JSON-Datei eine verschachtelte Objektstruktur enthält, können Sie den spezifischen Knoten mit Ihrem Datensatz mit einem auswählen. `ItemsPointer` *Die folgende Konfiguration würde beispielsweise eine verschachtelte Liste von *ausgewählten Produkten im Inventar* extrahieren.*

```
"ItemReader": {
   "Resource": "arn:aws:states:::s3:getObject",
   "ReaderConfig": {
      "InputType": "JSON",
      "ItemsPointer": "/inventory/products/featured"
   },
   "Arguments": {
      "Bucket": "amzn-s3-demo-bucket",
      "Key": "nested-data-file.json"
   }
}
```

Der `Map` Status wiederholt dann 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, startet der `Map` Status 1000 untergeordnete Workflow-Ausführungen.

**Anmerkung**  
Die Ausführungseingabe, die zum Starten einer untergeordneten Workflow-Ausführung verwendet wird, darf 256 KiB nicht überschreiten. Step Functions unterstützt jedoch das Lesen eines Elements mit einer Größe von bis zu 8 MB aus einer durch Text getrennten Datei, JSON- oder JSON-Zeilendatei, wenn Sie anschließend das optionale `ItemSelector` Feld anwenden, um die Größe des Elements zu reduzieren.
Step Functions unterstützt 10 GB als maximale Größe einer einzelnen Datei in Amazon S3.
Step Functions benötigt die entsprechenden Berechtigungen für den Zugriff auf die Amazon S3 S3-Datensätze, die Sie verwenden. Informationen zu den IAM-Richtlinien für die Datensätze finden Sie unter. [IAM-Richtlinienempfehlungen für Datensätze](#itemreader-iam-policies)

Die folgenden Registerkarten zeigen Beispiele für die `ItemReader` 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`factcheck.json`. Sie haben diese Datei in einem Präfix gespeichert, das `jsonDataset` in einem Amazon S3 S3-Bucket benannt ist. Das Folgende ist ein Beispiel für den JSON-Datensatz.

```
[
  {
    "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"
  },
  ...
]
```

------
#### [ ItemReader syntax ]

```
"ItemReader": {
   "Resource": "arn:aws:states:::s3:getObject",
   "ReaderConfig": {
      "InputType": "JSON"
   },
   "Parameters": {
      "Bucket": "amzn-s3-demo-bucket",
      "Key": "jsonDataset/factcheck.json"
   }
}
```

------
#### [ Input to a child workflow execution ]

Mit dem *Status Distributed Map werden* so viele untergeordnete Workflow-Ausführungen gestartet, wie die Anzahl der in der JSON-Datei vorhandenen Array-Elemente entspricht. Das folgende Beispiel zeigt die Eingabe, die von einer untergeordneten Workflow-Ausführung empfangen wurde.

```
{
  "verdict": "true",
  "statement_date": "6/11/2008",
  "statement_source": "speech"
}
```

------

### JSON Lines-Datei in einem Amazon S3 S3-Bucket
<a name="itemsource-example-json-lines-data"></a>

Ein *Distributed Map-Status* kann eine JSON Lines-Datei, die in einem Amazon S3 S3-Bucket gespeichert ist, als Datensatz akzeptieren.

**Anmerkung**  
Die Ausführungseingabe, die zum Starten einer untergeordneten Workflow-Ausführung verwendet wird, darf 256 KiB nicht überschreiten. Step Functions unterstützt jedoch das Lesen eines Elements mit einer Größe von bis zu 8 MB aus einer durch Text getrennten Datei, JSON- oder JSON-Zeilendatei, wenn Sie anschließend das optionale `ItemSelector` Feld anwenden, um die Größe des Elements zu reduzieren.
Step Functions unterstützt 10 GB als maximale Größe einer einzelnen Datei in Amazon S3.
Step Functions benötigt die entsprechenden Berechtigungen für den Zugriff auf die Amazon S3 S3-Datensätze, die Sie verwenden. Informationen zu den IAM-Richtlinien für die Datensätze finden Sie unter. [IAM-Richtlinienempfehlungen für Datensätze](#itemreader-iam-policies)

Die folgenden Registerkarten zeigen Beispiele für die `ItemReader` 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 Lines-Datei mit dem Namen`factcheck.jsonl`. Sie haben diese Datei in einem Präfix gespeichert, das `jsonlDataset` in einem Amazon S3 S3-Bucket benannt ist. Das Folgende ist ein Beispiel für den Inhalt der Datei.

```
{"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"}
```

------
#### [ ItemReader syntax ]

```
"ItemReader": {
   "Resource": "arn:aws:states:::s3:getObject",
   "ReaderConfig": {
      "InputType": "JSONL"
   },
   "Parameters": {
      "Bucket": "amzn-s3-demo-bucket",
      "Key": "jsonlDataset/factcheck.jsonl"
   }
}
```

------
#### [ Input to a child workflow execution ]

Mit dem *Status Distributed Map werden* so viele untergeordnete Workflow-Ausführungen gestartet, wie die Anzahl der Zeilen in der JSONL-Datei vorhanden ist. Das folgende Beispiel zeigt die Eingabe, die von einer untergeordneten Workflow-Ausführung empfangen wurde.

```
{
  "verdict": "true",
  "statement_date": "6/11/2008",
  "statement_source": "speech"
}
```

------

### CSV-Datei in einem Amazon S3 S3-Bucket
<a name="itemsource-example-csv-data"></a>

**Anmerkung**  
Mit `CSVDelimiter` diesem Feld `ItemReader` können Dateien verarbeitet werden, die durch andere Zeichen als ein Komma getrennt sind. Verweise auf „CSV-Dateien“ umfassen auch Dateien, die alternative Trennzeichen verwenden, die im Feld angegeben sind. `CSVDelimiter`

Ein *Distributed Map-Status* kann eine durch Text getrennte Datei, die in einem Amazon S3 S3-Bucket gespeichert ist, als Datensatz akzeptieren. Wenn Sie eine durch Text getrennte Datei als Datensatz verwenden, müssen Sie eine Spaltenüberschrift angeben. Hinweise zum Angeben einer Kopfzeile finden Sie unter. [Inhalt des ItemReader Felds](#itemreader-field-contents)

Step Functions analysiert textgetrennte Dateien auf der Grundlage der folgenden Regeln:
+ Das Trennzeichen, das Felder voneinander trennt, wird durch in angegeben. `CSVDelimiter` *ReaderConfig* Das Trennzeichen ist standardmäßig auf. `COMMA`
+ **Zeilenumbrüche sind ein Trennzeichen, das Datensätze voneinander trennt.**
+ Felder werden als Zeichenketten behandelt. Verwenden Sie für Datentypkonvertierungen die `States.StringToJson` systeminterne Funktion in. [ItemSelector (Karte)](input-output-itemselector.md)
+ Doppelte Anführungszeichen (“ „) sind nicht erforderlich, um Zeichenketten einzuschließen. Zeichenfolgen, die in doppelte Anführungszeichen eingeschlossen sind, können jedoch Kommas und Zeilenumbrüche enthalten, ohne als Datensatztrennzeichen zu dienen.
+ Sie können doppelte Anführungszeichen beibehalten, indem Sie sie wiederholen.
+ Backslashes (\$1) sind eine weitere Möglichkeit, Sonderzeichen zu maskieren. Backslashes funktionieren nur mit anderen Backslashes, doppelten Anführungszeichen und dem konfigurierten Feldtrennzeichen wie Komma oder Pipe. Ein umgekehrter Schrägstrich, gefolgt von einem beliebigen anderen Zeichen, wird stillschweigend entfernt.
+ Sie können umgekehrte Schrägstriche beibehalten, indem Sie sie wiederholen. Beispiel: 

  ```
  path,size
  C:\\Program Files\\MyApp.exe,6534512
  ```
+ Backslashes, die doppelte Anführungszeichen (`\"`) umgehen, funktionieren nur, wenn sie paarweise eingefügt werden. Wir empfehlen daher, doppelte Anführungszeichen zu maskieren, 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 durch Text getrennte Datei analysiert, finden Sie unter. [Example of parsing an input CSV file](example-csv-parse-dist-map.md#example-csv-parse)

Wenn die Workflow-Ausführung den `Map` Status erreicht, ruft Step Functions die [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)API-Aktion auf, um die angegebene Datei abzurufen. Der `Map` Status iteriert dann über jede Zeile in der Datei und startet eine untergeordnete Workflow-Ausführung, um die Elemente in jeder Zeile zu verarbeiten. Nehmen wir beispielsweise an, Sie stellen eine durch Text getrennte Datei bereit, die 100 Zeilen als Eingabe enthält. Dann übergibt der Interpreter jede Zeile an den Status. `Map` Der `Map` Status verarbeitet Elemente in serieller Reihenfolge, beginnend nach der Kopfzeile.

**Anmerkung**  
Die Ausführungseingabe, die zum Starten einer untergeordneten Workflow-Ausführung verwendet wird, darf 256 KiB nicht überschreiten. Step Functions unterstützt jedoch das Lesen eines Elements mit einer Größe von bis zu 8 MB aus einer durch Text getrennten Datei, JSON- oder JSON-Zeilendatei, wenn Sie anschließend das optionale `ItemSelector` Feld anwenden, um die Größe des Elements zu reduzieren.
Step Functions unterstützt 10 GB als maximale Größe einer einzelnen Datei in Amazon S3.
Step Functions benötigt die entsprechenden Berechtigungen für den Zugriff auf die Amazon S3 S3-Datensätze, die Sie verwenden. Informationen zu den IAM-Richtlinien für die Datensätze finden Sie unter. [IAM-Richtlinienempfehlungen für Datensätze](#itemreader-iam-policies)

Die folgenden Registerkarten zeigen Beispiele für die `ItemReader` Feldsyntax und die Eingabe, die an die Ausführung eines untergeordneten Workflows für diesen Datensatz übergeben wurde.

------
#### [ ItemReader syntax ]

Angenommen, Sie haben eine CSV-Datei mit dem Namen`ratings.csv`. Anschließend haben Sie diese Datei in einem Präfix gespeichert, das `csvDataset` in einem Amazon S3 S3-Bucket benannt ist.

```
"ItemReader": {
   "ReaderConfig": {
      "InputType": "CSV",
      "CSVHeaderLocation": "FIRST_ROW",
      "CSVDelimiter": "PIPE"
   },
   "Resource": "arn:aws:states:::s3:getObject",
   "Parameters": {
      "Bucket": "amzn-s3-demo-bucket",
      "Key": "csvDataset/ratings.csv"
   }
}
```

------
#### [ Input to a child workflow execution ]

Mit dem *Status Distributed Map werden* so viele untergeordnete Workflow-Ausführungen gestartet, wie die Anzahl der Zeilen in der CSV-Datei vorhanden ist, mit Ausnahme der Kopfzeile, falls in der Datei. Das folgende Beispiel zeigt die Eingabe, die von einer untergeordneten Workflow-Ausführung empfangen wurde.

```
{
  "rating": "3.5",
  "movieId": "307",
  "userId": "1",
  "timestamp": "1256677221"
}
```

------

### Parkettdatei in einem Amazon S3 S3-Bucket
<a name="itemsource-example-parquet-data"></a>

Parquet-Dateien können als Eingabequelle verwendet werden. Apache Parquet-Dateien, die in Amazon S3 gespeichert sind, ermöglichen eine effiziente, skalierbare, spaltenweise Datenverarbeitung.

Bei der Verwendung von Parquet-Dateien gelten die folgenden Bedingungen:
+ 256 MB ist die maximale Zeilengruppengröße und 5 MB ist die maximale Fußzeilengröße. Wenn Sie Eingabedateien angeben, die eine der Grenzwerte überschreiten, gibt Ihr State Machine einen Laufzeitfehler zurück.
+ Das `VersionId` Feld wird **nicht** unterstützt für`InputType=Parquet`.
+ Interne GZIP-, ZSTD- und Snappy-Datenkomprimierung werden nativ unterstützt. Es sind keine Dateinamenerweiterungen erforderlich. 

Im Folgenden finden Sie ein Beispiel für eine ASL-Konfiguration für die `InputType` Einstellung „Parquet“:

```
"ItemReader": {
   "Resource": "arn:aws:states:::s3:getObject",
   "ReaderConfig": {
      "InputType": "PARQUET"
   },
   "Arguments": {
      "Bucket": "amzn-s3-demo-bucket",
      "Key": "my-parquet-data-file-1.parquet"
   }
}
```

**Verarbeitung von Aufträgen in großem Umfang**  
Für extrem umfangreiche Jobs verwendet Step Functions viele Eingabeleser. Die Leser verschachteln ihre Bearbeitung, was dazu führen kann, dass einige Leser eine Pause einlegen, während andere weiterarbeiten. Intermittierender Fortschritt ist erwartetes Verhalten in großem Maßstab.

### Athena-Manifest (mehrere Elemente verarbeiten)
<a name="itemsource-example-athena-manifest-data"></a>

Sie können die aus den `UNLOAD` Abfrageergebnissen generierten Athena-Manifestdateien verwenden, um die **Quelle** der Datendateien für Ihren Kartenstatus anzugeben. Sie legen fest `ManifestType` `InputType` auf `ATHENA_DATA` und entweder `CSV``JSONL`, oder`Parquet`. 

Beim Ausführen einer `UNLOAD` Abfrage generiert Athena zusätzlich zu den eigentlichen Datenobjekten eine Datenmanifestdatei. Die Manifestdatei enthält eine strukturierte CSV-Liste der Datendateien. Sowohl das Manifest als auch die Datendateien werden an Ihrem Speicherort für Athena-Abfrageergebnisse in Amazon S3 gespeichert.

```
UNLOAD (<YOUR_SELECT_QUERY>) TO 'S3_URI_FOR_STORING_DATA_OBJECT' WITH (format = 'JSON')
```

Konzeptioneller Überblick über den Prozess, kurz gefasst:

1. Wählen Sie Ihre Daten mithilfe einer `UNLOAD` Abfrage in Athena aus einer Tabelle aus.

1. Athena generiert eine Manifestdatei (CSV) und die Datenobjekte in Amazon S3. 

1. Konfigurieren Sie Step Functions, um die Manifestdatei zu lesen und die Eingabe zu verarbeiten.

Die Funktion kann die Ausgabeformate CSV, JSONL und Parquet von Athena verarbeiten. Alle Objekte, auf die in einer einzigen Manifestdatei verwiesen wird, müssen dasselbe Format haben. InputType Beachten Sie, dass durch eine `UNLOAD` Abfrage exportierte CSV-Objekte in der ersten Zeile **keinen** Header enthalten. Prüfen Sie`CSVHeaderLocation`, ob Sie Spaltenüberschriften angeben müssen. 

Der Kartenkontext wird auch eine enthalten, `$states.context.Map.Item.Source` sodass Sie die Verarbeitung an die Datenquelle anpassen können.

Im Folgenden finden Sie eine Beispielkonfiguration eines für die Verwendung eines Athena-Manifests `ItemReader` konfigurierten:

```
"ItemReader": {
   "Resource": "arn:aws:states:::s3:getObject",
   "ReaderConfig": {
      "ManifestType": "ATHENA_DATA",
      "InputType": "CSV | JSONL | PARQUET"
   },
   "Arguments": {
      "Bucket": "<S3_BUCKET_NAME>",
      "Key": "<S3_KEY_PREFIX><QUERY_ID>-manifest.csv"
   }
}
```

**Verwenden des Athena-Manifestmusters in Workflow Studio**  
Ein gängiges Szenario für die Datenverarbeitung wendet eine Map auf Daten an, die aus einer Athena UNLOAD-Abfrage stammen. Die Map ruft eine Lambda-Funktion auf, um jedes im Athena-Manifest beschriebene Element zu verarbeiten. Step Functions Workflow Studio bietet ein vorgefertigtes Muster, das all diese Komponenten zu einem Block kombiniert, den Sie auf Ihre State Machine-Leinwand ziehen können.

### S3-Inventar (mehrere Artikel verarbeiten)
<a name="itemsource-example-s3-inventory"></a>

Ein *Distributed Map-Status* kann eine Amazon S3 S3-Inventarmanifestdatei, die in einem Amazon S3 S3-Bucket gespeichert ist, als Datensatz akzeptieren.

Wenn die Workflow-Ausführung den `Map` Status erreicht, ruft Step Functions die [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)API-Aktion auf, um die angegebene Amazon S3 S3-Inventarmanifestdatei abzurufen. 

Standardmäßig iteriert der `Map` Status dann über die **Objekte** im Inventar, um ein Array von Amazon S3 S3-Inventarobjekt-Metadaten zurückzugeben.

Wenn Sie S3\$1INVENTORY angeben, kann ManifestType es InputType nicht angegeben werden. 



**Anmerkung**  
Step Functions unterstützt 10 GB als maximale Größe einer einzelnen Datei in einem Amazon S3 S3-Inventarbericht nach der Dekomprimierung. 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 für den Zugriff auf die Amazon S3 S3-Datensätze, die Sie verwenden. Informationen zu den IAM-Richtlinien für die Datensätze finden Sie unter. [IAM-Richtlinienempfehlungen für Datensätze](#itemreader-iam-policies)

Im Folgenden finden Sie ein Beispiel für eine Inventardatei im CSV-Format. Diese Datei enthält die Objekte mit den Namen `csvDataset` und`imageDataset`, die in einem benannten Amazon S3 S3-Bucket gespeichert sind`amzn-s3-demo-source-bucket`.

```
"amzn-s3-demo-source-bucket","csvDataset/","0","2022-11-16T00:27:19.000Z"
"amzn-s3-demo-source-bucket","csvDataset/titles.csv","3399671","2022-11-16T00:29:32.000Z"
"amzn-s3-demo-source-bucket","imageDataset/","0","2022-11-15T20:00:44.000Z"
"amzn-s3-demo-source-bucket","imageDataset/n02085620_10074.jpg","27034","2022-11-15T20:02:16.000Z"
...
```

**Wichtig**  
Step Functions unterstützt keinen benutzerdefinierten Amazon S3 S3-Inventarbericht als Datensatz.   
Das Ausgabeformat Ihres Amazon S3 S3-Inventarberichts muss CSV sein.   
Weitere Informationen zu Amazon S3 S3-Inventaren und deren Einrichtung finden Sie unter [Amazon S3 S3-Inventar](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html).

Das folgende Beispiel für eine Amazon S3 S3-Inventarmanifestdatei zeigt die CSV-Header für die Metadaten des Inventarobjekts.

```
{
  "sourceBucket" : "amzn-s3-demo-source-bucket",
  "destinationBucket" : "arn:aws:s3:::amzn-s3-demo-inventory",
  "version" : "2016-11-30",
  "creationTimestamp" : "1668560400000",
  "fileFormat" : "CSV",
  "fileSchema" : "Bucket, Key, Size, LastModifiedDate",
  "files" : [ {
    "key" : "amzn-s3-demo-bucket/destination-prefix/data/20e55de8-9c21-45d4-99b9-46c732000228.csv.gz",
    "size" : 7300,
    "MD5checksum" : "a7ff4a1d4164c3cd55851055ec8f6b20"
  } ]
}
```

Die folgenden Registerkarten zeigen Beispiele für die `ItemReader` Feldsyntax und die Eingabe, die an die Ausführung eines untergeordneten Workflows für diesen Datensatz übergeben wurde.

------
#### [ ItemReader syntax ]

```
"ItemReader": {
   "ReaderConfig": {
      "InputType": "MANIFEST"
   },
   "Resource": "arn:aws:states:::s3:getObject",
   "Parameters": {
      "Bucket": "amzn-s3-demo-destination-bucket",
      "Key": "destination-prefix/amzn-s3-demo-bucket/config-id/YYYY-MM-DDTHH-MMZ/manifest.json"
   }
}
```

------
#### [ Input to a child workflow execution ]

```
{
  "LastModifiedDate": "2022-11-16T00:29:32.000Z",
  "Bucket": "amzn-s3-demo-source-bucket",
  "Size": "3399671",
  "Key": "csvDataset/titles.csv"
}
```

Abhängig von den Feldern, die Sie bei der Konfiguration des Amazon S3-Inventarberichts ausgewählt haben, kann der Inhalt Ihrer `manifest.json` Datei vom Beispiel abweichen.

------

## IAM-Richtlinienempfehlungen für Datensätze
<a name="itemreader-iam-policies"></a>

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. Generierte Richtlinien beinhalten die geringsten Rechte, die erforderlich sind, damit die State-Machine-Rolle die `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` API-Aktion für den *Distributed Map-Status* aufrufen und auf AWS Ressourcen wie Amazon S3 S3-Buckets und -Objekte sowie Lambda-Funktionen zugreifen kann.

Wir empfehlen, nur die erforderlichen Berechtigungen in Ihre IAM-Richtlinien aufzunehmen. 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 Ihre Daten enthält.

**Wichtig**  
Wenn Sie einen Amazon S3 S3-Bucket und ein Objekt oder ein Präfix mit einem [Referenzpfad](amazon-states-language-paths.md#amazon-states-language-reference-paths) 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.

Die folgenden Beispiele zeigen Techniken zur Gewährung der geringsten Rechte, die für den Zugriff auf Ihre Amazon S3 S3-Datensätze mithilfe der [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) - und [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)API-Aktionen erforderlich sind.

**Example Bedingung, die ein Amazon S3 S3-Objekt als Datensatz verwendet**  
Die folgende Bedingung gewährt die geringsten Rechte für den Zugriff auf Objekte in einem `processImages` Ordner eines Amazon S3 S3-Buckets.  

```
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ],
"Condition": {
   "StringLike": { 
      "s3:prefix": [ "processImages" ]
   }
}
```

**Example eine CSV-Datei als Datensatz verwenden**  
Das folgende Beispiel zeigt die Aktionen, die für den Zugriff auf eine CSV-Datei mit dem Namen erforderlich sind`ratings.csv`.  

```
"Action": [ "s3:GetObject" ],
"Resource": [
   "arn:aws:s3:::amzn-s3-demo-bucket/csvDataset/ratings.csv"
   ]
```

**Example Verwenden eines Amazon S3 S3-Inventars als Datensatz**  
Im Folgenden werden Beispielressourcen für ein Amazon S3 S3-Inventarmanifest und Datendateien gezeigt.  

```
"Resource": [
   "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/YYYY-MM-DDTHH-MMZ/manifest.json",
   "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/data/*"
   ]
```

**Example Verwenden Sie ListObjects V2, um sich auf ein Ordnerpräfix zu beschränken**  
Bei Verwendung von [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) werden zwei Richtlinien generiert. Eine ist erforderlich, um das **Auflisten** des Inhalts des Buckets (`ListBucket`) zu ermöglichen, und eine andere Richtlinie ermöglicht das **Abrufen von Objekten** im Bucket (`GetObject`).   
Im Folgenden werden Beispielaktionen, Ressourcen und eine Bedingung gezeigt:  

```
"Action": [ "s3:ListBucket" ],
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ],
"Condition": {
   "StringLike": {
      "s3:prefix": [ "/path/to/your/json/" ]
   }
}
```

```
"Action": [ "s3:GetObject" ],
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/path/to/your/json/*" ]
```
Beachten Sie, dass dieser `GetObject` Bereich nicht berücksichtigt wird und Sie einen Platzhalter (`*`) für das Objekt verwenden.