Trabajo con datos de clave-valor - Amazon CloudFront

Trabajo con datos de clave-valor

Puede trabajar con pares clave-valor en los almacenes de clave-valor existentes de las siguientes maneras:

  • Usando la consola de Amazon CloudFront.

  • Usando la API de CloudFront KeyValueStore o su SDK de AWS preferido

En esta sección se describe cómo agregar pares clave-valor a los almacenes de clave-valor existentes. Para incluir pares clave-valor al crear inicialmente los almacenes de clave-valor, consulte Creación de un almacén de clave-valor.

Uso de pares clave-valor mediante la consola de CloudFront

Puede utilizar la consola de CloudFront para trabajar con los pares clave-valor.

Trabajo con pares clave-valor
  1. Inicie sesión en AWS Management Console y abra la página Funciones en la consola de CloudFront en https://console.aws.amazon.com/cloudfront/v4/home#/functions.

  2. Elija la pestaña KeyValueStores. Seleccione el almacén de clave-valor que desee cambiar. Aparecerá la página de detalles.

  3. En la sección Pares clave-valor, elija Editar.

  4. Puede agregar un par clave-valor, eliminar cualquier par clave-valor o cambiar el valor de un par clave-valor existente.

  5. Cuando haya terminado, elija Guardar cambios.

Uso de pares clave-valor mediante programación

nota

La API de CloudFront KeyValueStore tiene un espacio de nombres diferente al de la API de CloudFront.

Obtención de una referencia a un almacén de clave-valor

Al introducir una operación de escritura mediante CloudFront KeyValueStore, debe transmitir el ARN y la ETag de los almacenes de clave-valor. Para obtener estos datos, haga lo siguiente:

  1. Utilice la operación de enumeración de su API o SDK de CloudFront preferido. Por ejemplo, para la API de REST, utilice CloudFront.ListKeyValueStores. La respuesta incluye una lista de almacenes de clave-valor. Busque el nombre del almacén de clave-valor que desee cambiar.

  2. Utilice la operación de descripción de su API o SDK de CloudFront KeyValueStore preferido. Por ejemplo, para la API de REST, utilice CloudFrontKeyValueStore.DescribeKeyValueStore. Introduzca el nombre que obtuvo en el paso anterior.

    nota

    Utilice la operación desde la API de CloudFront KeyValueStore, no desde la API de CloudFront. Para obtener más información, consulte Acerca de CloudFront KeyValueStore.

    La respuesta incluye el ARN y la ETag de los almacenes de clave-valor.

    • El ARN incluye el número de Cuenta de AWS, el key-value-store constante y el UUID. Por ejemplo:

      arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

    • Una ETag tiene este aspecto: ETVABCEXAMPLE2

Cambio de los pares clave-valor en los almacenes de clave-valor

Puede trabajar con los pares clave-valor mediante las siguientes operaciones de la API o el SDK de CloudFront KeyValueStore que prefiera. Todas estas operaciones funcionan en los almacenes de clave-valor específicos:

  • CloudFrontKeyValueStore.DeleteKey: eliminar una clave. Consulte DeleteKey.

  • CloudFrontKeyValueStore.GetKey: obtener una clave. Consulte GetKey.

  • CloudFrontKeyValueStore.ListKeys: enumerar las claves. Consulte ListKeys.

  • CloudFrontKeyValueStore.PutKey: puede realizar dos acciones:

    • Crear un nuevo par clave-valor en almacenes de clave-valor: en este caso, transmita un nombre y un valor de clave nuevos.

    • Establecer un valor diferente en un par clave-valor existente: en este caso, transmita un nombre de clave existente y un valor de clave nuevo.

    Consulte PutKey.

  • CloudFrontKeyValueStore.UpdateKeys: puede realizar una o más de las siguientes acciones en una operación de todo o nada:

    • Eliminar uno o varios pares clave-valor.

    • Crear uno o varios pares clave-valor nuevos.

    • Establecer un valor diferente en uno o varios pares clave-valor existentes.

    Consulte UpdateKeys.

Acerca de CloudFront KeyValueStore

Para trabajar con pares clave-valor mediante programación en almacenes de clave-valor existentes, utilice el servicio de CloudFront KeyValueStore.

Para incluir algunos pares clave-valor en los almacenes de clave-valor al crear inicialmente los almacenes de clave-valor, utilice el servicio de CloudFront.

La operación de descripción

Tanto la API de CloudFront como la API de CloudFront KeyValueStore tienen una operación de descripción que devuelve datos sobre los almacenes de clave-valor:

  • La API de CloudFront proporciona datos como el estado y la fecha en que se modificó por última vez el propio almacén.

  • La API de CloudFront KeyValueStore proporciona datos sobre el contenido del recurso de almacenamiento: los pares clave-valor del almacén y el tamaño del contenido.

Las operaciones de descripción de las dos API devuelven datos ligeramente diferentes que identifican los almacenes de clave-valor:

  • La operación de descripción en la API de CloudFront devuelve una ETag, el UUID y el ARN de los almacenes de clave-valor.

  • La operación de descripción en la API de CloudFront KeyValueStore devuelve una ETag y el ARN de los almacenes de clave-valor.

nota

Cada operación de descripción devuelve una ETag diferente. Las ETags no son intercambiables.

Al realizar una operación en una de las API, debe transferir la ETag desde la API correspondiente. Por ejemplo, en la operación de eliminación en CloudFront KeyValueStore, transmita la ETag que obtuvo de la operación de descripción en CloudFront KeyValueStore.

Código de ejemplo para CloudFront KeyValueStore

ejemplo : Llamada a la operación de la API DescribeKeyValueStore

En el siguiente código de ejemplo, se muestra cómo llamar a la operación de la API DescribeKeyValueStore de un almacén de clave-valor.

const { CloudFrontKeyValueStoreClient, DescribeKeyValueStoreCommand, } = require("@aws-sdk/client-cloudfront-keyvaluestore"); require("@aws-sdk/signature-v4-crt"); (async () => { try { const client = new CloudFrontKeyValueStoreClient({ region: "us-east-1" }); const input = { KvsARN: "arn:aws:cloudfront::123456789012:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", }; const command = new DescribeKeyValueStoreCommand(input); const response = await client.send(command); } catch (e) { console.log(e); } })();