Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Acceso a los datos de ejecución desde el objeto Context en Step Functions
Administrar el estado y transformar los datos
Obtenga información sobre cómo pasar datos entre estados con variables y cómo transformar datos con JSONata.
El objeto Context es una estructura JSON interna que está disponible durante una ejecución y contiene información sobre la máquina de estados y la ejecución. El contexto proporciona a sus flujos de trabajo información sobre su ejecución específica. Sus flujos de trabajo pueden hacer referencia al objeto Context en una JSONata expresión con$states.context
.
Acceder al objeto Context
Para acceder al objeto Context en JSONata
Para acceder al objeto Context en JSONata estados, $states.context
utilícelo en una JSONata expresión.
{
"ExecutionID" : "{% $states.context.Execution.Id %}"
}
Para acceder al objeto Context en JSONPath
Para acceder al objeto Context en JSONPath, primero hay que .$
añadirlo al final de la clave para indicar que el valor es una ruta. A continuación, anteponga el valor $$.
para seleccionar un nodo en el objeto de contexto.
{
"ExecutionID.$": "$$.Execution.Id"
}
JSONPath los estados pueden hacer referencia al contexto ($$.
) desde los siguientes campos: JSONPath
-
InputPath
-
OutputPath
-
ItemsPath
(en los estados Map) -
Variable
(en los estados Choice) -
ResultSelector
-
Parameters
-
Operadores de comparación entre variables
Campos de objetos de contexto
El objeto Context incluye información sobre la máquina de estados, el estado, la ejecución y la tarea. Este objeto JSON incluye nodos para cada tipo de datos y se encuentra en el siguiente formato.
{
"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
"
}
}
Durante una ejecución, el objeto Context se rellena con los datos relevantes. RedriveTime
El objeto de contexto solo está disponible si tienes redriven una ejecución. Si ha utilizado redriven a Map Run, el objeto de contexto RedriveTime
solo está disponible para los flujos de trabajo secundarios de tipo estándar. Para un redriven Map Run con flujos de trabajo secundarios de tipo Express, RedriveTime
no está disponible.
El contenido de una ejecución en ejecución incluye detalles en el siguiente formato:
{
"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"
}
}
Formato de marca de tiempo con fracciones de segundo
Step Functions sigue la especificación ISO86 01, que establece que la salida puede ser de cero, tres, seis o nueve dígitos, según sea necesario. Cuando una marca de tiempo tiene cero fracciones de segundo, Step Functions elimina los ceros finales en lugar de rellenar la salida.
Si crea código que consume marcas de tiempo de Step Functions, el código debe poder procesar un número variable de fracciones de segundo.
Datos de objetos contextuales para los estados del mapa
Administrar el estado y transformar los datos
Obtenga información sobre cómo pasar datos entre estados con variables y cómo transformar datos con JSONata.
Hay dos elementos adicionales disponibles en el objeto Context al procesar un Mapestado: Index
yValue
. Para cada iteración del estado Map
, Index
contiene el número de índice del elemento de matriz que se está procesando actualmente, mientras que Value
contiene el elemento de matriz que se está procesando. Dentro de un Map
estado, el objeto Context incluye los siguientes datos:
"Map": {
"Item": {
"Index": Number
,
"Value": "String
"
}
}
Solo están disponibles en un estado Map
y se pueden especificar en el campo ItemSelector (Mapa)
.
nota
Debe definir los parámetros desde el objeto Context en el ItemSelector
bloque del Map
estado principal, no dentro de los estados incluidos en la ItemProcessor
sección.
Si una máquina de estados utiliza un JSONPath Map
estado, puede inyectar información del objeto Context de la siguiente manera.
{ "StartAt": "ExampleMapState", "States": { "ExampleMapState": { "Type": "Map", "ItemSelector": { "ContextIndex.$": "$$.Map.Item.Index", "ContextValue.$": "$$.Map.Item.Value" }, "ItemProcessor": { "ProcessorConfig": { "Mode": "INLINE" }, "StartAt": "TestPass", "States": { "TestPass": { "Type": "Pass", "End": true } } }, "End": true } } }
Si ejecuta la máquina de estado anterior con la siguiente entrada, Index
y Value
se insertan en la salida.
[ { "who": "bob" }, { "who": "meg" }, { "who": "joe" } ]
El resultado de la ejecución devuelve los valores de los elementos Index
y Value
de cada una de las tres iteraciones de la siguiente manera:
[
{
"ContextIndex": 0,
"ContextValue": {
"who": "bob"
}
},
{
"ContextIndex": 1,
"ContextValue": {
"who": "meg"
}
},
{
"ContextIndex": 2,
"ContextValue": {
"who": "joe"
}
}
]