Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Gestione dello stato e trasformazione dei dati
Scopri come passare dati tra stati con variabili e Trasformare dati con. JSONata
L'oggetto Context è una struttura JSON interna disponibile durante l'esecuzione e contiene informazioni sulla macchina a stati e sull'esecuzione. Il contesto fornisce ai flussi di lavoro informazioni sulla loro esecuzione specifica. I flussi di lavoro possono fare riferimento all'oggetto Context in un' JSONata espressione con. $states.context
Accesso all'oggetto Context
Per accedere all'oggetto Context in JSONata
Per accedere all'oggetto Context negli JSONata stati, $states.context
utilizzatelo in un' JSONata espressione.
{
"ExecutionID" : "{% $states.context.Execution.Id %}"
}
Per accedere all'oggetto Context in JSONPath
Per accedere all'oggetto Context in JSONPath, aggiungete innanzitutto .$
alla fine della chiave per indicare che il valore è un percorso. Quindi, anteponi al valore $$.
per selezionare un nodo nell'oggetto Context.
{
"ExecutionID.$": "$$.Execution.Id"
}
JSONPath gli stati possono fare riferimento al context ($$.
) dai seguenti campi: JSONPath
-
InputPath
-
OutputPath
-
ItemsPath
(negli stati della mappa) -
Variable
(negli stati Choice) -
ResultSelector
-
Parameters
-
Operatori di confronto da variabile a variabile
Campi oggetto contestuali
L'oggetto Context include informazioni sulla macchina a stati, sullo stato, sull'esecuzione e sull'attività. Questo oggetto JSON include nodi per ogni tipo di dati ed è nel formato seguente.
{
"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 un'esecuzione, l'oggetto Context viene popolato con i dati pertinenti. RedriveTime
L'oggetto Context è disponibile solo se hai redriven un'esecuzione. Se hai redriven a Map Run, l'oggetto RedriveTime
context è disponibile solo per i flussi di lavoro secondari di tipo Standard. Per un redriven Map Run con flussi di lavoro secondari di tipo Express non RedriveTime
è disponibile.
I contenuti di un’esecuzione in corso includono specifiche nel formato seguente.
{
"Execution": {
"Id": "arn:aws:states:us-east-1:123456789012:execution:stateMachineName:executionName",
"Input": {
"key": "value"
},
"Name": "executionName",
"RoleArn": "arn:aws:iam::123456789012:role...",
"StartTime": "2019-03-26T20:14:13.192Z"
},
"State": {
"EnteredTime": "2019-03-26T20:14:13.192Z",
"Name": "Test",
"RetryCount": 3
},
"StateMachine": {
"Id": "arn:aws:states:us-east-1:123456789012:stateMachine:stateMachineName",
"Name": "stateMachineName"
},
"Task": {
"Token": "h7XRiCdLtd/83p1E0dMccoxlzFhglsdkzpK9mBVKZsp7d9yrT1W"
}
}
Nota
Per i dati degli oggetti contestuali relativi agli Map
stati, vedereDati contestuali degli oggetti per gli stati della mappa.
Dati contestuali degli oggetti per gli stati della mappa
Gestione dello stato e trasformazione dei dati
Scopri come passare dati tra stati con variabili e Trasformare dati con. JSONata
Ci sono due elementi aggiuntivi disponibili nell'oggetto Context durante l'elaborazione di uno Mapstato: Index
eValue
. Per ogni iterazione di Map
stato, Index
contiene il numero di indice dell'elemento dell'array attualmente in fase di elaborazione, mentre Value
contiene l'elemento dell'array in fase di elaborazione. All'interno di uno Map
stato, l'oggetto Context include i seguenti dati:
"Map": {
"Item": {
"Index": Number
,
"Value": "String
"
}
}
Questi sono disponibili solo in uno Map
stato e possono essere specificati nel ItemSelector (Mappa)
campo.
Nota
È necessario definire i parametri dall'oggetto Context nel ItemSelector
blocco dello Map
stato principale, non all'interno degli stati inclusi nella ItemProcessor
sezione.
Se una macchina a stati utilizza uno JSONPath Map
stato, è possibile inserire informazioni dall'oggetto Context nel modo seguente.
{
"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
}
}
}
Se esegui la macchina a stati precedente con il seguente input, Index
e Value
vengono inseriti nell'output.
[
{
"who": "bob"
},
{
"who": "meg"
},
{
"who": "joe"
}
]
L'output per l'esecuzione restituisce i valori Index
e Value
gli elementi di ciascuna delle tre iterazioni nel modo seguente:
[
{
"ContextIndex": 0,
"ContextValue": {
"who": "bob"
}
},
{
"ContextIndex": 1,
"ContextValue": {
"who": "meg"
}
},
{
"ContextIndex": 2,
"ContextValue": {
"who": "joe"
}
}
]