Métodos auxiliares para almacenes de clave-valor
nota
Las llamadas de métodos auxiliares del almacén de valores de claves desde CloudFront Functions no desencadenan un evento de datos de AWS CloudTrail. Estos eventos no se registran en el historial de eventos de CloudTrail. Para obtener más información, consulte Registro de llamadas a la API de Amazon CloudFront con AWS CloudTrail.
Esta sección se aplica si utiliza el Almacén de clave-valor de CloudFront para incluir claves-valores en la función que cree. CloudFront Functions tiene un módulo que proporciona tres métodos auxiliares para leer valores del almacén de clave-valor.
Para utilizar este módulo en el código de la función, asegúrese de haber asociado un almacén de clave-valor a la función.
A continuación, incluya las siguientes instrucciones en las primeras líneas del código de la función:
import cf from 'cloudfront'; const kvsHandle = cf.kvs();
Método de get()
Utilice este método para devolver el valor de clave del nombre de clave que especifique.
Solicitud
get("
key
",options
);
-
key
: el nombre de la clave cuyo valor desea recuperar -
options
: hay una opción,format
. Garantiza que la función analice correctamente los datos. Valores posibles:-
string
: (predeterminado) codificado en UTF8 -
json
-
bytes
: búfer de datos binarios sin procesar
-
Ejemplo de solicitud
const value = await kvsHandle.get("myFunctionKey", { format: "string"});
Respuesta
La respuesta es una promise
que se resuelve en un valor en el formato solicitado mediante el uso de options
. De forma predeterminada, el valor se devuelve como una cadena.
Gestión de errores
El método get()
devolverá un error cuando la clave que ha solicitado no exista en el almacén de clave-valor asociado. Para administrar este caso de uso, puede agregar un bloque try
y catch
al código.
aviso
El uso de combinadores de promesas (por ejemplo, Promise.all
, Promise.any
) y métodos de cadena de promesas (por ejemplo, then
y catch
) puede requerir un uso elevado de la memoria de la función. Si la función supera la cuota de memoria máxima de la función, no se ejecutará. Para evitar este error, le recomendamos que utilice la sintaxis await
de forma secuencial o en bucles para solicitar varios valores.
Ejemplo
var value1 = await kvs.get('key1'); var value2 = await kvs.get('key2');
Actualmente, el uso de combinadores de promesas para obtener varios valores no mejorará el rendimiento, como en el siguiente ejemplo.
var values = await Promise.all([kvs.get('key1'), kvs.get('key2'),]);
Método de exists()
Utilice este método para identificar si la clave existe o no en el almacén de clave-valor.
Solicitud
exists("
key
");
Ejemplo de solicitud
const exist = await kvsHandle.exists("myFunctionkey");
Respuesta
La respuesta es una promise
que devuelve un valor booleano (true
o false
). Este valor especifica si la clave existe o no en el almacén de clave-valor.
Método de meta()
Utilice este método para devolver metadatos sobre el almacén de clave-valor.
Solicitud
meta();
Ejemplo de solicitud
const meta = await kvsHandle.meta();
Respuesta
La respuesta es una promise
que se resuelve en un objeto con las siguientes propiedades:
-
creationDateTime
: la fecha y hora en formato ISO 8601 de creación del almacén de clave-valor. -
lastUpdatedDateTime
: la fecha y hora en formato ISO 8601 de última sincronización del almacén de clave-valor desde el origen. El valor no incluye el tiempo de propagación hasta la periferia. -
keyCount
: el número total de claves del KVS tras la última sincronización desde el origen.
Ejemplo de respuesta
{keyCount:3,creationDateTime:2023-11-30T23:07:55.765Z,lastUpdatedDateTime:2023-12-15T03:57:52.411Z}