

# 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);
  }
})();
```