本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
鍵值存放區的協助程式方法
注意
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 格式表示。該值不包括到邊緣的傳播時間。