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à.
ItemsPath ( JSONPath Solo mappa)
Gestione dello stato e trasformazione dei dati
Questa pagina fa riferimento a. JSONPath Step Functions ha recentemente aggiunto variabili e JSONata per gestire lo stato e trasformare i dati.
Scopri come passare dati con variabili e trasformare dati con JSONata.
Negli stati JSONPath basati, usa il ItemsPath campo per selezionare un array o un oggetto all'interno di un input JSON fornito a uno Map stato. Per impostazione predefinita, lo Map stato è ItemsPath impostato su$, che seleziona l'intero input.
-
Se l'input dello
Mapstato è un array JSON, esegue un'iterazione per ogni elemento dell'array, passando tale elemento all'iterazione come input -
Se l'input dello
Mapstato è un oggetto JSON, esegue un'iterazione per ogni coppia chiave-valore nell'oggetto, passando la coppia all'iterazione come input
Nota
È possibile utilizzare ItemsPath nello stato Distributed Map solo se si utilizza un input JSON passato da uno stato precedente nel flusso di lavoro.
Il valore di ItemsPath deve essere un percorso di riferimento e tale percorso deve restituire un array o un oggetto JSON. Ad esempio, considera l'input a uno stato Map che include due matrici, come nell'esempio seguente.
{
"ThingsPiratesSay": [
{
"say": "Avast!"
},
{
"say": "Yar!"
},
{
"say": "Walk the Plank!"
}
],
"ThingsGiantsSay": [
{
"say": "Fee!"
},
{
"say": "Fi!"
},
{
"say": "Fo!"
},
{
"say": "Fum!"
}
]
}In questo caso, è possibile specificare quale array utilizzare per le iterazioni di Map stato selezionandolo con. ItemsPath La seguente definizione di macchina a stati specifica l'ThingsPiratesSayarray nell'input ItemsPath utilizzando.IT, quindi esegue un'iterazione dello stato di SayWord passaggio per ogni elemento dell'array. ThingsPiratesSay
{
"StartAt": "PiratesSay",
"States": {
"PiratesSay": {
"Type": "Map",
"ItemsPath": "$.ThingsPiratesSay",
"ItemProcessor": {
"StartAt": "SayWord",
"States": {
"SayWord": {
"Type": "Pass",
"End": true
}
}
},
"End": true
}
}
} Per gli oggetti JSON annidati, è possibile utilizzare ItemsPath per selezionare un oggetto specifico all'interno dell'input. Considerate il seguente input con dati di configurazione annidati:
{
"environment": "production",
"servers": {
"web": {
"server1": {"port": 80, "status": "active"},
"server2": {"port": 8080, "status": "inactive"}
},
"database": {
"primary": {"host": "db1.example.com", "port": 5432},
"replica": {"host": "db2.example.com", "port": 5432}
}
}
}Per eseguire un'iterazione sull'oggetto dei server Web, è necessario impostare suItemsPath: $.servers.web
{
"StartAt": "ProcessWebServers",
"States": {
"ProcessWebServers": {
"Type": "Map",
"ItemsPath": "$.servers.web",
"ItemProcessor": {
"StartAt": "CheckServer",
"States": {
"CheckServer": {
"Type": "Pass",
"End": true
}
}
},
"End": true
}
}
}Durante l'elaborazione dell'input, lo Map stato si applica ItemsPath dopo InputPath. Funziona sull'ingresso effettivo allo stato dopo aver InputPath filtrato l'input.
Per ulteriori informazioni sugli stati Map, consulta quanto segue.