Política de operaciones de mapas de clave-valor

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Ícono de operaciones del mapa de par clave-valor de la IU de Edge

Qué

Proporciona acceso basado en políticas a un almacén de mapa de clave-valor (KVM) disponible en Apigee Edge. Los pares clave-valor se pueden almacenar, recuperar y borrar de mapas existentes con nombres mediante políticas KeyValueMapOperations que especifican operaciones PUT, GET o DELETE. (La política debe realizar al menos una de estas operaciones).

Videos

Mira los siguientes videos para obtener más información sobre los KVM.

Video Descripción
¿Por qué mapas de claves-valor? Descubre por qué necesitas KVM y cómo funcionan.
Crea un KVM con IU y recuperación de KVM en el entorno de ejecución Crea un KVM, recupera su valor con una política de KVM y, luego, incorpora el valor en la solicitud a la API con las variables de flujo.
Crear y actualizar un KVM en el entorno de ejecución de la API Crea un KVM en el entorno de ejecución de la API con una política de KVM
Almacenar en caché KVM en aumentar el rendimiento Mejora el rendimiento de la política de KVM mediante el almacenamiento en caché de los datos.
Almacena un KVM encriptado Almacena información sensible en KVM en un formato encriptado y recupera el valor en con la política de KVM y las variables privadas.
Administra el acceso con el permiso de KVM Restringe KVM a la organización, el entorno, el proxy de API o la revisión del proxy de API con el atributo de permiso de la política de KVM.
Borra entradas de KVM en el entorno de ejecución de la API Borrar entradas de KVM en el entorno de ejecución de la API con la operación DELETE de la política de KVM

Ejemplos

KVM de PUT con un literal

Cuando se ejecuta la siguiente política, se crea un KVM encriptado llamado FooKVM y, luego, crea una clave llamada FooKey_1 con dos valores establecidos con cadenas literales foo y bar (no se establece con los valores extraídos de las variables). Cuando GET es la clave. En el siguiente ejemplo, debes especificar un número de índice. para recuperar el valor que deseas.

<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="FooKVM" mapIdentifier="FooKVM">
  <DisplayName>FooKVM</DisplayName>
  <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
  <Scope>environment</Scope>
  <Put>
    <Key>
      <Parameter>FooKey_1</Parameter>
    </Key>
    <Value>foo</Value>
    <Value>bar</Value>
  </Put>
</KeyValueMapOperations>

Ten en cuenta que el alcance es "entorno". Esto significa que puedes ver el KVM en la sección IU en APIs > Configuración del entorno > Mapas de par clave-valor. Las KVM que se muestran en esa página tienen alcance en el entorno seleccionado.

KVM de GET a partir de un literal

Esta política analiza el mapa FooKVM del ejemplo anterior, obtiene el segundo valor (index="2") de la clave FooKey_1 y lo almacena en una variable llamada foo_variable.

<KeyValueMapOperations mapIdentifier="FooKVM" async="false" continueOnError="false" enabled="true" name="GetKVM">
  <DisplayName>GetKVM</DisplayName>
  <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
  <Scope>environment</Scope>
  <Get assignTo="foo_variable" index="2">
    <Key>
      <Parameter>FooKey_1</Parameter>
    </Key>
  </Get>
</KeyValueMapOperations>

KVM de PUT con una variable

Un ejemplo sencillo de un mapa de par clave-valor útil es un servicio de abreviación de URL. El mapa de par clave-valor se puede configurar para almacenar las URL abreviadas junto con las URL completas correspondientes.

Esta muestra de política crea un mapa de par clave-valor. La política PUT una clave con dos valores asociados. en un mapa clave-valor llamado "urlMapper".

<KeyValueMapOperations name="putUrl" mapIdentifier="urlMapper">
   <Scope>apiproxy</Scope>
   <Put override="true">
      <Key>
         <Parameter ref="urlencoding.requesturl.hashed"/>
      </Key>
      <Value ref="urlencoding.longurl.encoded"/>
      <Value ref="request.queryparam.url"/>
   </Put>
</KeyValueMapOperations>

La clave en este ejemplo, urlencoding.requesturl.hashed, es un ejemplo de una variable personalizada. La URL de solicitud con hash se generaría con código (JavaScript o Java, por ejemplo) y, luego, se almacena en esta variable, en la que la política KeyValueMapOperations puede acceder a ella.

Para cada clave, requesturl.hashed, se almacenan estos dos valores:

  • Los contenidos de la variable personalizada llamada urlencoding.longurl.encoded
  • Los contenidos de la variable predefinida request.queryparam.url

Por ejemplo, cuando la política se ejecuta en el entorno de ejecución, los valores de las variables pueden ser de la siguiente manera:

  • urlencoding.requesturl.hashed: ed24e12820f2f900ae383b7cc4f2b31c402db1be
  • urlencoding.longurl.encoded: http://tinyurl.com/38lwmlr
  • request.queryparam.url: http://apigee.com

La siguiente entrada y asignación de par clave-valor se generaría en el almacén de par clave-valor de Edge El alcance del proxy de API al que está adjunta la política:

{
    "entry" :[ 
        {
            "name" : "ed24e12820f2f900ae383b7cc4f2b31c402db1be",
            "value" : "http://tinyurl.com/38lwmlr,http://apigee.com"
        }
    ],
    "name" : "urlMapper"
}

La entrada permanecerá hasta que se borre. Las entradas del almacén de par clave-valor se distribuyen de Edge que ejecutan la nube.

KVM de GET desde una variable

Un ejemplo sencillo de un mapa de par clave-valor útil es un "acortamiento" de URL servicio. El mapa de par clave-valor se puede configurar para almacenar las URL abreviadas junto con las URL completas correspondientes.

Para recuperar el valor de una entrada del mapa de clave-valor, como el que se muestra en la pestaña de PUT de KeyValueMapOperations, configura una política para realizar una operación GET en el mapa de clave-valor:

<KeyValueMapOperations name="getUrl" mapIdentifier="urlMapper">
   <Scope>apiproxy</Scope>
   <Get assignTo="urlencoding.shorturl" index='1'>
      <Key>
         <Parameter ref="urlencoding.requesturl.hashed"/> 
      </Key>
   </Get>
</KeyValueMapOperations>

Cuando se ejecuta esta política, si el valor de la variable urlencoding.requesturl.hashed es ed24e12820f2f900ae383b7cc4f2b31c402db1be, la variable personalizada llamada urlencoding.shorturl se establecerá con el valor http://tinyurl.com/38lwmlr.

Ahora que se recuperaron los datos, otras políticas y otro código pueden acceder a ellos mediante la extracción del valor de esas variables.

Valor encriptado de GET de KVM

Si un mapa de par clave-valor está encriptado, recupera valores mediante "private." en el valor del atributo assignTo. En este ejemplo, la variable private.encryptedVar contiene el valor desencriptado del mapa de par clave-valor. Tecla foo. Para obtener información sobre cómo crear mapas de clave-valor encriptados, consulta la sección sobre cómo crear temas de los mapas de par clave-valor API de Management de Google.

<KeyValueMapOperations name="getEncrypted" mapIdentifier="encrypted_map">
   <Scope>apiproxy</Scope>
   <Get assignTo="private.encryptedVar" index='1'>
      <Key>
         <Parameter>foo</Parameter> 
      </Key>
   </Get>
</KeyValueMapOperations>

Ahora que se recuperaron los datos, otras políticas y código pueden acceder a ellos mediante la extracción del valor de esa variable.


Referencia del elemento

En la referencia del elemento, se describen los elementos y los atributos de la política KeyValueMapOperations.

<KeyValueMapOperations async="false" continueOnError="false" 
    enabled="true" name="Key-Value-Map-Operations-1" 
    mapIdentifier="urlMapper" >
   <DisplayName>Key Value Map Operations 1</DisplayName>
   <Scope>environment</Scope>
   <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
   <InitialEntries>
      <Entry>
         <Key>
            <Parameter>key_name_literal</Parameter>
         </Key>
         <Value>value_literal</Value>
      </Entry>
      <Entry>
         <Key>
            <Parameter>variable_name</Parameter>
         </Key>
         <Value>value_1_literal</Value>
         <Value>value_2_literal</Value>
      </Entry>
   </InitialEntries>
   <Put override="false">
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
      <Value ref="variable_name"/>
   </Put>
   <Get assignTo="myvar" index="1">
      <Key>
         <Parameter ref="variable_name"/>
      </Key>
   </Get>
   <Delete>
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
   </Delete>
</KeyValueMapOperations>

Atributos <KeyValueMapOperations>

En el siguiente ejemplo, se muestran los atributos de la etiqueta <KeyValueMapOperations>:

<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-1" mapIdentifier="map_name">

En la siguiente tabla, se describen los atributos específicos de la etiqueta <KeyValueMapOperations>:

Atributo Descripción Predeterminado Presencia
mapIdentifier

Especifica el identificador que debe usarse al acceder a un mapa creado por este o en la IU de administración.

Con Apigee Edge para la nube pública, el nombre de KVM distingue mayúsculas de minúsculas. Por ejemplo, foobar es diferente de FooBar.

Si excluyes este atributo, se usa un KVM llamado kvmap.

Dentro de un permiso de organización, entorno o apiproxy, puedes usar el mapIdentifier para especificar tu propio nombre de mapa.

N/A Opcional

En la siguiente tabla, se describen los atributos que son comunes a todos los elementos principales de las políticas:

Atributo Descripción Predeterminado Presencia
name

El nombre interno de la política. El valor del atributo name puede contener letras, números, espacios, guiones, guiones bajos y puntos. Este valor no puede superar los 255 caracteres.

De forma opcional, usa el elemento <DisplayName> para etiquetar la política en el editor de proxy de la IU de administración con un nombre de lenguaje natural diferente.

N/A Obligatorio
continueOnError

Configúralo como false para mostrar un error cuando una política falla. Este es el comportamiento previsto para la mayoría de las políticas.

Configúralo como true para continuar con la ejecución del flujo incluso después de que una política falle.

falso Opcional
enabled

Configúralo como true para aplicar la política.

Configúralo como false para desactivar la política. La política no se aplicará incluso si permanece adjunta a un flujo.

true Opcional
async

Este atributo dejó de estar disponible.

falso Obsoleta

Elemento <DisplayName>

Se usan además del atributo name para etiquetar la política en el editor de proxy de la IU de administración con un nombre de lenguaje natural diferente.

<DisplayName>Policy Display Name</DisplayName>
Predeterminada

N/A

Si omites este elemento, se usa el valor del atributo name de la política.

Presencia Opcional
Tipo String

Elemento <Delete>

Borra el par clave-valor especificado. Se debe usar al menos uno de los siguientes valores: <Get>, <Put> o <Delete>.

Asegúrate de especificar el nombre del KVM con el atributo mapIdentifier en el elemento superior. Por ejemplo:

<Delete>
   <Key>
      <Parameter>key_name_literal</Parameter>
   </Key>
</Delete>
Predeterminada N/A
Presencia Obligatorio si <Get> o <Put> no están presentes.
Tipo N/A

Elemento <Entry>

Origina valores para mapas de clave-valor, que se propagan en el mapa de clave-valor cuando se inicializa.

En Edge para la nube pública, el tamaño de la clave se limita a 2 KB. Por ejemplo:

<InitialEntries>
   <Entry>
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
      <Value>v1</Value>
   </Entry>
   <Entry>
      <Key>
         <Parameter>key_name_variable</Parameter>
      </Key>
      <Value>v3</Value>
      <Value>v4</Value>
   </Entry>
</InitialEntries>
Predeterminada N/A
Presencia Opcional
Tipo N/A

Elemento <ExclusiveCache>

Obsoleto. En su lugar, usa el elemento <Scope>.

Elemento <ExpiryTimeInSecs>

Especifica la duración en segundos luego de la cual Edge actualizará su valor almacenado en caché desde la el KVM especificado.

Un valor de 0 o -1, o excluir este elemento, significa que se usa el valor predeterminado de 300 segundos. Por ejemplo:

<ExpiryTimeInSecs>600</ExpiryTimeInSecs>
Predeterminada 300 (5 minutos)
Presencia Opcional
Tipo Entero

Un KVM es un mecanismo de persistencia a largo plazo que almacena claves y valores en una base de datos NoSQL. Debido a esto, la lectura de un KVM en el tiempo de ejecución puede ralentizar el rendimiento del proxy. Para mejorar rendimiento, Edge tiene un mecanismo integrado para almacenar en caché claves/valores de KVM en la memoria durante el tiempo de ejecución. Esta política de operaciones de KVM siempre lee de la caché para las operaciones GET.

El elemento <ExpiryTimeInSecs> te permite controlar cuánto tiempo se almacenan las claves o los valores usados en la política antes de volver a actualizarse desde el KVM. Sin embargo, Existen algunas diferencias entre cómo las operaciones GET y PUT afectan el vencimiento de la caché.

GET: La primera vez que se ejecuta una operación KVM GET, las claves-valores solicitados del KVM (cuyo nombre se especifica en el atributo raíz mapIdentifier de la política) se almacenan en la caché, donde permanecen para las operaciones GET posteriores hasta que se produce alguna de las siguientes situaciones:

  • La cantidad de segundos especificada en <ExpiryTimeInSecs> vence.
    o
  • Una operación PUT en una política de KVM reemplaza los valores existentes (lo que se explica a continuación).

PUT: Una operación PUT escribe claves/valores en el KVM especificado. Si el comando PUT escribe en una clave que ya existe en la caché, esa caché se actualiza de inmediato y ahora se mantiene el valor nuevo para la cantidad de segundos especificada en la política <ExpiryTimeInSecs>.

Ejemplo: Almacenamiento en caché de un KVM

  1. Una operación GET recupera el valor de “rating”, lo que suma el valor "10" en caché. El <ExpiryTimeInSecs> en la política es 60.
  2. 30 segundos después, la política GET se ejecuta de nuevo y recupera "10" de la caché.
  3. 5 segundos después, una política PUT actualiza el valor de "rating". en "8", y el <ExpiryTimeInSecs> en la política PUT es 20. La caché se actualiza inmediatamente con el nuevo valor, que ahora está configurado para permanecer en la caché durante 20 segundos. (Si el comando PUT no hubiera ocurrido, la caché que propagó originalmente el primer GET seguirá existiendo para otro 30 segundos restantes respecto de los 60 segundos originales).
  4. 15 segundos después, otra operación GET se ejecuta y recupera un valor de "8".

Elemento <Get>

Recupera el valor de la clave especificada. Se debe usar al menos uno de los siguientes valores: <Get>, <Put> o <Delete>.

Asegúrate de especificar el nombre del KVM con el atributo mapIdentifier en el elemento superior.

Puedes incluir varios bloques Get en la política para recuperar varios elementos de un KVM.

Predeterminada N/A
Presencia Obligatorio si <Put> o <Delete> no están presentes.
Tipo N/A

Obtén un solo elemento de un KVM

<Get assignTo="myvar" index="1">         
   <Key>             
      <Parameter>key_name_literal</Parameter>         
   </Key>     
</Get>

Cómo obtener varios elementos de un KVM

En el ejemplo siguiente, supón que un KVM tiene las siguientes claves y valores. Además de almacenar una lista de ejecución de las películas más populares de todos los tiempos, el KVM almacena el nombre del director de todas las películas principales.

Clave Valor
top_movies Princess Bride, The Godfather, Citizen Kane
Citizen Kane Orson Welles
Princess Bride Rob Reiner
The Godfather Francis Ford Coppola

Aquí hay una configuración de política de KVM que podemos usar para recuperar la película más popular actual y el nombre de su director:

<Get assignTo="top.movie.pick" index="1">
   <Key>
      <Parameter>top_movies</Parameter>
   </Key>
</Get>
<Get assignTo="movie.director">
   <Key>
      <Parameter ref="top.movie.pick"/>
   </Key>
</Get>

Cuando se llama al proxy de API, Edge crea los siguientes variables que puedes usar en el flujo del proxy de API:

  • top.movie.pick=Princess Bride
  • movie.director=Rob Reiner

Atributos

En la siguiente tabla, se describen los atributos del elemento <Get>:

Atributo Descripción Predeterminado Presencia
assignTo

Variable a la que se debe asignar el valor recuperado.

Si el mapa de clave-valor está encriptado, comienza el nombre assignTo con "private.". Por ejemplo:

<Get assignTo="private.myvar">

La política muestra un error si intentas recuperar un mapa de par clave-valor encriptado sin con el prefijo. El prefijo, que es necesario para fines de seguridad básicos durante la depuración, oculta los valores encriptados de las sesiones de depuración y de seguimiento del proxy de API.

Si deseas obtener información sobre cómo crear mapas de clave-valor encriptados, consulta los temas "crear" de la API de administración de mapas de clave-valor y Crea y edita mapas de clave-valor del entorno.

N/A Obligatorio
index

El número de índice (en un índice basado en 1) del elemento que se recuperará de una clave de valores múltiples. Por ejemplo, si especificas index=1, se mostrará el primer valor y se lo asignará a la variable assignTo. Si no se especifica un valor de índice, todos los valores de esa entrada se asignan a la variable como un java.util.List.

Para ver un ejemplo, consulta la sección "Obtén valor encriptado de KVM" en la pestaña Samples.

N/A Opcional

Elemento <InitialEntries>

Valores iniciales de los mapas de par clave-valor, que se propagan en el mapa de par clave-valor cuando se inicializa. Asegúrate de especificar el nombre de KVM con el atributo mapIdentifier activado el elemento superior. por ejemplo:

<InitialEntries>
   <Entry>
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
      <Value>v1</Value>
   </Entry>
   <Entry>
      <Key>
         <Parameter>key_name_variable</Parameter>
      </Key>
      <Value>v3</Value>
      <Value>v4</Value>
   </Entry>
</InitialEntries>

Cuando usas este elemento, guardas la política en la IU de administración en una versión implementada del proxy o implementa el paquete del proxy de API que contiene la política con este elemento, las claves se crean automáticamente en el KVM (como sin encriptar). Si los valores en la política son diferentes de los valores en el KVM, los valores en el KVM se reemplazan cuando se implementa el proxy. Todas las claves/valores nuevas se agregan al KVM existente junto con las claves/valores existentes.

Las claves y los valores propagados por este elemento deben ser literales. Por ejemplo, <Parameter ref="request.queryparam.key"> no es compatible con este elemento.

El tamaño de la clave está limitado a 2 KB para Edge para la nube pública y Periférico para lo privado. El valor de KVM está limitado a 2 KB.

Para crear un KVM encriptado, usa la API de administración de mapas de par clave-valor.

Predeterminado N/A
Presencia Opcional
Tipo N/A

Elemento <Key>

Especifica la clave en una entrada de mapa de par clave-valor. Una clave puede ser compuesta, lo que significa que se puede agregar más de un parámetro para crearla. Por ejemplo, userID y role se pueden combinar para crear una key. Por ejemplo:

<Key>
    <Parameter>key_name_literal</Parameter>
</Key>

Asegúrate de ver el elemento &lt;Parameter&gt; para obtener información específica sobre cómo establecer el nombre de la clave.

Con Edge para la nube pública, el tamaño de la clave se limita a 2 KB. Consulta Diferencias entre la API perimetral para la nube pública y la API de nube privada para obtener más información.

Predeterminada N/A
Presencia Opcional
Tipo N/A

Elemento <Parameter>

Especifica la clave en un par clave-valor. Este elemento especifica el nombre cuando se crea, coloca recuperar o borrar el par clave-valor.

Puedes especificar el nombre mediante lo siguiente:

  • Una string literal

    <Key>
      <Parameter>literal</Parameter>
    </Key>
    
  • Una variable que se recuperará en el tiempo de ejecución mediante el atributo ref

    <Key>
      <Parameter ref="variable_name"/>
    </Key>
    
  • Una combinación de literales y referencias de variables

    <Key>
      <Parameter>targeturl</Parameter>
      <Parameter ref="apiproxy.name"/>
      <Parameter>weight</Parameter>
    </Key>
    

Cuando el elemento clave incluye varios elementos de parámetro, la cadena de clave vigente es concatenación de los valores de cada parámetro, unida con un guion bajo doble. Por ejemplo, en En el ejemplo anterior, si la variable apiproxy.name tiene el valor "abc1", el la clave efectiva será targeturl__abc1__weight.

Ya sea que desees obtener, actualizar o borrar una entrada de par clave-valor, el nombre de la clave debe coincidir con la nombre de la clave en el mapa de par clave-valor. Consulta Especifica y recupera nombres de claves para conocer los lineamientos.

Predeterminada N/A
Presencia Obligatorio
Tipo Cadena

Atributos

En la siguiente tabla, se describen los atributos del elemento <Parameter>:

Atributo Descripción Predeterminado Presencia
ref Especifica el nombre de una variable cuyo valor contiene el nombre exacto de la clave que deseas crear, obtener o borrar. N/A Obligatorio si no se proporciona un valor literal entre las etiquetas de apertura y de cierre. Se prohíbe si se proporciona un valor literal.

Elemento <Put>

Escribe un par clave-valor en un mapa de clave-valor, ya sea que el mapa de clave-valor esté encriptado o y sin encriptar. Si el mapa de par clave-valor especificado en el atributo mapIdentifier de la elemento superior no existe, el mapa se crea automáticamente (sin encriptar). Si el mapa de clave-valor ya existe, se le agrega la clave-valor.

Para crear un mapa de par clave-valor encriptado, usa la API de administración de mapas de par clave-valor o consulta Crea y edita mapas de pares clave-valor del entorno. para crear KVM con alcance de entorno encriptado en la IU.

<Put override="false">         
   <Key>             
      <Parameter ref="mykeyvar"/>         
   </Key>         
   <Value ref="myvalvar1"/>     
</Put>
Predeterminado N/A
Presencia Obligatorio si <Get> o <Delete> no están presentes.
Tipo N/A

Atributos

En la siguiente tabla, se describen los atributos del elemento <Put>:

Atributo Descripción Predeterminado Presencia
Anulación

Si se configura como true, anula el valor de una clave.

false Opcional

Elemento <Scope>

Define el límite de accesibilidad para los mapas de pares clave-valor. El permiso predeterminado es environment: Esto significa que, de forma predeterminada, todos los proxies de API comparten las entradas de Maps que se ejecutan en un entorno (por ejemplo, prueba o producción). Si estableces el alcance en apiproxy, solo podrá acceder a las entradas en el mapa de par clave-valor el proxy de API que escribe los valores en el mapa.

Ten en cuenta que, al acceder a un mapa o a una entrada de mapa, debes especificar el mismo valor de permiso que utilizaste cuando creaste el mapa. Por ejemplo, si el mapa se creó con un permiso de apiproxy, debes usar el permiso apiproxy para recuperar sus valores, realizar cambios o borrar entradas.

<Scope>environment</Scope>
Predeterminada environment
Presencia Opcional
Tipo String
Valores válidos:
  • organization
  • environment
  • apiproxy
  • policy (revisión del proxy de API)

Elemento <Value>

Especifica el valor de una clave. Puedes especificar el valor como una string literal o, con el atributo ref, como una variable que se recuperará en el tiempo de ejecución:

<!-- Specify a literal value -->
<Value>literal<Value>

o:

<!-- Specify the name of variable value to be populated at run time. -->
<Value ref="variable_name"/>

También puedes incluir varios elementos <Value> para especificar un valor de varias partes. Los valores se combinan en el tiempo de ejecución.

En el siguiente ejemplo, se agregan dos claves al KVM:

  • Clave k1 con valores v1,v2
  • Clave k2 con valores v3,v4
<InitialEntries>         
   <Entry>             
      <Key>
         <Parameter>k1</Parameter>
      </Key>
      <Value>v1</Value>
      <Value>v2</Value>     
   </Entry>
   <Entry>
      <Key>
         <Parameter>k2</Parameter>
      </Key>
      <Value>v3</Value>
      <Value>v4</Value>
   </Entry>
</InitialEntries>

En el siguiente ejemplo, se crea una clave con dos valores. Supongamos que el nombre de la organización es foo_org, que el nombre del proxy de API es bar y que el entorno es test:

  • Clave foo_org con valores bar,test
<Put>
    <Key>
        <Parameter ref="organization.name"/>
    </Key>
    <Value ref="apiproxy.name"/>
    <Value ref="environment.name"/>
</Put>
Predeterminada N/A
Presencia Obligatorio
Tipo Cadena

Atributos

En la siguiente tabla, se describen los atributos del elemento <Value>:

Atributo Descripción Predeterminado Presencia
ref Especifica el nombre de una variable cuyo valor contiene los valores de clave que deseas establecer. N/A Obligatorio si no se proporciona un valor literal entre las etiquetas de apertura y de cierre. Se prohíbe si se proporciona un valor literal.

Referencia de errores

Los errores que muestran las políticas de Edge tienen un formato coherente, como se describe en la Referencia de código de error.

En esta sección, se describen los códigos y mensajes de error que se muestran y las variables de fallas que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de falla Estado de HTTP Causa Corregir
steps.keyvaluemapoperations.SetVariableFailed 500

Este error ocurre si intentas recuperar un valor de un mapa de clave-valor encriptado y establecer el valor en una variable cuyo nombre no tiene el prefijo private. El prefijo, que es necesario para fines de seguridad básicos durante la depuración, oculta los valores encriptados de las sesiones de depuración y de seguimiento del proxy de API.

steps.keyvaluemapoperations.UnsupportedOperationException 500

Este error se produce si el atributo mapIdentifier se configura como una string vacía en la política de operaciones de asignación de pares clave-valor.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa Corregir
InvalidIndex Si el atributo index especificado en el elemento <Get> de la política de operaciones de asignación de valores clave es cero o un número negativo, la implementación del proxy de API fallará. El índice comienza en 1, de modo que si un índice es cero o un número entero negativo, se considera no válido.
KeyIsMissing Este error se produce si falta por completo el elemento <Key> o si falta el elemento <Parameter> dentro del elemento <Key> debajo del <Entry> del elemento <InitialEntries> de la política de operaciones de asignación de pares clave-valor.
ValueIsMissing Este error se produce si falta el elemento <Value> debajo del elemento <Entry> del elemento <InitialEntries> de la política de operaciones de asignación de pares clave-valor.

Esquemas

Notas de uso

Para obtener una descripción general de los mapas de par clave-valor, consulta Cómo trabajar con mapas de par clave-valor.

Un almacén de mapas de par clave-valor proporciona un mecanismo de persistencia ligero para datos formateados como pares clave-valor. Puedes acceder a ellas en el entorno de ejecución a través de políticas o código. Un mapa contiene los datos arbitrarios en el formato key=value.

Por ejemplo: localhost=127.0.0.1, zip_code=94110 o first_name=felix. En el primer ejemplo, localhost es una clave y 127.0.0.1 es un valor. Cada par clave-valor se almacena como una entrada en un mapa de clave-valor. Un mapa de par clave-valor puede almacenar muchas entradas.

A continuación, se muestra un ejemplo del uso de mapas de pares clave-valor. Supongamos que necesitas almacenar una lista de direcciones IP asociados a varias infraestructuras entornos de prueba. Podrías crear un mapa de par clave-valor llamado ipAddresses que contenga un una lista de pares clave-valor como entradas. Por ejemplo, este archivo JSON puede representar ese mapa:

{
  "entry" : [ {
    "name" : "Development",
    "value" : "65.87.18.18"
  }, {
    "name" : "Staging",
    "value" : "65.87.18.22"
  } ],
  "name" : "ipAddresses"
}

Podrías usar esta estructura para crear un almacén de direcciones IP que las políticas podrían usar en el entorno de ejecución para aplicar de manera forzosa la lista de entidades permitidas o las listas de bloqueo de IP para seleccionar dinámicamente un destino de backend dirección, etcétera. Por lo general, la política KeyValueMapOperations se usa para almacenar o recuperar información de larga duración que se debe reutilizar en varias transacciones de solicitud o respuesta.

Los mapas clave-valor pueden manipularse con la política KeyValueMapOperations o directamente a través de la API de administración de Apigee Edge. Consulta la referencia de la API de administración para obtener detalles sobre la API de mapas clave-valor de la organización. Puedes usar la API para Por ejemplo, subir grandes conjuntos de datos al almacén de pares clave-valor o crear secuencias de comandos para administrar pares clave-valor entradas de mapa. Deberás crear un mapa de par clave-valor con la API antes de acceder a él con el KeyValueMapOperations.

Especifica y recupera nombres de claves

Con los elementos <Parameter> y <Value>, puedes especificar un valor literal (en el que el valor está entre las etiquetas de apertura y cierre) o usar el atributo ref para especificar el nombre de una variable cuyo valor se debe usar en el entorno de ejecución.

El elemento del parámetro merece una mención especial, ya que determina el nombre de la clave que y el nombre de la clave que quieres recuperar o borrar. A continuación, se presentan dos ejemplos. El primero especifica un nombre de clave literalmente y el segundo especifica un nombre de clave mediante una variable. Supongamos que se usan las siguientes opciones para crear claves en un KVM:

<Parameter>key_name_literal</Parameter>
<Parameter ref="key.name.variable"/>

En la primera instancia, el valor literal de "key_name_literal" se almacena en el KVM como la clave de la fuente de datos. En la segunda instancia, cualquier valor que esté en key.name.variable se convierte en nombre de la clave en el KVM. Por ejemplo, si key.name.variable incluyera la valor foo, la clave se llamaría "foo".

Cuando deseas recuperar la clave y un valor de clave con una operación GET (o borrar con una operación DELETE), la configuración <Parameter> debe coincidir con el nombre de la clave en el KVM. Por ejemplo, si el nombre de la clave en el KVM es "foo", puedes especificar el valor literal con <Parameter>foo</Parameter> o especificar una variable que contenga el valor exacto "foo", como la siguiente: <Parameter ref="variable.containing.foo"/>

Temas relacionados