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.
ItemsPath ( JSONPath Solo mapa)
Administración del estado y transformación de los datos
Esta página hace referencia a JSONPath. Step Functions agregó recientemente variables y JSONata para administrar el estado y transformar los datos.
Obtenga información sobre cómo pasar datos con variables y cómo transformar datos con JSONata.
En los estados JSONPath basados, usa el ItemsPath campo para seleccionar una matriz u objeto dentro de una entrada JSON proporcionada a un Map estado. De forma predeterminada, un estado Map establece ItemsPath en $, lo que selecciona toda la entrada.
-
Si la entrada al
Mapestado es una matriz JSON, ejecuta una iteración para cada elemento de la matriz y pasa ese elemento a la iteración como entrada -
Si la entrada al
Mapestado es un objeto JSON, ejecuta una iteración para cada par clave-valor del objeto y pasa el par a la iteración como entrada
nota
Puede usar ItemsPath en el estado Map Distributed solo si usa una entrada JSON pasada desde un estado anterior del flujo de trabajo.
El valor de ItemsPath debe ser una ruta de referencia y esa ruta debe dar como resultado una matriz u objeto JSON. Por ejemplo, supongamos que la entrada a un estado Map incluye dos matrices, como en el siguiente ejemplo.
{
"ThingsPiratesSay": [
{
"say": "Avast!"
},
{
"say": "Yar!"
},
{
"say": "Walk the Plank!"
}
],
"ThingsGiantsSay": [
{
"say": "Fee!"
},
{
"say": "Fi!"
},
{
"say": "Fo!"
},
{
"say": "Fum!"
}
]
}En este caso, puede especificar qué matriz se ha de utilizar para las iteraciones del estado Map seleccionándola mediante ItemsPath. La siguiente definición de máquina de estado especifica la matriz ThingsPiratesSay en la entrada mediante ItemsPath. A continuación, ejecuta una iteración del estado de paso SayWord para cada elemento de la matriz ThingsPiratesSay.
{
"StartAt": "PiratesSay",
"States": {
"PiratesSay": {
"Type": "Map",
"ItemsPath": "$.ThingsPiratesSay",
"ItemProcessor": {
"StartAt": "SayWord",
"States": {
"SayWord": {
"Type": "Pass",
"End": true
}
}
},
"End": true
}
}
} En el caso de los objetos JSON anidados, puede ItemsPath utilizarlos para seleccionar un objeto específico dentro de la entrada. Considera la siguiente entrada con datos de configuración anidados:
{
"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}
}
}
}Para recorrer en iteración el objeto del servidor web, debe ItemsPath configurarlo de la siguiente manera: $.servers.web
{
"StartAt": "ProcessWebServers",
"States": {
"ProcessWebServers": {
"Type": "Map",
"ItemsPath": "$.servers.web",
"ItemProcessor": {
"StartAt": "CheckServer",
"States": {
"CheckServer": {
"Type": "Pass",
"End": true
}
}
},
"End": true
}
}
}Al procesar la entrada, el Map estado aplica ItemsPath después de InputPath. Opera en la entrada efectiva al estado, después de que InputPath filtre la entrada.
Para obtener más información acerca de los estados Map, consulte los temas siguientes: