キーバリューストアのヘルパーメソッド
注記
CloudFront Functions からのキーバリューストアのヘルパーメソッド呼び出しは、AWS CloudTrail データイベントをトリガーしません。これらのイベントは CloudTrail イベント履歴には記録されません。詳細については、「AWS CloudTrail を使用した Amazon CloudFront API コールのログ記録」を参照してください。
このセクションは、CloudFront キーバリューストアを使用して作成する関数にキー値を含める場合に適用されます。CloudFront Functions には、キーバリューストアから値を読み取る 3 つのヘルパーメソッドを提供するモジュールがあります。
このモジュールを関数コードで使用するには、関数にキーバリューストアを関連付ける必要があります。
次に、関数コードの最初の行に、以下のステートメントを含めます。
import cf from 'cloudfront'; const kvsHandle = cf.kvs();
get() 方法
このメソッドを使用して、指定したキー名のキー値を返します。
[リクエスト]
get("key",options);
-
key: 値をフェッチする必要があるキーの名前 -
options: 1 つのオプション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");
レスポンス
レスポンスは promise であり、ブール値 (true または false) を返します。この値は、キーがキーバリューストアに存在するかどうかを示します。
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}