

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.

# Workflow-Status zuordnen
<a name="state-map"></a>

Verwenden Sie den `Map` Status, um eine Reihe von Workflow-Schritten für jedes Element in einem Datensatz auszuführen. Die Iterationen des `Map` Staates laufen parallel, was eine schnelle Verarbeitung eines Datensatzes ermöglicht. `Map`Staaten können eine Vielzahl von Eingabetypen verwenden, darunter ein JSON-Array, eine Liste von Amazon S3 S3-Objekten oder eine CSV-Datei.

Step Functions bietet zwei Arten von Verarbeitungsmodi, um den `Map` Status in Ihren Workflows zu verwenden: den *Inline-Modus* und den *verteilten* Modus.

**Tipp**  
Ein Beispiel für einen Workflow, der einen `Map` Status verwendet, finden Sie unter [Verarbeiten von Datenarrays mit Choice und Map](https://catalog.workshops.aws/stepfunctions/choice-and-map) in *The AWS Step Functions Workshop*.

## Ordnen Sie die Verarbeitungsmodi des Status zu
<a name="concepts-map-process-modes"></a>

Step Functions bietet die folgenden Verarbeitungsmodi für den `Map` Status, je nachdem, wie Sie die Elemente in einem Datensatz verarbeiten möchten. 
+ **Inline** — Modus mit begrenzter Parallelität. In diesem Modus wird jede Iteration des `Map` Status im Kontext des Workflows ausgeführt, der den Status enthält. `Map` Step Functions fügt die Ausführungshistorie dieser Iterationen zur Ausführungshistorie des übergeordneten Workflows hinzu. Standardmäßig werden `Map` Staaten im Inline-Modus ausgeführt.

  In diesem Modus akzeptiert der `Map` Status nur ein JSON-Array als Eingabe. Außerdem unterstützt dieser Modus bis zu 40 gleichzeitige Iterationen.

  Weitere Informationen finden Sie unter [Verwenden des Kartenstatus im Inline-Modus in Step Functions Functions-Workflows](state-map-inline.md).
+ **Verteilt** – Modus mit hoher Parallelität. In diesem Modus führt der `Map` Status jede Iteration als untergeordnete Workflow-Ausführung aus, wodurch eine hohe Parallelität von bis zu 10.000 parallel untergeordneten Workflow-Ausführungen ermöglicht wird. Jede untergeordnete Workflow-Ausführung hat ihren eigenen Ausführungsverlauf, der von dem des übergeordneten Workflows getrennt ist.

  In diesem Modus kann der `Map` Staat entweder ein JSON-Array oder eine Amazon S3 S3-Datenquelle, z. B. eine CSV-Datei, als Eingabe akzeptieren.

  Weitere Informationen finden Sie unter [Verteilter Modus](state-map-distributed.md).

Welchen Modus Sie verwenden sollten, hängt davon ab, wie Sie die Elemente in einem Datensatz verarbeiten möchten. Verwenden Sie den `Map` Status im Inline-Modus, wenn der Ausführungsverlauf Ihres Workflows 25.000 Einträge nicht überschreitet oder wenn Sie nicht mehr als 40 gleichzeitige Iterationen benötigen.

Verwenden Sie den `Map` Status im Modus Verteilt, wenn Sie umfangreiche parallel Workloads orchestrieren müssen, die eine beliebige Kombination der folgenden Bedingungen erfüllen:
+ Die Größe Ihres Datensatzes übersteigt 256 KiB.
+ Der Verlauf der Ausführungsereignisse des Workflows würde 25.000 Einträge überschreiten.
+ Sie benötigen eine Parallelität von mehr als 40 gleichzeitigen Iterationen.

### Unterschiede im Inline-Modus und im verteilten Modus
<a name="concepts-inline-vs-distributed-map"></a>

In der folgenden Tabelle werden die Unterschiede zwischen den Modi Inline und Distributed hervorgehoben.


| Inline-Modus | Verteilter Modus | 
| --- |--- |
| **Supported data sources** | 
| --- |
| Akzeptiert ein JSON-Array, das aus einem vorherigen Schritt im Workflow als Eingabe übergeben wurde. |  Akzeptiert die folgenden Datenquellen als Eingabe:   JSON-Array, das aus einem vorherigen Schritt im Workflow übergeben wurde   JSON-Datei in einem Amazon S3 S3-Bucket, der ein Array enthält   CSV-Datei in einem Amazon S3 S3-Bucket   Amazon S3 S3-Objektliste   Amazon S3 Inventory    | 
| **Map iterations** | 
| --- |
|  In diesem Modus wird jede Iteration des `Map` Status im Kontext des Workflows ausgeführt, der den `Map` Status enthält. Step Functions fügt die Ausführungshistorie dieser Iterationen zur Ausführungshistorie des übergeordneten Workflows hinzu.  |  In diesem Modus führt der `Map` Status jede Iteration als untergeordnete Workflow-Ausführung aus, wodurch eine hohe Parallelität von bis zu 10.000 parallel untergeordneten Workflow-Ausführungen ermöglicht wird. Jede untergeordnete Workflow-Ausführung hat ihren eigenen Ausführungsverlauf, der von dem des übergeordneten Workflows getrennt ist.  | 
| **Maximum concurrency for parallel iterations** | 
| --- |
| Ermöglicht es Ihnen, bis zu 40 Iterationen so gleichzeitig wie möglich auszuführen. | Ermöglicht die Ausführung von bis zu 10.000 parallel untergeordneten Workflow-Ausführungen, um Millionen von Datenelementen gleichzeitig zu verarbeiten. | 
| **Input payload and event history sizes** | 
| --- |
| Erzwingt ein Limit von 256 KiB für die Größe der Eingabe-Payload und 25.000 Einträge im Verlauf der Ausführungsereignisse. | Ermöglicht es Ihnen, die Beschränkung der Nutzlastgröße zu umgehen, da der `Map` Status Eingaben direkt aus Amazon S3 S3-Datenquellen lesen kann. In diesem Modus können Sie auch Einschränkungen im Ausführungsverlauf umgehen, da die vom `Map` Status gestarteten untergeordneten Workflow-Ausführungen ihre eigenen, vom Ausführungsverlauf des übergeordneten Workflows getrennten Ausführungshistorien beibehalten.  | 
| **Monitoring and observability** | 
| --- |
|  Sie können den Ausführungsverlauf des Workflows von der Konsole aus oder durch Aufrufen der `[GetExecutionHistory](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetExecutionHistory.html)` API-Aktion überprüfen. Sie können den Ausführungsverlauf auch über CloudWatch X-Ray einsehen.  | Wenn Sie einen `Map` Status im verteilten Modus ausführen, erstellt Step Functions eine Map Run-Ressource. Ein Map Run bezieht sich auf eine Reihe von untergeordneten Workflow-Ausführungen, die im *Status „Distributed Map*“ gestartet werden. Sie können einen Map Run in der Step Functions-Konsole anzeigen. Sie können die `[DescribeMapRun](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeMapRun.html)` API-Aktion auch aufrufen. Ein Map Run sendet auch Metriken an. CloudWatch Weitere Informationen finden Sie unter [Ausführung einer Distributed Map Run in Step Functions anzeigen](concepts-examine-map-run.md). | 

# Verwenden des Kartenstatus im Inline-Modus in Step Functions Functions-Workflows
<a name="state-map-inline"></a>

**Status verwalten und Daten transformieren**  
Erfahren Sie mehr über das [Übergeben von Daten zwischen Zuständen mithilfe von Variablen](workflow-variables.md) und das [Transformieren von Daten mit JSONata](transforming-data.md).

Standardmäßig wird states `Map` im **Inline-Modus** ausgeführt. Im Inline-Modus akzeptiert der Map-Status nur ein JSON-Array als Eingabe. Es erhält dieses Array aus einem früheren Schritt im Workflow. In diesem Modus wird jede Iteration des `Map` Status im Kontext des Workflows ausgeführt, der den `Map` Status enthält. Step Functions fügt die Ausführungshistorie dieser Iterationen zur Ausführungshistorie des übergeordneten Workflows hinzu.

In diesem Modus unterstützt der `Map` Status bis zu 40 gleichzeitige Iterationen.

Ein `Map` Status, der auf **Inline** gesetzt ist, wird als *Inline Map-Status* bezeichnet. Verwenden Sie den `Map` Status im Inline-Modus, wenn der Ausführungsverlauf Ihres Workflows 25.000 Einträge nicht überschreitet oder wenn Sie nicht mehr als 40 gleichzeitige Iterationen benötigen.

Eine Einführung in die Verwendung des *Inline-Map-Status* finden Sie im Tutorial. [Aktionen mit Inline Map wiederholen](tutorial-map-inline.md)

**Topics**
+ [Die wichtigsten Konzepte in diesem Thema](#key-concepts-inline-map)
+ [Statusfelder in der Inline-Map](#map-state-inline-additional-fields)
+ [Veraltete Felder](#map-state-inline-deprecated-fields)
+ [Beispiel für einen Inline-Map-Status (JSONPath)](#inline-map-state-examples)
+ [Beispiel für einen Inline-Map-Status mit `ItemSelector`](#inline-map-state-example-params)
+ [Eingabe- und Ausgabeverarbeitung im `Map` Inline-Status](#inline-map-state-output)

## Die wichtigsten Konzepte in diesem Thema
<a name="key-concepts-inline-map"></a>

**Inline-Modus**  
Ein Modus des Bundesstaates mit begrenzter Parallelität. `Map` In diesem Modus wird jede Iteration des `Map` Status im Kontext des Workflows ausgeführt, der den Status enthält. `Map` Step Functions fügt die Ausführungshistorie dieser Iterationen zur Ausführungshistorie des übergeordneten Workflows hinzu. `Map`Status werden standardmäßig im Inline-Modus ausgeführt.  
Dieser Modus akzeptiert nur ein JSON-Array als Eingabe und unterstützt bis zu 40 gleichzeitige Iterationen.

**Status der Inline-Karte**  
Ein `Map` Status, der auf den **Inline-Modus** eingestellt ist.

**Arbeitsablauf zuordnen**  
Die Gruppe von Schritten, die der `Map` Staat für jede Iteration ausführt.

**Status-Iteration zuordnen**  
Eine Wiederholung des innerhalb des Status definierten Workflows. `Map`

## Statusfelder in der Inline-Map
<a name="map-state-inline-additional-fields"></a>

Um den *Inline-Map-Status* in Ihren Workflows zu verwenden, geben Sie eines oder mehrere dieser Felder an. Sie geben diese Felder zusätzlich zu den [allgemeinen Statusfeldern](statemachine-structure.md#amazon-states-language-common-fields) an.

**`Type` (Erforderlich)**  
Legt den Zustandstyp fest, z. `Map` B.

**`ItemProcessor` (Erforderlich)**  
Enthält die folgenden JSON-Objekte, die den Verarbeitungsmodus und die Definition des `Map` Status angeben.  
Die Definition enthält die Schritte, die für die Verarbeitung der einzelnen Array-Elemente wiederholt werden müssen.  
+ `ProcessorConfig`— Ein optionales JSON-Objekt, das den Verarbeitungsmodus für den `Map` Status angibt. Dieses Objekt enthält das `Mode` Unterfeld. Dieses Feld ist standardmäßig auf`INLINE`, was den `Map` Status im Inline-Modus verwendet.

  In diesem Modus führt der Ausfall einer Iteration dazu, dass der `Map` Status fehlschlägt. Alle Iterationen werden beendet, wenn der `Map` Status ausfällt.
+ `StartAt`— Gibt eine Zeichenfolge an, die den ersten Status in einem Workflow angibt. Bei dieser Zeichenfolge wird zwischen Groß- und Kleinschreibung unterschieden und sie muss mit dem Namen eines der Statusobjekte übereinstimmen. Dieser Status wird für jedes Element im Datensatz zuerst ausgeführt. Jede Ausführungseingabe, die Sie für den `Map` Status bereitstellen, wird zuerst an den `StartAt` Status übergeben.
+ `States`[— Ein JSON-Objekt, das eine durch Kommas getrennte Gruppe von Zuständen enthält.](workflow-states.md) In diesem Objekt definieren Sie die. [Map workflow](#mapwflow)
**Anmerkung**  
Staaten innerhalb des `ItemProcessor` Feldes können nur ineinander übergehen. Kein Staat außerhalb des `ItemProcessor` Feldes kann in einen Zustand innerhalb des Feldes übergehen.
Das `ItemProcessor` Feld ersetzt das jetzt veraltete `Iterator` Feld. Sie können zwar weiterhin `Map` Bundesstaaten einbeziehen, die das `Iterator` Feld verwenden, wir empfehlen jedoch dringend, dieses Feld durch zu ersetzen. `ItemProcessor`  
[Step Functions Local](sfn-local.md) unterstützt das `ItemProcessor` Feld derzeit nicht. Wir empfehlen, das `Iterator` Feld mit Step Functions Local zu verwenden.

**`Items`( JSONata Nur optional)**  
Ein JSON-Array oder ein JSONata Ausdruck, der zu einem Array ausgewertet werden muss.

**`ItemsPath`( JSONPath Nur optional)**  
Gibt mithilfe der [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/)Syntax einen [Referenzpfad](amazon-states-language-paths.md#amazon-states-language-reference-paths) an. Dieser Pfad wählt den JSON-Knoten aus, der das Array von Elementen in der Statuseingabe enthält. Weitere Informationen finden Sie unter [ItemsPath ( JSONPath Nur Karte)](input-output-itemspath.md).

**`ItemSelector` (Optional)**  
Überschreibt die Werte der Eingabe-Array-Elemente, bevor sie an jede `Map` State-Iteration weitergegeben werden.  
In diesem Feld geben Sie eine gültige JSON-Datei an, die eine Sammlung von Schlüssel-Wert-Paaren enthält. Diese Paare können jedes der folgenden Elemente enthalten:  
+ Statische Werte, die Sie in Ihrer State-Machine-Definition definieren.
+ Werte, die mithilfe eines [Pfads](amazon-states-language-paths.md) aus der Statuseingabe ausgewählt wurden.
+ Werte, auf die über das [Kontextobjekt zugegriffen wird](input-output-contextobject.md).
 Weitere Informationen finden Sie unter [ItemSelector (Karte)](input-output-itemselector.md).  
Das `ItemSelector` Feld ersetzt das jetzt veraltete `Parameters` Feld. Sie können zwar weiterhin `Map` Bundesstaaten einbeziehen, die das `Parameters` Feld verwenden, wir empfehlen jedoch dringend, dieses Feld durch zu ersetzen. `ItemSelector`

**`MaxConcurrency` (Optional)**  
Gibt einen Integer-Wert an, der die Obergrenze für die Anzahl der `Map` State-Iterationen angibt, die parallel ausgeführt werden können. Ein `MaxConcurrency` Wert von 10 begrenzt den `Map` Status beispielsweise auf 10 gleichzeitige Iterationen.  
 In JSONata Bundesstaaten können Sie einen JSONata Ausdruck angeben, der eine Ganzzahl ergibt.  
Gleichzeitige Iterationen können begrenzt sein. In diesem Fall beginnen einige Iterationen erst, wenn die vorherigen Iterationen abgeschlossen sind. Die Wahrscheinlichkeit, dass dies passiert, steigt, wenn Ihr Eingabe-Array mehr als 40 Elemente enthält.  
Um eine höhere Parallelität zu erreichen, sollten Sie Folgendes in Betracht ziehen[Verteilter Modus](state-map-distributed.md):
Der Standardwert ist`0`, wodurch die Parallelität nicht begrenzt wird. Step Functions ruft Iterationen so gleichzeitig wie möglich auf.   
Ein `MaxConcurrency` Wert von `1` ruft `ItemProcessor` einmal für jedes Array-Element auf. Die Elemente im Array werden in der Reihenfolge verarbeitet, in der sie in der Eingabe erscheinen. Step Functions startet eine neue Iteration erst, wenn die vorherige Iteration abgeschlossen ist.

**`MaxConcurrencyPath`(Nur optional) JSONPath **  
Wenn Sie mithilfe eines Referenzpfads dynamisch aus der Statuseingabe einen maximalen Parallelitätswert angeben möchten, verwenden Sie`MaxConcurrencyPath`. Nach der Auflösung muss der Referenzpfad ein Feld auswählen, dessen Wert eine nicht negative Ganzzahl ist.  
Ein `Map` Status kann nicht sowohl als auch `MaxConcurrency` enthalten. `MaxConcurrencyPath`

**`ResultPath`( JSONPath Nur optional)**  
Gibt an, wo in der Eingabe die Ausgabe der Iterationen des `Map` Status gespeichert werden soll. Der Map-Status filtert dann die Eingabe gemäß den Angaben im [`OutputPath`](input-output-example.md#input-output-outputpath)Feld, sofern angegeben. Anschließend wird die gefilterte Eingabe als Ausgabe für den Status verwendet. Weitere Informationen finden Sie unter [Verarbeitung von Eingabe und Ausgabe](concepts-input-output-filtering.md).

**`ResultSelector`( JSONPath Nur optional)**  
Übergibt eine Sammlung von Schlüssel-Wert-Paaren, wobei die Werte entweder statisch sind oder aus dem Ergebnis ausgewählt werden. Weitere Informationen finden Sie unter [ResultSelector](input-output-inputpath-params.md#input-output-resultselector).  
Wenn der Status Parallel oder Map, den Sie in Ihren Zustandsmaschinen verwenden, ein Array von Arrays zurückgibt, können Sie diese mit dem [ResultSelector](input-output-inputpath-params.md#input-output-resultselector) Feld in ein flaches Array umwandeln. Weitere Informationen finden Sie unter [Ein Array von Arrays reduzieren](input-output-inputpath-params.md#flatten-array-of-arrays-result-selector).

**`Retry` (Optional)**  
Eine Reihe von Objekten, sogenannte Retriers, die eine Wiederholungsrichtlinie definieren. Staaten verwenden eine Wiederholungsrichtlinie, wenn sie auf Laufzeitfehler stoßen. Weitere Informationen finden Sie unter [Beispiele für Zustandsmaschinen mit Retry und Catch](concepts-error-handling.md#error-handling-examples).  
Wenn Sie Retrier für den *Inline-Map-Status* definieren, gilt die Wiederholungsrichtlinie für alle `Map` Status-Iterationen und nicht nur für fehlgeschlagene Iterationen. Ihr `Map` Status enthält beispielsweise zwei erfolgreiche Iterationen und eine fehlgeschlagene Iteration. Wenn Sie das `Retry` Feld für den Status definiert haben, gilt die Wiederholungsrichtlinie für alle drei `Map` `Map` Status-Iterationen und nicht nur für die fehlgeschlagene Iteration.

**`Catch` (Optional)**  
Ein Array von Objekten namens Catcher, die einen Fallback-Zustand definieren. Staaten führen einen Catcher aus, wenn sie auf Laufzeitfehler stoßen und entweder keine Wiederholungsrichtlinie haben oder ihre Wiederholungsrichtlinie erschöpft ist. Weitere Informationen finden Sie unter [Fallback-Zustände](concepts-error-handling.md#error-handling-fallback-states).

**`Output`(Nur optional) JSONata **  
Wird verwendet, um die Ausgabe des Status zu spezifizieren und zu transformieren. Wenn angegeben, überschreibt der Wert die Standardeinstellung für die Statusausgabe.   
Das Ausgabefeld akzeptiert jeden JSON-Wert (Objekt, Array, Zeichenfolge, Zahl, boolescher Wert, Null). Jeder Zeichenkettenwert, einschließlich solcher innerhalb von Objekten oder Arrays, wird so ausgewertet, als JSONata ob er von \$1%%\$1 Zeichen umgeben wäre.  
 Output akzeptiert auch direkt einen JSONata Ausdruck, zum Beispiel: „Output“: „\$1% jsonata expression%\$1“   
Weitere Informationen finden Sie unter [Transformieren von Daten mit JSONata In-Step-Funktionen](transforming-data.md).

** `Assign` (Optional)**  
Wird zum Speichern von Variablen verwendet. Das `Assign` Feld akzeptiert ein JSON-Objekt mit key/value Paaren, die Variablennamen und die ihnen zugewiesenen Werte definieren. Jeder Zeichenkettenwert, auch solche innerhalb von Objekten oder Arrays, wird so ausgewertet, JSONata als ob er von Zeichen umgeben `{% %}` wäre  
Weitere Informationen finden Sie unter [Übergeben von Daten zwischen Staaten mit Variablen](workflow-variables.md).

## Veraltete Felder
<a name="map-state-inline-deprecated-fields"></a>

**Anmerkung**  
Sie können zwar weiterhin `Map` Bundesstaaten einbeziehen, die die folgenden Felder verwenden, wir empfehlen jedoch dringend, sie durch `ItemProcessor` und `Parameters` durch zu `Iterator` ersetzen. `ItemSelector`

** `Iterator`**  
Gibt ein JSON-Objekt an, das eine Reihe von Schritten definiert, die jedes Element des Arrays verarbeiten.

**`Parameters`**  
Gibt eine Sammlung von Schlüssel-Wert-Paaren an, wobei die Werte jeden der folgenden Werte enthalten können:  
+ Statische Werte, die Sie in Ihrer State-Machine-Definition definieren.
+ Werte, die mithilfe eines [Pfads](amazon-states-language-paths.md) aus der Eingabe ausgewählt wurden.

## Beispiel für einen Inline-Map-Status (JSONPath)
<a name="inline-map-state-examples"></a>

Betrachten Sie die folgenden Eingabedaten für einen `Map` Status, der im **Inlinemodus** ausgeführt wird.

```
{
  "ship-date": "2016-03-14T01:59:00Z",
  "detail": {
    "delivery-partner": "UQS",
    "shipped": [
      { "prod": "R31", "dest-code": 9511, "quantity": 1344 },
      { "prod": "S39", "dest-code": 9511, "quantity": 40 },
      { "prod": "R31", "dest-code": 9833, "quantity": 12 },
      { "prod": "R40", "dest-code": 9860, "quantity": 887 },
      { "prod": "R40", "dest-code": 9511, "quantity": 1220 }
    ]
  }
}
```

Ausgehend von der vorherigen Eingabe ruft der `Map` Status im folgenden Beispiel eine AWS Lambda Funktion auf, die für jedes Element des Arrays im `shipped` Feld `ship-val` einmal benannt wurde. 

```
"Validate All": {
    "Type": "Map",
    "InputPath": "$.detail",
    "ItemProcessor": {
        "ProcessorConfig": {
            "Mode": "INLINE"
        },
        "StartAt": "Validate",
        "States": {
            "Validate": {
                "Type": "Task",
                "Resource": "arn:aws:states:::lambda:invoke",
                "OutputPath": "$.Payload",
                "Parameters": {
                    "FunctionName": "arn:aws:lambda:us-east-2:account-id:function:ship-val:$LATEST"
                },
                "End": true
            }
        }
    },
    "End": true,
    "ResultPath": "$.detail.shipped",
    "ItemsPath": "$.shipped"
}
```

Jede Iteration des `Map` Status sendet ein Element im Array, das mit dem [`ItemsPath`](input-output-itemspath.md)Feld ausgewählt wurde, als Eingabe für die `ship-val` Lambda-Funktion. Die folgenden Werte sind ein Beispiel für Eingaben, die der `Map` Staat an einen Aufruf der Lambda-Funktion sendet:

```
{
  "prod": "R31",
  "dest-code": 9511,
  "quantity": 1344
}
```

Wenn Sie fertig sind, ist die Ausgabe des `Map`-Zustands ein JSON-Array, wobei jedes Element die Ausgabe einer Iteration ist. In diesem Fall enthält dieses Array die Ausgabe der `ship-val` Lambda-Funktion.

## Beispiel für einen Inline-Map-Status mit `ItemSelector`
<a name="inline-map-state-example-params"></a>

Angenommen, die `ship-val` Lambda-Funktion im vorherigen Beispiel benötigt auch Informationen über den Kurierdienst der Sendung. Diese Informationen werden zusätzlich zu den Elementen im Array für jede Iteration bereitgestellt. Sie können Informationen aus der Eingabe zusammen mit Informationen einbeziehen, die für die aktuelle Iteration des `Map` Status spezifisch sind. Beachten Sie das `ItemSelector` Feld im folgenden Beispiel:

```
"Validate-All": {
  "Type": "Map",
  "InputPath": "$.detail",
  "ItemsPath": "$.shipped",
  "MaxConcurrency": 0,
  "ResultPath": "$.detail.shipped",
  "ItemSelector": {
    "parcel.$": "$$.Map.Item.Value",
    "courier.$": "$.delivery-partner"
  },
  "ItemProcessor": {
    "StartAt": "Validate",
    "States": {
      "Validate": {
        "Type": "Task",
	"Resource": "arn:aws:lambda:region:account-id:function:ship-val",
        "End": true
      }
    }
  },
  "End": true
}
```

Der `ItemSelector` Block ersetzt die Eingabe für die Iterationen durch einen JSON-Knoten. Dieser Knoten enthält sowohl die aktuellen Artikeldaten aus dem [Context-Objekt](input-output-contextobject.md#contextobject-map) als auch die Kurierinformationen aus dem Feld der `Map` Statuseingabe. `delivery-partner` Das Folgende ist ein Beispiel für die Eingabe einer einzelnen Iteration. Der `Map` Staat übergibt diese Eingabe an einen Aufruf der `ship-val` Lambda-Funktion.

```
{
  "parcel": {
    "prod": "R31",
    "dest-code": 9511,
    "quantity": 1344
   },
   "courier": "UQS"
}
```

Im vorherigen Beispiel für einen *Inline-Map-Status* erzeugt das `ResultPath` Feld eine Ausgabe im gleichen Format wie die Eingabe. Es überschreibt das `detail.shipped` Feld jedoch mit einem Array, in dem jedes Element die Ausgabe des `ship-val` Lambda-Aufrufs jeder Iteration ist.

Weitere Informationen zur Verwendung des *Inline Map-Statusstatus* und seiner Felder finden Sie im Folgenden.
+ [Aktionen mit Inline Map wiederholen](tutorial-map-inline.md)
+ [Eingabe und Ausgabe in Step Functions verarbeiten](concepts-input-output-filtering.md)
+ [ItemsPath ( JSONPath Nur Karte)](input-output-itemspath.md)
+ [Kontextobjektdaten für Kartenstatus](input-output-contextobject.md#contextobject-map)

## Eingabe- und Ausgabeverarbeitung im `Map` Inline-Status
<a name="inline-map-state-output"></a>

[`InputPath`](input-output-inputpath-params.md#input-output-inputpath)Wählt für einen bestimmten `Map` Status eine Teilmenge der Eingaben des Status aus.

Die Eingabe eines `Map` Status muss ein JSON-Array enthalten. Der `Map` Status führt den `ItemProcessor` Abschnitt einmal für jedes Element im Array aus. Wenn Sie das [`ItemsPath`](input-output-itemspath.md)Feld angeben, wählt der `Map` Status aus, an welcher Stelle in der Eingabe das Array gefunden werden soll, über das iteriert werden soll. Bei fehlender Angabe ist der Wert von `ItemsPath` `$`, und der Abschnitt `ItemProcessor` erwartet, dass das Array die einzige Eingabe ist. Wenn Sie das `ItemsPath` Feld angeben, muss es sich bei seinem Wert um einen [Referenzpfad handeln.](amazon-states-language-paths.md#amazon-states-language-reference-paths) Der `Map` Staat wendet diesen Pfad auf die effektive Eingabe an, nachdem er den angewendet hat`InputPath`. Der `ItemsPath` muss ein Feld identifizieren, dessen Wert ein JSON-Array ist.

Die Eingabe für jede Iteration ist standardmäßig ein einzelnes Element des Array-Feldes, das durch den `ItemsPath` Wert identifiziert wird. Sie können diesen Wert mit dem `ItemSelector (Karte)` Feld überschreiben.

Wenn Sie fertig sind, ist die Ausgabe des `Map`-Zustands ein JSON-Array, wobei jedes Element die Ausgabe einer Iteration ist.

 Weitere Informationen zu Inline-Map-Statuseingaben und -ausgaben finden Sie im Folgenden:
+ [Aktionen mit Inline Map wiederholen](tutorial-map-inline.md)
+ [Beispiel für einen Inline-Map-Status mit `ItemSelector`](#inline-map-state-example-params)
+ [Eingabe und Ausgabe in Step Functions verarbeiten](concepts-input-output-filtering.md)
+ [Kontextobjektdaten für Kartenstatus](input-output-contextobject.md#contextobject-map)
+ [Daten aus einer Warteschlange mit einem Map-Status in Step Functions verarbeiten](sample-map-state.md)

# Verwenden von Map State im verteilten Modus für umfangreiche parallel Workloads in Step Functions
<a name="state-map-distributed"></a>

**Status verwalten und Daten transformieren**  
Erfahren Sie mehr über das [Übergeben von Daten zwischen Zuständen mithilfe von Variablen](workflow-variables.md) und das [Transformieren von Daten mit JSONata](transforming-data.md).

Mit Step Functions können Sie umfangreiche parallel Workloads orchestrieren, um Aufgaben wie die On-Demand-Verarbeitung halbstrukturierter Daten auszuführen. Mit diesen parallel Workloads können Sie große Datenquellen, die in Amazon S3 gespeichert sind, gleichzeitig verarbeiten. Sie könnten beispielsweise eine einzelne JSON- oder CSV-Datei verarbeiten, die große Datenmengen enthält. Oder Sie könnten eine große Menge von Amazon S3 S3-Objekten verarbeiten. 

Um eine umfangreiche parallel Arbeitslast in Ihren Workflows einzurichten, fügen Sie einen `Map` Status im Modus Verteilt hinzu. Der *Kartenstatus* verarbeitet Elemente in einem Datensatz gleichzeitig. Ein `Map` Status, der auf **Distributed** gesetzt ist, wird als *Distributed Map-Status* bezeichnet. Im *Modus „Verteilt“* ermöglicht der `Map` Status eine Verarbeitung mit hoher Parallelität. Im verteilten Modus verarbeitet der `Map` Status die Elemente in der Datenmenge in Iterationen, die als *untergeordnete* Workflow-Ausführungen bezeichnet werden. Sie können die Anzahl der untergeordneten Workflow-Ausführungen angeben, die parallel ausgeführt werden können. Jede Ausführung eines untergeordneten Workflows hat einen eigenen Ausführungsverlauf, der von dem des übergeordneten Workflows getrennt ist. Wenn Sie nichts angeben, führt Step Functions 10.000 parallele Ausführungen untergeordneter Workflows parallel aus.

In der folgenden Abbildung wird erklärt, wie Sie umfangreiche parallel Workloads in Ihren Workflows einrichten können.

![\[Diagramm zur Veranschaulichung des Konzepts der Orchestrierung großer parallel Workloads.\]](http://docs.aws.amazon.com/de_de/step-functions/latest/dg/images/autobahn-concept.png)


**Lernen Sie in einem Workshop**  
Erfahren Sie, wie serverlose Technologien wie Step Functions und Lambda die Verwaltung und Skalierung vereinfachen, undifferenzierte Aufgaben auslagern und die Herausforderungen der groß angelegten verteilten Datenverarbeitung bewältigen können. Unterwegs werden Sie mit verteilter Karte arbeiten, um eine hohe Parallelität der Verarbeitung zu gewährleisten. In dem Workshop werden auch bewährte Verfahren zur Optimierung Ihrer Arbeitsabläufe sowie praktische Anwendungsfälle für die Bearbeitung von Schadensfällen, das Scannen von Sicherheitslücken und die Monte-Carlo-Simulation vorgestellt.  
**Workshop: [Datenverarbeitung im großen Maßstab mit Step Functions](https://catalog.workshops.aws/serverless-data-processing)**

**Topics**
+ [Wichtige Begriffe](#dist-map-orchestrate-parallel-workloads-key-terms)
+ [Definition des Status einer verteilten Karte](#use-map-state-dist-mode)
+ [Berechtigungen zum Ausführen von Distributed Map](#dist-map-permissions)
+ [Felder für den Status von Distributed Map](#map-state-distributed-additional-fields)
+ [Schwellenwerte für Fehler bei Distributed Map](#maprun-fail-threshold)
+ [Erfahren Sie mehr über verteilte Karten](#dist-map-next-steps)

## Wichtige Begriffe
<a name="dist-map-orchestrate-parallel-workloads-key-terms"></a>

**Verteilter Modus**  
Ein Verarbeitungsmodus des [Kartenstatus](state-map.md). In diesem Modus wird jede Iteration des `Map` Status als untergeordnete Workflow-Ausführung ausgeführt, wodurch eine hohe Parallelität ermöglicht wird. Jede untergeordnete Workflow-Ausführung hat ihren eigenen Ausführungsverlauf, der vom Ausführungsverlauf des übergeordneten Workflows getrennt ist. Dieser Modus unterstützt das Lesen von Eingaben aus großen Amazon S3 S3-Datenquellen. 

**Status der verteilten Karte**  
Ein Map-Status, der auf den [Modus **Verteilte** Verarbeitung](state-map.md#concepts-map-process-modes) gesetzt ist.

**Arbeitsablauf zuordnen**  
Eine Reihe von Schritten, die ein `Map` Bundesstaat ausführt.

**Übergeordneter Arbeitsablauf**  
Ein Workflow, der einen oder mehrere Distributed Map-Status enthält.

**Ausführung eines untergeordneten Workflows**  
Eine Iteration des *Distributed-Map-Status*. Die Ausführung eines untergeordneten Workflows hat einen eigenen Ausführungsverlauf, der vom Ausführungsverlauf des übergeordneten Workflows getrennt ist.

**Ordnen Sie Run zu**  
Wenn Sie einen `Map` Status im verteilten Modus ausführen, erstellt Step Functions eine Map Run-Ressource. Ein Map Run bezieht sich auf eine Reihe von untergeordneten Workflow-Ausführungen, die im *Status Distributed Map* gestartet werden, sowie auf die Laufzeiteinstellungen, die diese Ausführungen steuern. Step Functions weist Ihrem Map Run einen Amazon-Ressourcennamen (ARN) zu. Sie können einen Map Run in der Step Functions-Konsole untersuchen. Sie können die `[DescribeMapRun](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeMapRun.html)` API-Aktion auch aufrufen.  
Untergeordnete Workflow-Ausführungen eines Map Run senden Metriken an CloudWatch;. Für diese Metriken wird ein mit State Machine beschrifteter ARN im folgenden Format angezeigt:  
 `arn:partition:states:region:account:stateMachine:stateMachineName/MapRunLabel or UUID`   
Weitere Informationen finden Sie unter [Map Runs anzeigen](concepts-examine-map-run.md).

## Beispiel für eine Status-Definition von Distributed Map () JSONPath
<a name="use-map-state-dist-mode"></a>

Verwenden Sie den `Map` Status im Modus Verteilt, wenn Sie umfangreiche parallel Workloads orchestrieren müssen, die eine beliebige Kombination der folgenden Bedingungen erfüllen:
+ Die Größe Ihres Datensatzes übersteigt 256 KiB.
+ Der Verlauf der Ausführungsereignisse des Workflows würde 25.000 Einträge überschreiten.
+ Sie benötigen eine Parallelität von mehr als 40 gleichzeitigen Iterationen.

Das folgende Beispiel für die *Zustandsdefinition von Distributed Map* spezifiziert den Datensatz als CSV-Datei, die in einem Amazon S3 S3-Bucket gespeichert ist. Es spezifiziert auch eine Lambda-Funktion, die die Daten in jeder Zeile der CSV-Datei verarbeitet. Da in diesem Beispiel eine CSV-Datei verwendet wird, wird auch die Position der CSV-Spaltenüberschriften angegeben. Die vollständige State-Machine-Definition dieses Beispiels finden Sie im Tutorial [Kopieren umfangreicher CSV-Daten mit Distributed Map](tutorial-map-distributed.md).

```
{
  "Map": {
    "Type": "Map",
    "ItemReader": {
      "ReaderConfig": {
        "InputType": "CSV",
        "CSVHeaderLocation": "FIRST_ROW"
      },
      "Resource": "arn:aws:states:::s3:getObject",
      "Parameters": {
        "Bucket": "amzn-s3-demo-bucket",
        "Key": "csv-dataset/ratings.csv"
      }
    },
    "ItemProcessor": {
      "ProcessorConfig": {
        "Mode": "DISTRIBUTED",
        "ExecutionType": "EXPRESS"
      },
      "StartAt": "LambdaTask",
      "States": {
        "LambdaTask": {
          "Type": "Task",
          "Resource": "arn:aws:states:::lambda:invoke",
          "OutputPath": "$.Payload",
          "Parameters": {
            "Payload.$": "$",
            "FunctionName": "arn:aws:lambda:us-east-2:account-id:function:processCSVData"
          },
          "End": true
        }
      }
    },
    "Label": "Map",
    "End": true,
    "ResultWriter": {
      "Resource": "arn:aws:states:::s3:putObject",
      "Parameters": {
        "Bucket": "amzn-s3-demo-destination-bucket",
        "Prefix": "csvProcessJobs"
      }
    }
  }
}
```

## Berechtigungen zum Ausführen von Distributed Map
<a name="dist-map-permissions"></a>

Wenn Sie einen *Distributed Map-Status* in Ihre Workflows aufnehmen, benötigt Step Functions die entsprechenden Berechtigungen, damit die Zustandsmaschinenrolle die `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` API-Aktion für den *Distributed-Map-Status* aufrufen kann.

Das folgende Beispiel für eine IAM-Richtlinie gewährt Ihrer State-Machine-Rolle die geringsten Rechte, die für die Ausführung des Status *Distributed Map* erforderlich sind.

**Anmerkung**  
Stellen Sie sicher, dass Sie den Status `stateMachineName` durch den Namen des Zustandsmaschinen ersetzen, in dem Sie den *Status Distributed Map* verwenden. Beispiel, `arn:aws:states:region:account-id:stateMachine:mystateMachine`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:StartExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachineName"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution"
      ],
      "Resource": "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*"
    }
  ]
}
```

 Darüber hinaus müssen Sie sicherstellen, dass Sie über die geringsten Rechte verfügen, die für den Zugriff auf die im *Status Distributed Map* verwendeten AWS Ressourcen erforderlich sind, z. B. Amazon S3 S3-Buckets. Weitere Informationen finden Sie unter [IAM-Richtlinien für die Verwendung von Distributed Map-Status](iam-policies-eg-dist-map.md).

## Felder für den Status von Distributed Map
<a name="map-state-distributed-additional-fields"></a>

Um den *Status „Distributed Map*“ in Ihren Workflows zu verwenden, geben Sie eines oder mehrere dieser Felder an. Sie geben diese Felder zusätzlich zu den [allgemeinen Statusfeldern](statemachine-structure.md#amazon-states-language-common-fields) an.

**`Type` (Erforderlich)**  
Legt den Zustandstyp fest, z. `Map` B.

**`ItemProcessor` (Erforderlich)**  
Enthält die folgenden JSON-Objekte, die den Verarbeitungsmodus und die Definition des `Map` Status angeben.  
+ <a name="childworkflows"></a>`ProcessorConfig`— JSON-Objekt, das den Modus für die Verarbeitung von Elementen spezifiziert, mit den folgenden Unterfeldern:
  + `Mode`— Auf einstellen, **DISTRIBUTED** um den `Map` Status im verteilten Modus zu verwenden.
**Warnung**  
Der verteilte Modus wird in Standard-Workflows unterstützt, in Express-Workflows jedoch nicht.
  + `ExecutionType`— Gibt den Ausführungstyp für den Map-Workflow entweder als **STANDARD** oder **EXPRESS** an. Sie müssen dieses Feld angeben, wenn Sie es `DISTRIBUTED` für das `Mode` Unterfeld angegeben haben. Weitere Informationen zu Workflowtypen finden Sie unter[Workflowtyp in Step Functions auswählen](choosing-workflow-type.md).
+ `StartAt`— Gibt eine Zeichenfolge an, die den ersten Status in einem Workflow angibt. Bei dieser Zeichenfolge wird zwischen Groß- und Kleinschreibung unterschieden und sie muss mit dem Namen eines der Statusobjekte übereinstimmen. Dieser Status wird für jedes Element im Datensatz zuerst ausgeführt. Jede Ausführungseingabe, die Sie für den `Map` Status bereitstellen, wird zuerst an den `StartAt` Status übergeben.
+ `States`[— Ein JSON-Objekt, das eine durch Kommas getrennte Gruppe von Zuständen enthält.](workflow-states.md) In diesem Objekt definieren Sie die. [Map workflow](state-map-inline.md#mapwflow)

**`ItemReader`**  
Gibt einen Datensatz und seinen Speicherort an. Der `Map` Staat erhält seine Eingabedaten aus dem angegebenen Datensatz.  
Im verteilten Modus können Sie entweder eine JSON-Nutzlast, die aus einem früheren Status übergeben wurde, oder eine umfangreiche Amazon S3 S3-Datenquelle als Datensatz verwenden. Weitere Informationen finden Sie unter [ItemReader (Karte)](input-output-itemreader.md).

**`Items`( JSONata Nur optional)**  
Ein JSON-Array, ein JSON-Objekt oder ein JSONata Ausdruck, der zu einem Array oder Objekt ausgewertet werden muss.

**`ItemsPath`( JSONPath Nur optional)**  
Gibt einen [Referenzpfad](amazon-states-language-paths.md#amazon-states-language-reference-paths) an, der anhand der [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/)Syntax den JSON-Knoten auswählt, der ein Array von Elementen oder ein Objekt mit Schlüssel-Wert-Paaren innerhalb der Statuseingabe enthält.  
Im verteilten Modus geben Sie dieses Feld nur an, wenn Sie ein JSON-Array oder ein JSON-Objekt aus einem vorherigen Schritt als Statuseingabe verwenden. Weitere Informationen finden Sie unter [ItemsPath ( JSONPath Nur Karte)](input-output-itemspath.md).

**`ItemSelector`( JSONPath Nur optional)**  
Überschreibt die Werte einzelner Datensatzelemente, bevor sie an jede `Map` State-Iteration weitergegeben werden.   
In diesem Feld geben Sie eine gültige JSON-Eingabe an, die eine Sammlung von Schlüssel-Wert-Paaren enthält. Bei diesen Paaren kann es sich entweder um statische Werte handeln, die Sie in Ihrer Zustandsmaschinen-Definition definieren, um Werte, die mithilfe eines [Pfads](amazon-states-language-paths.md) aus der Zustandseingabe ausgewählt wurden, oder um Werte, auf die über das [Kontextobjekt](input-output-contextobject.md) zugegriffen wird. Weitere Informationen finden Sie unter [ItemSelector (Karte)](input-output-itemselector.md).

**`ItemBatcher` (Optional)**  
Gibt an, dass die Datensatzelemente stapelweise verarbeitet werden sollen. Jede untergeordnete Workflow-Ausführung erhält dann einen Stapel dieser Elemente als Eingabe. Weitere Informationen finden Sie unter [ItemBatcher (Karte)](input-output-itembatcher.md).

**`MaxConcurrency` (Optional)**  
Gibt die Anzahl der untergeordneten Workflow-Ausführungen an, die parallel ausgeführt werden können. Der Interpreter erlaubt nur bis zu der angegebenen Anzahl parallel untergeordneter Workflow-Ausführungen. Wenn Sie keinen Parallelitätswert angeben oder ihn auf Null setzen, schränkt Step Functions die Parallelität nicht ein und führt 10.000 parallel untergeordnete Workflow-Ausführungen aus. In JSONata Bundesstaaten können Sie einen JSONata Ausdruck angeben, der eine Ganzzahl ergibt.  
Sie können zwar ein höheres Parallelitätslimit für parallel untergeordnete Workflow-Ausführungen angeben, wir empfehlen jedoch, die Kapazität eines AWS Downstream-Dienstes nicht zu überschreiten, z. B. AWS Lambda

**`MaxConcurrencyPath`(Nur optional) JSONPath **  
Wenn Sie mithilfe eines Referenzpfads dynamisch aus der Statuseingabe einen maximalen Parallelitätswert angeben möchten, verwenden Sie`MaxConcurrencyPath`. Nach der Auflösung muss der Referenzpfad ein Feld auswählen, dessen Wert eine nicht negative Ganzzahl ist.  
Ein `Map` Status kann nicht sowohl als auch `MaxConcurrency` enthalten. `MaxConcurrencyPath`

**`ToleratedFailurePercentage` (Optional)**  
Definiert den Prozentsatz fehlgeschlagener Elemente, der in einem Map-Run toleriert werden soll. Der Map Run schlägt automatisch fehl, wenn er diesen Prozentsatz überschreitet. Step Functions berechnet den Prozentsatz der fehlgeschlagenen Elemente als Ergebnis der Gesamtzahl der fehlgeschlagenen Elemente oder der Zeitüberschreitung dividiert durch die Gesamtzahl der Elemente. Sie müssen einen Wert zwischen Null und 100 angeben. Weitere Informationen finden Sie unter [Festlegung von Ausfallschwellenwerten für Distributed Map-Zustände in Step Functions](#maprun-fail-threshold).  
 In JSONata Bundesstaaten können Sie einen JSONata Ausdruck angeben, der zu einer Ganzzahl ausgewertet wird.

**`ToleratedFailurePercentagePath`( JSONPath Nur optional)**  
Wenn Sie einen prozentualen Wert für tolerierte Fehler dynamisch aus der Statuseingabe mithilfe eines Referenzpfads angeben möchten, verwenden Sie`ToleratedFailurePercentagePath`. Wenn das Problem gelöst ist, muss der Referenzpfad ein Feld auswählen, dessen Wert zwischen Null und 100 liegt.

**`ToleratedFailureCount` (Optional)**  
Definiert die Anzahl der fehlgeschlagenen Elemente, die in einem Map-Run toleriert werden sollen. Der Map Run schlägt automatisch fehl, wenn er diese Anzahl überschreitet. Weitere Informationen finden Sie unter [Festlegung von Ausfallschwellenwerten für Distributed Map-Zustände in Step Functions](#maprun-fail-threshold).  
 In JSONata Bundesstaaten können Sie einen JSONata Ausdruck angeben, der eine Ganzzahl ergibt.

**`ToleratedFailureCountPath`( JSONPath Nur optional)**  
Wenn Sie einen Wert für die Anzahl tolerierter Fehler dynamisch aus der Statuseingabe mithilfe eines Referenzpfads angeben möchten, verwenden Sie`ToleratedFailureCountPath`. Wenn das Problem gelöst ist, muss der Referenzpfad ein Feld auswählen, dessen Wert eine nicht negative Ganzzahl ist.

**`Label` (Optional)**  
Eine Zeichenfolge, die einen `Map` Bundesstaat eindeutig identifiziert. Für jeden Map Run fügt Step Functions das Label zum Map Run-ARN hinzu. Im Folgenden finden Sie ein Beispiel für einen Map Run-ARN mit einem benutzerdefinierten Label namens`demoLabel`:  

```
arn:aws:states:region:account-id:mapRun:demoWorkflow/demoLabel:3c39a231-69bb-3d89-8607-9e124eddbb0b
```
Wenn Sie kein Label angeben, generiert Step Functions automatisch ein eindeutiges Label.   
Beschriftungen dürfen nicht länger als 40 Zeichen sein, müssen innerhalb einer State-Machine-Definition eindeutig sein und dürfen keines der folgenden Zeichen enthalten:  
+ Leerraum
+ Platzhalterzeichen () `? *`
+ Klammerzeichen () `< > { } [ ]`
+ Sonderzeichen (`: ; , \ | ^ ~ $ # % & ` "`)
+ Steuerzeichen (`\\u0000`- `\\u001f` oder `\\u007f` -`\\u009f`).
Step Functions akzeptiert Namen für Zustandsmaschinen, Ausführungen, Aktivitäten und Labels, die Nicht-ASCII-Zeichen enthalten. Da solche Zeichen Amazon CloudWatch daran hindern, Daten zu protokollieren, empfehlen wir, nur ASCII-Zeichen zu verwenden, damit Sie die Step Functions Functions-Metriken verfolgen können.

**`ResultWriter` (Optional)**  
Gibt den Amazon S3 S3-Speicherort an, an den Step Functions alle untergeordneten Workflow-Ausführungsergebnisse schreibt.  
Step Functions konsolidiert alle Ausführungsdaten des untergeordneten Workflows, wie z. B. Ausführungseingabe und -ausgabe, ARN und Ausführungsstatus. Anschließend werden Ausführungen mit demselben Status in die entsprechenden Dateien am angegebenen Amazon S3 S3-Speicherort exportiert. Weitere Informationen finden Sie unter [ResultWriter (Karte)](input-output-resultwriter.md).  
Wenn Sie die `Map` Statusergebnisse nicht exportieren, wird ein Array mit allen Ergebnissen der untergeordneten Workflow-Ausführung zurückgegeben. Beispiel:  

```
[1, 2, 3, 4, 5]
```

**`ResultPath`( JSONPath Nur optional)**  
Gibt an, wo in der Eingabe die Ausgabe der Iterationen platziert werden soll. Die Eingabe wird dann gemäß den Angaben des [`OutputPath`](input-output-example.md#input-output-outputpath)Felds gefiltert, falls vorhanden, bevor sie als Ausgabe für den Status übergeben wird. Weitere Informationen finden Sie unter [Verarbeitung von Eingabe und Ausgabe](concepts-input-output-filtering.md).

**`ResultSelector` (Optional)**  
Übergibt eine Sammlung von Schlüssel-Wert-Paaren, wobei die Werte statisch sind oder aus dem Ergebnis ausgewählt werden. Weitere Informationen finden Sie unter [ResultSelector](input-output-inputpath-params.md#input-output-resultselector).  
Wenn der Status Parallel oder Map, den Sie in Ihren Zustandsmaschinen verwenden, ein Array von Arrays zurückgibt, können Sie diese mit dem Feld in ein flaches Array umwandeln. [ResultSelector](input-output-inputpath-params.md#input-output-resultselector) Weitere Informationen finden Sie unter [Ein Array von Arrays reduzieren](input-output-inputpath-params.md#flatten-array-of-arrays-result-selector).

**`Retry` (Optional)**  
Eine Reihe von Objekten, sogenannte Retriers, die eine Wiederholungsrichtlinie definieren. Eine Ausführung verwendet die Wiederholungsrichtlinie, wenn der Status auf Laufzeitfehler stößt. Weitere Informationen finden Sie unter [Beispiele für Zustandsmaschinen mit Retry und Catch](concepts-error-handling.md#error-handling-examples).  
Wenn Sie Retrier für den *Status Distributed Map* definieren, gilt die Wiederholungsrichtlinie für alle untergeordneten Workflow-Ausführungen, die im Status gestartet wurden. `Map` Stellen Sie sich beispielsweise vor, Ihr `Map` Bundesstaat hat drei untergeordnete Workflow-Ausführungen gestartet, von denen eine fehlschlägt. Wenn der Fehler auftritt, verwendet die Ausführung das `Retry` Feld, sofern definiert, für den `Map` Status. Die Wiederholungsrichtlinie gilt für alle untergeordneten Workflow-Ausführungen und nicht nur für die fehlgeschlagene Ausführung. Wenn eine oder mehrere untergeordnete Workflow-Ausführungen fehlschlagen, schlägt der Map Run fehl.  
Wenn Sie einen `Map` Status erneut versuchen, wird ein neuer Map Run erstellt.

**`Catch` (Optional)**  
Ein Array von Objekten namens Catcher, die einen Fallback-Zustand definieren. Step Functions verwendet die in definierten Catcher, `Catch` wenn der Status auf Laufzeitfehler stößt. Wenn ein Fehler auftritt, verwendet die Ausführung zunächst alle in definierten Retrier. `Retry` Wenn die Wiederholungsrichtlinie nicht definiert oder ausgeschöpft ist, verwendet die Ausführung ihre Catcher, sofern sie definiert sind. Weitere Informationen finden Sie unter [Fallback-Zustände](concepts-error-handling.md#error-handling-fallback-states).

**`Output`(Nur optional) JSONata **  
Wird verwendet, um die Ausgabe des Status zu spezifizieren und zu transformieren. Wenn angegeben, überschreibt der Wert die Standardeinstellung für die Statusausgabe.   
Das Ausgabefeld akzeptiert jeden JSON-Wert (Objekt, Array, Zeichenfolge, Zahl, boolescher Wert, Null). Jeder Zeichenkettenwert, einschließlich solcher innerhalb von Objekten oder Arrays, wird so ausgewertet, als JSONata ob er von \$1%%\$1 Zeichen umgeben wäre.  
 Output akzeptiert auch direkt einen JSONata Ausdruck, zum Beispiel: „Output“: „\$1% jsonata expression%\$1“   
Weitere Informationen finden Sie unter [Transformieren von Daten mit JSONata In-Step-Funktionen](transforming-data.md).

** `Assign` (Optional)**  
Wird zum Speichern von Variablen verwendet. Das `Assign` Feld akzeptiert ein JSON-Objekt mit key/value Paaren, die Variablennamen und die ihnen zugewiesenen Werte definieren. Jeder Zeichenkettenwert, auch solche innerhalb von Objekten oder Arrays, wird so ausgewertet, JSONata als ob er von Zeichen umgeben `{% %}` wäre  
Weitere Informationen finden Sie unter [Übergeben von Daten zwischen Staaten mit Variablen](workflow-variables.md).

## Festlegung von Ausfallschwellenwerten für Distributed Map-Zustände in Step Functions
<a name="maprun-fail-threshold"></a>

Wenn Sie umfangreiche parallel Workloads orchestrieren, können Sie auch einen Schwellenwert für tolerierte Fehler definieren. Mit diesem Wert können Sie die maximale Anzahl oder den Prozentsatz fehlgeschlagener Elemente als Schwellenwert für einen [Kartenlauf](concepts-examine-map-run.md) angeben. Je nachdem, welchen Wert Sie angeben, schlägt Ihr Map Run automatisch fehl, wenn er den Schwellenwert überschreitet. Wenn Sie beide Werte angeben, schlägt der Workflow fehl, wenn einer der Werte überschritten wird.

Wenn Sie einen Schwellenwert angeben, können Sie bei einer bestimmten Anzahl von Elementen Fehler beheben, bevor der gesamte Map Run fehlschlägt. Step Functions gibt einen `States.ExceedToleratedFailureThreshold` Fehler zurück, wenn der Map Run fehlschlägt, weil der angegebene Schwellenwert überschritten wird.

**Anmerkung**  
Step Functions kann weiterhin untergeordnete Workflows in einem Map Run ausführen, auch wenn der tolerierte Fehlerschwellenwert überschritten wurde, aber bevor der Map Run fehlschlägt.

Um den Schwellenwert in Workflow Studio anzugeben, wählen Sie unter **Zusätzliche Konfiguration** im Feld **Runtime-Einstellungen** die Option **Schwellenwert für tolerierte Fehler festlegen** aus.

**Prozentsatz der tolerierten Fehler**  
Definiert den Prozentsatz fehlgeschlagener Elemente, der toleriert werden soll. Ihr Map Run schlägt fehl, wenn dieser Wert überschritten wird. Step Functions berechnet den Prozentsatz der fehlgeschlagenen Elemente als Ergebnis der Gesamtzahl der fehlgeschlagenen Elemente oder der Zeitüberschreitung dividiert durch die Gesamtzahl der Elemente. Sie müssen einen Wert zwischen Null und 100 angeben. Der Standardwert für den Prozentsatz ist Null, was bedeutet, dass der Workflow fehlschlägt, wenn eine der untergeordneten Workflow-Ausführungen fehlschlägt oder ein Timeout auftritt. Wenn Sie den Prozentsatz auf 100 angeben, schlägt der Workflow auch dann nicht fehl, wenn alle untergeordneten Workflow-Ausführungen fehlschlagen.   
Alternativ können Sie den Prozentsatz als [Referenzpfad](amazon-states-language-paths.md#amazon-states-language-reference-paths) zu einem vorhandenen Schlüssel-Wert-Paar in Ihrer *Distributed Map-Statuseingabe* angeben. Dieser Pfad muss zur Laufzeit in eine positive Ganzzahl zwischen 0 und 100 aufgelöst werden. Sie geben den Referenzpfad im `ToleratedFailurePercentagePath` Unterfeld an.  
Beispielsweise angesichts der folgenden Eingabe:  

```
{
  "percentage": 15
}
```
Sie können den Prozentsatz mithilfe eines Referenzpfads zu dieser Eingabe wie folgt angeben:  

```
{
  ...
  "Map": {
    "Type": "Map",
    ...
    "ToleratedFailurePercentagePath": "$.percentage"
    ...
  }
}
```
Sie können entweder `ToleratedFailurePercentage` oder`ToleratedFailurePercentagePath`, aber nicht beide in Ihrer *Statusdefinition für Distributed Map* angeben.

**Anzahl tolerierter Fehler**  
Definiert die Anzahl der zu tolerierenden fehlgeschlagenen Elemente. Ihr Map Run schlägt fehl, wenn dieser Wert überschritten wird.   
Alternativ können Sie die Anzahl als [Referenzpfad](amazon-states-language-paths.md#amazon-states-language-reference-paths) zu einem vorhandenen Schlüssel-Wert-Paar in Ihrer *Distributed Map-Statuseingabe* angeben. Dieser Pfad muss zur Laufzeit in eine positive Ganzzahl aufgelöst werden. Sie geben den Referenzpfad im `ToleratedFailureCountPath` Unterfeld an.  
Beispielsweise angesichts der folgenden Eingabe:  

```
{
  "count": 10
}
```
Sie können die Nummer mithilfe eines Referenzpfads zu dieser Eingabe wie folgt angeben:  

```
{
  ...
  "Map": {
    "Type": "Map",
    ...
    "ToleratedFailureCountPath": "$.count"
    ...
  }
}
```
Sie können entweder `ToleratedFailureCount` oder`ToleratedFailureCountPath`, aber nicht beide in der Status-Definition von *Distributed Map angeben*.

## Erfahren Sie mehr über verteilte Karten
<a name="dist-map-next-steps"></a>

Weitere Informationen zum *Status von Distributed Map* finden Sie in den folgenden Ressourcen:
+ 

**Verarbeitung von Eingabe und Ausgabe**  
Um die Eingabe zu konfigurieren, die ein *Distributed-Map-Status* empfängt, und die Ausgabe, die er generiert, stellt Step Functions die folgenden Felder bereit:
  + [ItemReader (Karte)](input-output-itemreader.md)
  + [ItemsPath ( JSONPath Nur Karte)](input-output-itemspath.md)
  + [ItemSelector (Karte)](input-output-itemselector.md)
  + [ItemBatcher (Karte)](input-output-itembatcher.md)
  + [ResultWriter (Karte)](input-output-resultwriter.md)
  + [So analysiert Step Functions CSV-Eingabedateien](example-csv-parse-dist-map.md)

  Zusätzlich zu diesen Feldern bietet Ihnen Step Functions auch die Möglichkeit, einen Schwellenwert für tolerierte Fehler für Distributed Map zu definieren. Mit diesem Wert können Sie die maximale Anzahl oder den Prozentsatz fehlgeschlagener Elemente als Fehlerschwellenwert für einen [Map-Lauf](concepts-examine-map-run.md) angeben. Weitere Informationen zur Konfiguration des Schwellenwerts für tolerierte Fehler finden Sie unter[Festlegung von Ausfallschwellenwerten für Distributed Map-Zustände in Step Functions](#maprun-fail-threshold).
+ 

**Der Status „Distributed Map“ wird verwendet**  
In den folgenden Tutorials und Beispielprojekten finden Sie Informationen zu den ersten Schritten mit der Verwendung von *Distributed Map State*.
  + [Kopieren Sie große CSV-Dateien mithilfe von Distributed Map](tutorial-map-distributed.md)
  + [Verarbeitung von Batchdaten mit einer Lambda-Funktion in Step Functions](tutorial-itembatcher-param-task.md)
  + [Verarbeitung einzelner Elemente mit einer Lambda-Funktion in Step Functions](tutorial-itembatcher-single-item-process.md)
  + [Beispielprojekt: Verarbeiten Sie eine CSV-Datei mit Distributed Map](sample-dist-map-csv-process.md)
  + [Beispielprojekt: Daten in einem Amazon S3 S3-Bucket mit Distributed Map verarbeiten](sample-dist-map-s3data-process.md)
+ 

**Untersuchen Sie die Ausführung des Distributed Map-Status**  
Die Step Functions Functions-Konsole bietet eine Seite mit den *Map-Run-Details*, auf der alle Informationen zur Ausführung eines *Distributed Map-Status* angezeigt werden. Informationen darüber, wie Sie die auf dieser Seite angezeigten Informationen überprüfen können, finden Sie unter[Map Runs anzeigen](concepts-examine-map-run.md).