鍵值存放區的協助程式方法
注意
CloudFront Functions 的鍵值存放區 helper 方法呼叫不會觸發 AWS CloudTrail 資料事件。這些事件不會記錄在 CloudTrail 事件歷史記錄中。如需更多詳細資訊,請參閱 使用 AWS CloudTrail 以日誌記錄 Amazon CloudFront API 呼叫。
如果您使用 CloudFront 鍵值存放區在您建立的函數中包含鍵值,則本節內容適用。CloudFront Functions 具有的模組可提供三種協助程式方法來讀取鍵值存放區中的值。
若要在函數程式碼中使用此模組,請確定您已將索引鍵值存放區與函數建立關聯。
接著,在函數程式碼的第一行中包含下列陳述式:
import cf from 'cloudfront'; const kvsHandle = cf.kvs();
get() 方法
使用此方法傳回您指定的鍵名稱的鍵值。
請求
get("key",options);
-
key:需要擷取其值的鍵名稱 -
options:有一個選項,format。它可以確保函數正確解析資料。可能的值如下:-
string:(預設值) 以 UTF8 編碼 -
json -
bytes:原始二進位資料緩衝區
-
請求範例:
const value = await kvsHandle.get("myFunctionKey", { format: "string"});
回應:
回應是 promise,會以使用 options 請求的格式解析為值。根據預設,值會以字串傳回。
錯誤處理
當您請求的鍵不存在於關聯的鍵值存放區時,get() 方法會傳回錯誤。若要管理此使用案例,您可以將 try 和 catch 區塊新增至程式碼。
警告
使用 promise 組合器 (例如 Promise.all、Promise.any) 和 promise 鏈接方法 (例如 then 和 catch) 可能需要高函數記憶體用量。如果您的函數超過函數記憶體配額上限,則無法執行。為了避免此錯誤,建議您依序或在迴圈中使用 await 語法來請求多重值。
範例:
var value1 = await kvs.get('key1'); var value2 = await kvs.get('key2');
目前,使用 promise 組合器取得多重值並不會改善效能,範例如下。
var values = await Promise.all([kvs.get('key1'), kvs.get('key2'),]);
exists() 方法
使用此方法來識別鍵是否存在於鍵值存放區中。
請求
exists("key");
請求範例:
const exist = await kvsHandle.exists("myFunctionkey");
回應:
回應是傳回布林值 (true 或 false) 的 promise。此值指定鍵是否存在於鍵值存放區中。
meta() 方法
此方法會傳回有關鍵值存放區的中繼資料。
請求
meta();
請求範例:
const meta = await kvsHandle.meta();
回應:
回應是一個 promise,可解析為具有以下屬性的物件:
-
creationDateTime:鍵值存放區建立的日期和時間,以 ISO 8601 格式表示。 -
lastUpdatedDateTime:上次從來源同步的鍵值存放區的日期和時間,以 ISO 8601 格式表示。該值不包括到邊緣的傳播時間。 -
keyCount:上次從來源同步後 KVS 中的總鍵數。
回應範例:
{keyCount:3,creationDateTime:2023-11-30T23:07:55.765Z,lastUpdatedDateTime:2023-12-15T03:57:52.411Z}