

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.

# Zugreifen auf Ausführungsdaten aus dem Context-Objekt in Step Functions
<a name="input-output-contextobject"></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).

Das Context-Objekt ist eine interne JSON-Struktur, die während einer Ausführung verfügbar ist und Informationen über Ihre Zustandsmaschine und die Ausführung enthält. Der Kontext stellt Ihren Workflows Informationen über deren spezifische Ausführung zur Verfügung. Ihre Workflows können das Context-Objekt in einem JSONata Ausdruck mit referenzieren`$states.context`.

## Zugreifen auf das Context-Objekt
<a name="contextobject-access"></a>

**Um auf das Context-Objekt zuzugreifen in JSONata**

Um in JSONata Zuständen auf das Context-Objekt zuzugreifen, verwenden Sie es `$states.context` in einem JSONata Ausdruck. 

```
{
  "ExecutionID" : "{% $states.context.Execution.Id %}"
}
```

**Um auf das Context-Objekt zuzugreifen in JSONPath**

Um auf das Context-Objekt in zuzugreifen JSONPath, fügen Sie es zunächst `.$` an das Ende des Schlüssels an, um anzugeben, dass es sich bei dem Wert um einen Pfad handelt. Stellen Sie dann dem Wert ein, `$$.` um einen Knoten im Context-Objekt auszuwählen.

```
{
  "ExecutionID.$": "$$.Execution.Id"
}
```

JSONPath Staaten können aus den folgenden JSONPath Feldern auf den Kontext (`$$.`) verweisen:
+ `InputPath`
+ `OutputPath`
+ `ItemsPath`(in Kartenstaaten)
+ `Variable`(in den Staaten Choice)
+ `ResultSelector`
+ `Parameters`
+ Operatoren für den Vergleich von Variablen zu Variablen

## Felder für Kontextobjekte
<a name="contextobject-format"></a>

Das Context-Objekt enthält Informationen über die Zustandsmaschine, den Status, die Ausführung und die Aufgabe. Das Context-JSON-Objekt enthält Knoten für jeden Datentyp im folgenden Format:

```
{
    "Execution": {
        "Id": "String",
        "Input": {},
        "Name": "String",
        "RoleArn": "String",
        "StartTime": "Format: ISO 8601",
        "RedriveCount": Number,
        "RedriveTime": "Format: ISO 8601"
    },
    "State": {
        "EnteredTime": "Format: ISO 8601",
        "Name": "String",
        "RetryCount": Number
    },
    "StateMachine": {
        "Id": "String",
        "Name": "String"
    },
    "Task": {
        "Token": "String"
    }
}
```

Während einer Ausführung wird das Context-Objekt mit relevanten Daten gefüllt. 

Gelegentlich werden dem Kontext neue Felder hinzugefügt. Wenn Sie den JSON-Kontext direkt verarbeiten, empfehlen wir, Code zu erstellen, der neue unbekannte Felder problemlos verarbeiten kann. Wenn Sie beispielsweise die Jackson-Bibliothek für das Unmarshalling von JSON verwenden, empfehlen wir, `false` in your `FAIL_ON_UNKNOWN_PROPERTIES` zu setzen, um eine zu verhindern. `ObjectMapper` `UnrecognizedPropertyException`

 `RedriveTime`Das Kontextobjekt ist nur verfügbar, wenn Sie redriven eine Ausführung haben. Wenn ja [redriven a Map Run](redrive-map-run.md), ist das `RedriveTime` Kontextobjekt nur für untergeordnete Workflows vom Typ Standard verfügbar. Für einen redriven Kartenlauf mit untergeordneten Workflows vom Typ Express `RedriveTime` ist es nicht verfügbar.

Der Inhalt einer laufenden Ausführung umfasst Einzelheiten im folgenden Format: 

```
{
    "Execution": {
        "Id": "arn:aws:states:region:123456789012:execution:stateMachineName:executionName",
        "Input": {
           "key": "value"
        },
        "Name": "executionName",
        "RoleArn": "arn:aws:iam::123456789012:role...",
        "StartTime": "2025-08-27T10:04:42Z"
    },
    "State": {
        "EnteredTime": "2025-08-27T10:04:42.001Z",
        "Name": "Test",
        "RetryCount": 3
    },
    "StateMachine": {
        "Id": "arn:aws:states:region:123456789012:stateMachine:stateMachineName",
        "Name": "stateMachineName"
    },
    "Task": {
        "Token": "h7XRiCdLtd/83p1E0dMccoxlzFhglsdkzpK9mBVKZsp7d9yrT1W"
    }
}
```

**Zeitstempelformat mit Sekundenbruchteilen**  
Step Functions folgt der ISO8601 Spezifikation, die besagt, dass die Ausgabe je nach Bedarf null, drei, sechs oder neun Ziffern sein kann. Wenn ein Zeitstempel null Sekundenbruchteile hat, entfernt Step Functions die nachfolgenden Nullen, anstatt die Ausgabe aufzufüllen.   
Wenn Sie Code erstellen, der Step Functions Functions-Zeitstempel verwendet, muss Ihr Code in der Lage sein, eine variable Anzahl von Sekundenbruchteilen zu verarbeiten.

## Kontextobjektdaten für Kartenstatus
<a name="contextobject-map"></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).

Bei der Verarbeitung eines [`Map`Zustands](state-map.md) enthält der Kontext auch `Index``Value`, und`Source`. 

`Index`Enthält für jede `Map` State-Iteration die Indexnummer für das Array-Element, das gerade verarbeitet wird, `Value` enthält das Array-Element, das gerade verarbeitet `Source` wird, und ist die InputType von`CSV`, `JSON``JSONL`, oder`PARQUET`.

Innerhalb eines `Map` Zustands enthält das Context-Objekt die folgenden Daten:

```
"Map": {
   "Item": {
      "Index" : Number,
      "Key"   : "String", // Only valid for JSON objects
      "Value" : "String",
      "Source": "String"
   }
}
```

Diese sind nur in einem `Map` Bundesstaat verfügbar und können im `ItemSelector (Karte)` Feld angegeben werden.

**Anmerkung**  
Sie müssen Parameter aus dem Context-Objekt im `ItemSelector` Block des `Map` Hauptstatus definieren, nicht innerhalb der im `ItemProcessor` Abschnitt enthaltenen Staaten.

Bei einer Zustandsmaschine, die einen **JSONPath**`Map`Status verwendet, können Sie Informationen aus dem Context-Objekt wie folgt einfügen.

```
{
  "StartAt": "ExampleMapState",
  "States": {
    "ExampleMapState": {
      "Type": "Map",
      "ItemSelector": {
        "ContextIndex.$": "$$.Map.Item.Index",
        "ContextValue.$": "$$.Map.Item.Value",
        "ContextSource.$": "$$.Map.Item.Source"
      },
      "ItemProcessor": {
        "ProcessorConfig": {
          "Mode": "INLINE"
        },
        "StartAt": "TestPass",
        "States": {
          "TestPass": {
            "Type": "Pass",
            "End": true
          }
        }
      },
      "End": true
    }
  }
}
```

Denn JSONata auf die zusätzlichen Kontextinformationen zum Kartenstatus kann über die `$states.context` Variable zugegriffen werden:

```
{
  "StartAt": "ExampleMapState",
  "States": {
    "ExampleMapState": {
      "Type": "Map",
      "ItemSelector": {
        "ContextIndex": "{% $states.context.Map.Item.Index %}",
        "ContextValue": "{% $states.context.Map.Item.Value %}",
        "ContextSource": "{% $states.context.Map.Item.Source %}"
      },
      "ItemProcessor": {
        "ProcessorConfig": {
          "Mode": "INLINE"
        },
        "StartAt": "TestPass",
        "States": {
          "TestPass": {
            "Type": "Pass",
            "End": true
          }
        }
      },
      "End": true
    }
  }
}
```



Wenn Sie den vorherigen Zustandsautomaten mit der folgenden Eingabe ausführen, werden `Index` und `Value` in die Ausgabe eingefügt.

```
[
  {
    "who": "bob"
  },
  {
    "who": "meg"
  },
  {
    "who": "joe"
  }
]
```

Die Ausgabe für die Ausführung gibt die Werte `Index` und `Value` Elemente für jede der drei Iterationen wie folgt zurück:

```
[
  {
    "ContextIndex": 0,
    "ContextValue": {
      "who": "bob"
    },
    "ContextSource" : "STATE_DATA" 
  },
  {
    "ContextIndex": 1,
    "ContextValue": {
      "who": "meg"
    },
    "ContextSource" : "STATE_DATA" 
  },
  {
    
    "ContextIndex": 2,
    "ContextValue": {
      "who": "joe"
    },
    "ContextSource" : "STATE_DATA" 
  }
]
```

Beachten Sie, dass `$states.context.Map.Item.Source` dies einer der folgenden sein wird:
+ Für die Eingabe eines Bundesstaates lautet der Wert: `STATE_DATA`
+ Für `Amazon S3 LIST_OBJECTS_V2` with `Transformation=NONE` zeigt der Wert den S3-URI für den Bucket an. Beispiel: `S3://bucket-name`. 
+ Für alle anderen Eingabetypen ist der Wert der Amazon S3 S3-URI. Beispiel: `S3://bucket-name/object-key`.