鍵值存放區的協助程式方法 - Amazon CloudFront

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

鍵值存放區的協助程式方法

注意

CloudFront Functions 的鍵值存放區協助程式方法呼叫不會觸發 AWS CloudTrail 資料事件。這些事件不會記錄在 CloudTrail 事件歷史記錄中。如需詳細資訊,請參閱 使用 記錄 Amazon CloudFront API 呼叫 AWS CloudTrail

如果您使用 CloudFront 鍵值存放區 在您建立的函數中包含鍵值,則本節內容適用。CloudFront Functions 具有的模組可提供三種協助程式方法來讀取鍵值存放區中的值。

若要在函數程式碼中使用此模組,請確定您已 將索引鍵值存放區與函數建立關聯

接著,在函數程式碼的第一行中包含下列陳述式:

import cf from 'cloudfront'; const kvsHandle = cf.kvs();

get() 方法

使用此方法可傳回您指定之金鑰名稱的金鑰值。

get("key", options);
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 格式表示。該值不包括到邊緣的傳播時間。