

# Amazon CloudFront KeyValueStore
<a name="kvs-with-functions"></a>

CloudFront KeyValueStore es un almacén de datos clave-valor seguro, global y de baja latencia que permite el acceso de lectura desde [CloudFront Functions](cloudfront-functions.md), lo que permite una lógica personalizable avanzada en las ubicaciones periféricas de CloudFront. 

Con CloudFront KeyValueStore, puede actualizar el código de la función y los datos asociados a una función de forma independiente. Esta separación simplifica el código de la función y facilita la actualización de los datos sin necesidad de implementar cambios en el código. 

**nota**  
Para usar CloudFront KeyValueStore, la función de CloudFront debe usar el [tiempo de ejecución 2.0 de JavaScript](functions-javascript-runtime-20.md).

A continuación, se muestra el procedimiento general para usar pares clave-valor: 
+ Cree almacenes de clave-valor y llénelos con un conjunto de pares clave-valor. Puede agregar los almacenes de clave-valor a un bucket de Amazon S3 o introducirlos manualmente.
+ Asocie los almacenes de clave-valor a la función de CloudFront.
+ En el código de la función, utilice el nombre de la clave para recuperar el valor asociado a la clave o para evaluar si existe una clave. Para obtener más información sobre el uso de pares clave-valor en el código de la función y sobre los métodos auxiliares, consulte [Métodos auxiliares para almacenes de clave-valor](functions-custom-methods.md).

## Casos de uso
<a name="key-value-store-use-cases"></a>

Puede utilizar pares clave-valor para los siguientes ejemplos:
+ **Reescrituras o redirecciones de URL**: el par clave-valor puede contener las URL reescritas o las URL redirigidas.
+ **Pruebas A/B y marcadores de características**: puede crear una función para realizar experimentos asignando un porcentaje del tráfico a una versión específica del sitio web. 
+ **Autorización de acceso**: puede implementar el control de acceso para permitir o denegar las solicitudes en función de los criterios que haya definido y de los datos almacenados en un almacén de clave-valor.

## Formatos de valores compatibles
<a name="key-value-store-supported-formats"></a>

Puede almacenar el valor en un par clave-valor en cualquiera de los siguientes formatos:
+ Cadena
+ Cadena codificada en bytes
+ JSON 

## Seguridad
<a name="key-value-store-security"></a>

La función de CloudFront y todos los datos de los almacenes de clave-valor se gestionan de forma segura, de la siguiente manera:
+ CloudFront cifra cada almacén de clave-valor en reposo y durante el tránsito (al leer o escribir en los almacenes de clave-valor) cuando llame a las operaciones de la API [CloudFront KeyValueStore](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_Operations_Amazon_CloudFront_KeyValueStore.html).
+ Cuando se ejecuta la función, CloudFront descifra cada par clave-valor de la memoria en las ubicaciones periféricas de CloudFront. 

Para comenzar a utilizar CloudFront KeyValueStore, consulte los siguientes temas. 

**Topics**
+ [Casos de uso](#key-value-store-use-cases)
+ [Formatos de valores compatibles](#key-value-store-supported-formats)
+ [Seguridad](#key-value-store-security)
+ [Trabajo con un almacén de clave-valor](kvs-with-functions-kvs.md)
+ [Trabajo con datos de clave-valor](kvs-with-functions-kvp.md)
+ Para obtener más información sobre la introducción a CloudFront KeyValueStore, consulte la entrada de blog de AWS [Introducing Amazon CloudFront KeyValueStore](https://aws.amazon.com/blogs/aws/introducing-amazon-cloudfront-keyvaluestore-a-low-latency-datastore-for-cloudfront-functions/).

# Trabajo con un almacén de clave-valor
<a name="kvs-with-functions-kvs"></a>

Debe crear un almacén de clave-valor para almacenar los pares clave-valor que desee utilizar en CloudFront Functions. 

Una vez que cree los almacenes de clave-valor y los pares clave-valor agregados, puede usar las claves-valores en el código de la función de CloudFront. 

Para comenzar, consulte los siguientes temas: 

**Topics**
+ [Creación de un almacén de clave-valor](kvs-with-functions-create.md)
+ [Asociación de un almacén de clave-valor a una función](kvs-with-functions-associate.md)
+ [Actualización de un almacén de clave-valor](kvs-with-functions-edit.md)
+ [Obtención de una referencia a un almacén de clave-valor](kvs-with-functions-get-reference.md)
+ [Eliminación de un almacén de clave-valor](kvs-with-functions-delete.md)
+ [Formato de archivo para pares clave-valor](kvs-with-functions-create-s3-kvp.md)

**nota**  
El tiempo de ejecución 2.0 de JavaScript incluye algunos métodos auxiliares para trabajar con claves-valor en el código de la función. Para obtener más información, consulte [Métodos auxiliares para almacenes de clave-valor](functions-custom-methods.md).

# Creación de un almacén de clave-valor
<a name="kvs-with-functions-create"></a>



Puede crear un almacén de clave-valor y los pares clave-valor al mismo tiempo. Puede crear también un almacén de clave-valor vacío ahora y luego agregar pares clave-valor. 

**nota**  
Si especifica el origen de datos de un bucket de Amazon S3, debe tener los permisos `s3:GetObject` y `s3:GetBucketLocation` de ese bucket. Si no tiene estos permisos, CloudFront no podrá crear correctamente el almacén de clave-valor.

Decida si quiere agregar pares clave-valor al mismo tiempo cuando crea el almacén de clave-valor. Puede importar los pares clave-valor mediante la consola de CloudFront, la API de CloudFront o los AWS SDK. Sin embargo, solo puede importar el archivo de pares clave-valor cuando *inicialmente* crea el almacén de clave-valor. 

Para crear un archivo de pares clave-valor, consulte [Formato de archivo para pares clave-valor](kvs-with-functions-create-s3-kvp.md). 

------
#### [ Console ]

**Creación de un almacén de clave-valor**

1. Inicie sesión en Consola de administración de AWS y abra la página **Funciones** en la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home#/functions](https://console.aws.amazon.com/cloudfront/v4/home#/functions).

1. Elija la pestaña **KeyValueStores** y, a continuación, elija **Crear KeyValueStore**.

1. Introduzca un nombre y una descripción opcional para el almacén de clave-valor. 

1. Complete **URI de S3**: 
   + Si tiene un archivo de pares clave-valor, ingrese la ruta al bucket de Amazon S3 donde ha almacenado el archivo. 
   + Deje este campo en blanco si piensa ingresar los pares clave-valor manualmente. 

1. Seleccione **Crear**. El almacén de clave-valor ya existe.

   Aparece la página de detalles del nuevo almacén de clave-valor. La información de la página incluye el ID y el ARN del almacén de clave-valor. 
   + El ID es una cadena aleatoria de caracteres que es única en la Cuenta de AWS. 
   + El ARN tiene la siguiente sintaxis:

     *Cuenta de AWS*`:key-value-store/`*el ID del almacén de clave-valor*

1. Consulte la sección de **Pares clave-valor**. Si ha importado un archivo, en esta sección se muestran algunos pares clave-valor. Se puede hacer lo siguiente:
   + Si ha importado un archivo, también puede agregar más valores manualmente. 
   + Si no ha importado un archivo desde un bucket de Amazon S3 y desea agregar pares clave-valor ahora, puede completar el siguiente paso.
   + Puede omitir este paso y agregar los pares clave-valor más adelante. 

1. Para agregar los pares ahora:

   1. Elija **Agregar pares clave-valor**. 

   1. Seleccione **Agregar par** e introduzca un nombre y un valor. Repita este paso para agregar más pares.

   1. Cuando haya terminado, elija **Guardar cambios** para guardar todos los pares clave-valor del almacén de clave-valor. En el cuadro de diálogo que aparece, elija **Listo**.

1. Para asociar ahora el almacén de clave-valor a una función, complete la sección **Funciones asociadas**. Para obtener más información, consulte [Creación de funciones](create-function.md) o [Actualización de funciones](update-function.md). 

   También puede asociar la función más adelante, ya sea desde esta página de detalles del almacén de clave-valor o desde la página de detalles de la función.

------
#### [ AWS CLI ]

**Creación de un almacén de clave-valor**
+ Ejecute el siguiente comando para crear un almacén clave-valor e importar los pares clave-valor de un bucket de Amazon S3.

  ```
  aws cloudfront create-key-value-store \
      --name=keyvaluestore1 \
      --comment="This is my key value store file" \
      --import-source=SourceType=S3,SourceARN=arn:aws:s3:::amzn-s3-demo-bucket1/kvs-input.json
  ```

  **Respuesta**

  ```
  {
      "ETag": "ETVABCEXAMPLE",
      "Location": "https://cloudfront.amazonaws.com/2020-05-31/key-value-store/arn:aws:cloudfront::123456789012:key-value-store/8aa76c93-3198-462c-aaf6-example",
      "KeyValueStore": {
          "Name": "keyvaluestore1",
          "Id": "8aa76c93-3198-462c-aaf6-example",
          "Comment": "This is my key value store file",
          "ARN": "arn:aws:cloudfront::123456789012:key-value-store/8aa76c93-3198-462c-aaf6-example",
          "Status": "PROVISIONING",
          "LastModifiedTime": "2024-08-06T22:19:10.813000+00:00"
      }
  }
  ```

------
#### [ API ]

**Creación de un almacén de clave-valor**

1. Utilice la operación [CreateKeyValueStore de CloudFront](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateKeyValueStore.html). La operación requiere varios parámetros:
   + Un `name` del almacén de clave-valor.
   + Un parámetro `comment` que incluye un comentario.
   + Un parámetro `import-source` que permite importar pares clave-valor desde un archivo almacenado en un bucket de Amazon S3. Solo podrá importar desde un archivo cuando cree por primera vez el almacén clave-valor. Para obtener información sobre la estructura de archivos, consulte [Formato de archivo para pares clave-valor](kvs-with-functions-create-s3-kvp.md).

La respuesta de la operación incluye la siguiente información:
+ Los valores transferidos en la solicitud, incluido el nombre que asignó.
+ Datos como la hora de creación.
+ Una `ETag` (por ejemplo, `ETVABCEXAMPLE`), el ARN que incluye el nombre del almacén de clave-valor (por ejemplo, `arn:aws:cloudfront::123456789012:key-value-store/keyvaluestore1`). 

  Utilizará alguna combinación de la `ETag`, el ARN y el nombre para trabajar con el almacén de clave-valor mediante programación.

------

## Estados del almacén de clave-valor
<a name="key-value-store-status"></a>

Al crear un almacén de clave-valor, el almacén de datos puede tener los siguientes valores de estado.


****  

| Valor | Descripción | 
| --- | --- | 
|  **Aprovisionando**  |  Se ha creado el almacén de clave-valor y CloudFront está procesando el origen de datos que usted ha especificado.  | 
|  **Ready**  |  Se ha creado el almacén de clave-valor y CloudFront ha procesado correctamente el origen de datos que usted ha especificado.  | 
|  **Error al importar**  |  CloudFront no ha podido procesar el origen de datos que usted ha especificado. Este estado puede aparecer si el formato de archivo no es válido o si supera el límite de tamaño. Para obtener más información, consulte [Formato de archivo para pares clave-valor](kvs-with-functions-create-s3-kvp.md).  | 

# Asociación de un almacén de clave-valor a una función
<a name="kvs-with-functions-associate"></a>

Después de crear el almacén de clave-valor, puede actualizar la función para asociarla al almacén de clave-valor. Debe realizar esta asociación para utilizar los pares clave-valor de ese almacén en esa función. Se aplican las siguientes reglas:
+ Una función solo puede tener un almacén de clave-valor
+ Puede asociar el mismo almacén de clave-valor a varias funciones

------
#### [ Console ]

**Asociación de un almacén de clave-valor a una función**

1. Inicie sesión en la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home#/functions](https://console.aws.amazon.com/cloudfront/v4/home#/functions) y elija la página **Funciones**.

1. Elija el nombre de la función.

1. Vaya a la sección **Asociar KeyValueStore** y elija **Asociar KeyValueStore existente**.

1. Seleccione el almacén de clave-valor que contiene los pares clave-valor de la función y, a continuación, elija **Asociar KeyValueStore**.

   CloudFront asocia inmediatamente el almacén a la función. No necesita guardar la función.

1. Para especificar un almacén de clave-valor diferente, elija **Actualizar KeyValueStore asociado**, seleccione otro nombre de almacén de clave-valor y, a continuación, elija **Asociar KeyValueStore**.

Para obtener más información, consulte [Actualización de funciones](update-function.md).

------
#### [ AWS CLI ]

**Asociación de un almacén de clave-valor a una función**
+ Ejecute el siguiente comando para actualizar la función `MaxAge` y asociar un recurso de almacén de clave-valor.

  ```
  aws cloudfront update-function \
      --name MaxAge \
      --function-config '{"Comment":"Max Age 2 years","Runtime":"cloudfront-js-2.0","KeyValueStoreAssociations":{"Quantity":1,"Items":[{"KeyValueStoreARN":"arn:aws:cloudfront::123456789012:key-value-store/8aa76c93-3198-462c-aaf6-example"}]}}' \
      --function-code fileb://function-max-age-v1.js \
      --if-match ETVABCEXAMPLE
  ```
+ Para asociar un almacén de clave-valor a una función, especifique el parámetro `KeyValueStoreAssociations` y el ARN del almacén de clave-valor. 
+ Para cambiar la asociación, especifique otro ARN de almacén de clave-valor. 
+ Para eliminar la asociación, quite el parámetro `KeyValueStoreAssociations`. 

Para obtener más información, consulte [Actualización de funciones](update-function.md).

------
#### [ API ]

**Asociación de un almacén de clave-valor a una función**
+ Utilice la operación de la API [UpdateFunction](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateFunction.html). Para obtener más información, consulte [Actualización de funciones](update-function.md).

------

**Notas**  
Si modifica un almacén de clave-valor sin cambiar los pares clave-valor o si solo modifica los pares clave-valor sin cambiar el almacén de clave-valor, no necesita volver a asociarlo. Tampoco necesita volver a publicar la función.  
Sin embargo, le recomendamos que pruebe la función para comprobar que funciona según lo previsto. Para obtener más información, consulte [Prueba de funciones](test-function.md).
Puede ver todas las funciones que utilizan determinados almacenes de clave-valor. En la consola de CloudFront, elija la página de detalles del almacén de clave-valor. 

# Actualización de un almacén de clave-valor
<a name="kvs-with-functions-edit"></a>

Al actualizar un almacén de clave-valor, puede cambiar los pares clave-valor o cambiar la asociación entre el almacén de clave-valor y la función.

------
#### [ Console ]

**Actualización de un almacén de clave-valor**

1. Inicie sesión en Consola de administración de AWS y abra la página **Funciones** en la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home#/functions](https://console.aws.amazon.com/cloudfront/v4/home#/functions).

1. Elija la pestaña **KeyValueStores**.

1.  Seleccione el almacén de clave-valor que desee actualizar. 
   + Para actualizar los pares clave-valor, elija **Editar** en la sección **Pares clave-valor**. Puede agregar o eliminar cualquier par clave-valor. También puede cambiar el valor de un par clave-valor existente. Cuando haya finalizado, elija **Save changes** (Guardar cambios).
   + Para actualizar la asociación de este almacén de clave-valor, elija **Ir a las funciones**. Para obtener más información, consulte [Asociación de un almacén de clave-valor a una función](kvs-with-functions-associate.md).

------
#### [ AWS CLI ]

**Actualización de un almacén de clave-valor**

1. **Cambiar los pares clave-valor**: puede agregar más pares clave-valor, eliminar uno o varios pares clave-valor y cambiar el valor de un par clave-valor existente. Para obtener más información, consulte [Trabajo con datos de clave-valor](kvs-with-functions-kvp.md).

1. **Cambiar la asociación de funciones para el almacén de clave-valor**: para actualizar la asociación de funciones para el almacén de clave-valor, consulte [Asociación de un almacén de clave-valor a una función](kvs-with-functions-associate.md). 
**sugerencia**  
Necesitará el ARN del almacén de clave-valor. Para obtener más información, consulte [Obtención de una referencia a un almacén de clave-valor](kvs-with-functions-get-reference.md).

------
#### [ API ]

**Actualización de un almacén de clave-valor**

1. **Cambiar los pares clave-valor**: puede agregar más pares clave-valor, eliminar uno o varios pares clave-valor y cambiar el valor de un par clave-valor existente. Para obtener más información, consulte [Trabajo con datos de clave-valor](kvs-with-functions-kvp.md).

1. **Cambiar la asociación de funciones para el almacén de clave-valor**: para actualizar la asociación de funciones para el almacén de clave-valor, utilice la operación de la API [UpdateFunction](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateFunction.html). Para obtener más información, consulte [Actualización de funciones](update-function.md). 
**sugerencia**  
Necesitará el ARN del almacén de clave-valor. Para obtener más información, consulte [Obtención de una referencia a un almacén de clave-valor](kvs-with-functions-get-reference.md).

------

# Obtención de una referencia a un almacén de clave-valor
<a name="kvs-with-functions-get-reference"></a>

Para trabajar con los almacenes de clave-valor mediante programación, necesita la `ETag` y el nombre del almacén de clave-valor. 

Para obtener ambos valores, puede usar la AWS Command Line Interface (AWS CLI) o la API de CloudFront.

------
#### [ AWS CLI ]

**Obtención de la referencia del almacén de clave-valor**

1. Para obtener una lista de almacenes de clave-valor, ejecute el siguiente comando. Busque el nombre del almacén de clave-valor que desea modificar.

   ```
   aws cloudfront list-key-value-stores
   ```

1. A partir de la respuesta, busque el nombre del almacén de clave-valor que desee.

   **Respuesta**

   ```
   {
       "KeyValueStoreList": {
           "Items": [
               {
                   "Name": "keyvaluestore3",
                   "Id": "37435e19-c205-4271-9e5c-example3",
                   "ARN": "arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example3",
                   "Status": "READY",
                   "LastModifiedTime": "2024-05-08T14:50:18.876000+00:00"
               },
               {
                   "Name": "keyvaluestore2",
                   "Id": "47970d59-6408-474d-b850-example2",
                   "ARN": "arn:aws:cloudfront::123456789012:key-value-store/47970d59-6408-474d-b850-example2",
                   "Status": "READY",
                   "LastModifiedTime": "2024-05-30T21:06:22.113000+00:00"
               },
               {
                   "Name": "keyvaluestore1",
                   "Id": "8aa76c93-3198-462c-aaf6-example",
                   "ARN": "arn:aws:cloudfront::123456789012:key-value-store/8aa76c93-3198-462c-aaf6-example",
                   "Status": "READY",
                   "LastModifiedTime": "2024-08-06T22:19:30.510000+00:00"
               }
           ]
       }
   }
   ```

1. Ejecute el siguiente comando para devolver la `ETag` para el almacén de clave-valor especificado.

   ```
   aws cloudfront describe-key-value-store \
       --name=keyvaluestore1
   ```

   **Respuesta**

   ```
   {
       "ETag": "E3UN6WX5RRO2AG",
       "KeyValueStore": {
           "Name": "keyvaluestore1",
           "Id": "8aa76c93-3198-462c-aaf6-example",
           "Comment": "This is an example KVS",
           "ARN": "arn:aws:cloudfront::123456789012:key-value-store/8aa76c93-3198-462c-aaf6-example",
           "Status": "READY",
           "LastModifiedTime": "2024-08-06T22:19:30.510000+00:00"
       }
   }
   ```

------
#### [ API ]

**Obtención de la referencia del almacén de clave-valor**

1. Utilice la operación de la API [https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListKeyValueStores.html](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListKeyValueStores.html) para obtener una lista de almacenes de clave-valor. Busque el nombre del almacén de clave-valor que desee cambiar. 

1. Utilice la operación de la API [https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DescribeKeyValueStore.html](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DescribeKeyValueStore.html) y especifique el nombre del almacén de clave-valor que devolvió en el paso anterior. 

------

La respuesta incluye un UUID, el ARN del almacén de clave-valor y la `ETag` del almacén de clave-valor.
+ Una `ETag`, como `E3UN6WX5RRO2AG`
+ El UUID es de 128 bits, como `8aa76c93-3198-462c-aaf6-example`
+ El ARN incluye el número de Cuenta de AWS, el `key-value-store` constante y el UUID, como en el siguiente ejemplo:

  `arn:aws:cloudfront::123456789012:key-value-store/8aa76c93-3198-462c-aaf6-example`

Para obtener más información acerca de la operación `DescribeKeyValueStore`, consulte [Acerca de CloudFront KeyValueStore](kvs-with-functions-kvp.md#kvs-with-functions-api-describe).

# Eliminación de un almacén de clave-valor
<a name="kvs-with-functions-delete"></a>

Puede eliminar el almacén de clave-valor mediante la consola de Amazon CloudFront o la API.

------
#### [ Console ]

**Eliminación de un almacén de clave-valor**

1. Inicie sesión en Consola de administración de AWS y abra la página **Funciones** en la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home#/functions](https://console.aws.amazon.com/cloudfront/v4/home#/functions).

1. Elija el nombre de la función.

1. En la sección **KeyValueStore asociado**, compruebe si hay un almacén de clave-valor asociado a la función. Si es así, elimine la asociación eligiendo **Desasociar KeyValueStore** y, a continuación, elija **Eliminar asociación**.

1. En el panel de navegación, elija la página **Funciones** y, a continuación, elija la pestaña **KeyValueStores**. 

1. Seleccione el almacén de clave-valor que desea eliminar y, a continuación, elija **Eliminar**.

------
#### [ AWS CLI ]

**Eliminación de un almacén de clave-valor**

1. Obtenga la `ETag` y el nombre de los almacenes de clave-valor. Para obtener más información, consulte [Obtención de una referencia a un almacén de clave-valor](kvs-with-functions-get-reference.md).

1. Compruebe si los almacenes de clave-valor están asociados a una función. Si lo está, elimine la asociación. Para obtener más información sobre los dos pasos, consulte [Actualización de funciones](update-function.md).

1. Cuando tenga el nombre y la `ETag` del almacén de clave-valor y ya no esté asociado a una función, podrá eliminarlo.

   Ejecute el siguiente comando para eliminar el almacén de clave-valor especificado.

   ```
   aws cloudfront delete-key-value-store \
       --name=keyvaluestore1 \
       --if-match=E3UN6WX5RRO2AG
   ```

------
#### [ API ]

**Eliminación de un almacén de clave-valor**

1. Obtenga la `ETag` y el nombre de los almacenes de clave-valor. Para obtener más información, consulte [Obtención de una referencia a un almacén de clave-valor](kvs-with-functions-get-reference.md).

1. Compruebe si los almacenes de clave-valor están asociados a una función. Si lo está, elimine la asociación. Para obtener más información sobre los dos pasos, consulte [Actualización de funciones](update-function.md).

1. Para eliminar el almacén de clave-valor, utilice la operación de la API [https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DeleteKeyValueStore.html](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DeleteKeyValueStore.html) de CloudFront.

------

# Formato de archivo para pares clave-valor
<a name="kvs-with-functions-create-s3-kvp"></a>

Al crear un archivo codificado con UTF-8, utilice el siguiente formato JSON:

```
{
  "data":[
    {
      "key":"key1",
      "value":"value"
    },
    {
      "key":"key2",
      "value":"value"
    }
  ]
}
```

El archivo no puede incluir claves duplicadas. Si especificó un archivo no válido en el bucket de Amazon S3, puede actualizar el archivo para eliminar cualquier duplicado y, a continuación, intentar crear de nuevo el almacén de clave-valor.

Para obtener más información, consulte [Creación de un almacén de clave-valor](kvs-with-functions-create.md).

**nota**  
El archivo de su origen de datos y sus pares clave-valor tienen los siguientes límites:  
Tamaño del archivo: 5 MB
Tamaño de la clave: 512 caracteres
Tamaño del valor: 1024 caracteres

# Trabajo con datos de clave-valor
<a name="kvs-with-functions-kvp"></a>

Este tema describe cómo agregar pares clave-valor a un almacén de clave-valor existente. Para incluir pares clave-valor al crear inicialmente los almacenes de clave-valor, consulte [Creación de un almacén de clave-valor](kvs-with-functions-create.md).

**Topics**
+ [Uso de pares clave-valor (consola)](#kvs-with-functions-kvp-using-console)
+ [Acerca de CloudFront KeyValueStore](#kvs-with-functions-api-describe)
+ [Uso de pares clave-valor (AWS CLI)](#work-with-kvs-cli-keys)
+ [Uso de pares clave-valor (API)](#kvs-with-functions-kvp-using-api)

## Uso de pares clave-valor (consola)
<a name="kvs-with-functions-kvp-using-console"></a>

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

**Trabajo con pares clave-valor**

1. Inicie sesión en Consola de administración de AWS y abra la página **Funciones** en la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home#/functions](https://console.aws.amazon.com/cloudfront/v4/home#/functions).

1. Elija la pestaña **KeyValueStores**. 

1. Seleccione el almacén de clave-valor que desee cambiar.

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

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

1. Cuando haya finalizado, elija **Save changes** (Guardar cambios).

## Acerca de CloudFront KeyValueStore
<a name="kvs-with-functions-api-describe"></a>

**sugerencia**  
La API KeyValueStore de CloudFront es un servicio global que utiliza Signature Version 4A (SigV4A) para la autenticación. Utilizar credenciales temporales con SigV4A requiere tokens de sesión de la versión 2. Para obtener más información, consulte [Uso de credenciales temporales con la API KeyValueStore de CloudFront](cloudfront-function-restrictions.md#regional-endpoint-for-key-value-store).

Si utiliza la AWS Command Line Interface (AWS CLI) o el código propio para llamar a la API KeyValueStore de CloudFront, consulte las secciones siguientes. 

Cuando trabaja con un almacén de clave-valor y sus pares clave-valor, el servicio al que llame depende del caso de uso:
+ Para trabajar con pares clave-valor en un almacén de clave-valor *existente*, utilice el servicio KeyValueStore de CloudFront. 
+ Para incluir pares clave-valor en el almacén de clave-valor al crear *inicialmente* el almacén de clave-valor, utilice el servicio de CloudFront.

Tanto la API de CloudFront como la API de CloudFront KeyValueStore tienen una operación `DescribeKeyValueStore`. Las llama por diferentes motivos. Para entender las diferencias, consulte la siguiente tabla.


|  | API de CloudFront DescribeKeyValueStore | API de CloudFront KeyValueStore DescribeKeyValueStore | 
| --- | --- | --- | 
| Datos sobre el almacén de clave-valor |  Devuelve datos, como el estado y la fecha en que se modificó por última vez el propio almacén de clave-valor.  |  Devuelve datos sobre el *contenido* del recurso de almacenamiento: los pares clave-valor del almacén y el tamaño del contenido.  | 
| Datos que identifican el almacén de clave-valor |  Devuelve una `ETag`, el UUID y el ARN del almacén de clave-valor.  |  Devuelve una `ETag` y el ARN del almacén de clave-valor.  | 

**Notas**  
Cada operación DescribeKeyValueStore devuelve una `ETag` *diferente*. Las `ETags` no son intercambiables.
Al llamar a una operación de la API para completar una acción, debe especificar la `ETag` de la API correspondiente. Por ejemplo, en la operación [DeleteKey](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_DeleteKey.html) de KeyValueStore de CloudFront, especifique la `ETag` que devolvió de la operación [https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_DescribeKeyValueStore.html](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_DescribeKeyValueStore.html) de KeyValueStore de CloudFront.
Cuando invoca CloudFront Functions mediante CloudFront KeyValueStore, los valores del almacén de valores clave no se actualizan ni cambian durante la invocación de la función. Las actualizaciones se procesan entre las invocaciones de una función.

## Uso de pares clave-valor (AWS CLI)
<a name="work-with-kvs-cli-keys"></a>

Puede ejecutar los siguientes comandos de la AWS Command Line Interface para KeyValueStore de CloudFront.

**Contents**
+ [Enumeración de pares clave-valor](#kvs-cli-list-keys)
+ [Obtención de pares clave-valor](#kvs-cli-get-keys)
+ [Descripción de un almacén de clave-valor](#kvs-cli-describe-keys)
+ [Creación de un par clave-valor](#kvs-cli-create-keys)
+ [Eliminación de un par clave-valor](#kvs-cli-delete-keys)
+ [Actualización de pares clave-valor](#kvs-cli-update-key)

### Enumeración de pares clave-valor
<a name="kvs-cli-list-keys"></a>

Para enumerar los pares clave-valor del almacén de clave-valor, ejecute el siguiente comando.

```
aws cloudfront-keyvaluestore list-keys \
    --kvs-arn=arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example
```

**Respuesta**

```
{
    "Items": [
        {
            "Key": "key1",
            "Value": "value1"
        }
    ]
}
```

### Obtención de pares clave-valor
<a name="kvs-cli-get-keys"></a>

Para obtener un par clave-valor del almacén de clave-valor, ejecute el siguiente comando.

```
aws cloudfront-keyvaluestore get-key \
    --key=key1 \
    --kvs-arn=arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example
```

**Respuesta**

```
{
    "Key": "key1",
    "Value": "value1",
    "ItemCount": 1,
    "TotalSizeInBytes": 11
}
```

### Descripción de un almacén de clave-valor
<a name="kvs-cli-describe-keys"></a>

Para describir un almacén de clave-valor, ejecute el siguiente comando.

```
aws cloudfront-keyvaluestore describe-key-value-store \
    --kvs-arn=arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example
```

**Respuesta**

```
{
    "ETag": "KV1F83G8C2ARO7P",
    "ItemCount": 1,
    "TotalSizeInBytes": 11,
    "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example",
    "Created": "2024-05-08T07:48:45.381000-07:00",
    "LastModified": "2024-08-05T13:50:58.843000-07:00",
    "Status": "READY"
}
```

### Creación de un par clave-valor
<a name="kvs-cli-create-keys"></a>

Para crear un par clave-valor en el almacén de clave-valor, ejecute el siguiente comando.

```
aws cloudfront-keyvaluestore put-key \
    --if-match=KV1PA6795UKMFR9 \
    --key=key2 \
    --value=value2 \
    --kvs-arn=arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example
```

**Respuesta**

```
{
    "ETag": "KV13V1IB3VIYZZH",
    "ItemCount": 3,
    "TotalSizeInBytes": 31
}
```

### Eliminación de un par clave-valor
<a name="kvs-cli-delete-keys"></a>

Para eliminar un par clave-valor, ejecute el siguiente comando.

```
aws cloudfront-keyvaluestore delete-key \
    --if-match=KV13V1IB3VIYZZH \
    --key=key1 \
    --kvs-arn=arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example
```

**Output**

```
{
    "ETag": "KV1VC38T7YXB528",
    "ItemCount": 2,
    "TotalSizeInBytes": 22
}
```

### Actualización de pares clave-valor
<a name="kvs-cli-update-key"></a>

Puede utilizar el comando `update-keys` para actualizar más de un par clave-valor. Por ejemplo, para eliminar un par clave-valor existente y crear otro, ejecute el siguiente comando.

```
aws cloudfront-keyvaluestore update-keys \
    --if-match=KV2EUQ1WTGCTBG2 \
    --kvs-arn=arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example \
    --deletes '[{"Key":"key2"}]' \
    --puts '[{"Key":"key3","Value":"value3"}]'
```

**Respuesta**

```
{
    "ETag": "KV3AEGXETSR30VB",
    "ItemCount": 3,
    "TotalSizeInBytes": 28
}
```

## Uso de pares clave-valor (API)
<a name="kvs-with-functions-kvp-using-api"></a>

Siga esta sección para trabajar con los pares clave-valor mediante programación. 

**Contents**
+ [Obtención de una referencia a un almacén de clave-valor](#kvs-with-functions-api-ref)
+ [Cambio de los pares clave-valor en un almacén de clave-valor](#kvs-with-functions-api-actions)
+ [Código de ejemplo para CloudFront KeyValueStore](#example-code-key-value-store)

### Obtención de una referencia a un almacén de clave-valor
<a name="kvs-with-functions-api-ref"></a>

Cuando utilice la API KeyValueStore de CloudFront para llamar a una operación de escritura, debe especificar el ARN y la `ETag` del almacén de clave-valor. Para obtener estos datos, haga lo siguiente:

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

1. Utilice la operación de la API [https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListKeyValueStores.html](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListKeyValueStores.html) para obtener una lista de almacenes de clave-valor. Busque el almacén de clave-valor que desee cambiar. 

1. Utilice la [operación de la API CloudFrontKeyValueStore DescribeKeyValueStore](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_DescribeKeyValueStore.html) y especifique el almacén de clave-valor del paso anterior.

   La respuesta incluye el ARN y la `ETag` del almacén de clave-valor. 
   + El ARN incluye el número de Cuenta de AWS, el `key-value-store` constante y el UUID, como en el siguiente ejemplo:

     `arn:aws:cloudfront::123456789012:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`
   + Una `ETag` como la del siguiente ejemplo: 

     `ETVABCEXAMPLE2`

### Cambio de los pares clave-valor en un almacén de clave-valor
<a name="kvs-with-functions-api-actions"></a>

Puede especificar el almacén de clave-valor que contiene el par clave-valor que desea actualizar. 

Consulte las siguientes operaciones de la API de CloudFront KeyValueStore:
+ [CloudFrontKeyValueStore DeleteKey](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_DeleteKey.html): elimina un par clave-valor
+ [CloudFrontKeyValueStore GetKey](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_GetKey.html): devuelve un par clave-valor
+ [CloudFrontKeyValueStore ListKeys](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_ListKeys.html): devuelve una lista de pares clave-valor 
+ [CloudFrontKeyValueStore PutKey](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_PutKey.html): puede realizar las siguientes tareas:
  + Cree un par clave-valor en un almacén de clave-valor especificando un nombre y un valor de clave nuevos.
  + Establezca un valor diferente en un par clave-valor existente especificando un nombre de clave existente y un valor de clave nuevo.
+ [CloudFrontKeyValueStore UpdateKeys](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_UpdateKeys.html): puede realizar una o más de las siguientes acciones en una operación de todo o nada:
  + Eliminación de uno o varios pares clave-valor
  + Creación de uno o varios pares clave-valor nuevos
  + Establecimiento de un valor diferente en uno o varios pares clave-valor existentes

### Código de ejemplo para CloudFront KeyValueStore
<a name="example-code-key-value-store"></a>

**Example**  
En el siguiente código, 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);
  }
})();
```