

# キーと値のデータを操作する
<a name="kvs-with-functions-kvp"></a>

このトピックでは、既存のキーバリューストアにキーと値のペアを追加する方法について説明します。キーバリューストアを最初に作成するときに、キーと値のペアを含めるには、「[キーバリューストアの作成](kvs-with-functions-create.md)」を参照してください。

**Topics**
+ [key-value ペアを使用する (コンソール)](#kvs-with-functions-kvp-using-console)
+ [CloudFront KeyValueStore について](#kvs-with-functions-api-describe)
+ [key-value ペアを使用する (AWS CLI)](#work-with-kvs-cli-keys)
+ [key-value ペアを使用する (API)](#kvs-with-functions-kvp-using-api)

## key-value ペアを使用する (コンソール)
<a name="kvs-with-functions-kvp-using-console"></a>

CloudFront コンソールを使用してキーと値のペアを操作できます。

**キーと値のペアを使用するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home#/functions](https://console.aws.amazon.com/cloudfront/v4/home#/functions) で CloudFront コンソールの **[関数]** ページを開きます。

1. **[KeyValueStores]** タブを選択します。

1. 変更するキーバリューストアを選択します。

1. **[キーと値のペア]** セクションで、**[編集]** を選択します。

1. キーと値のペアを追加または削除したり、既存のキーと値のペアの値を変更したりできます。

1. 完了したら、[**変更の保存**] を選択します。

## CloudFront KeyValueStore について
<a name="kvs-with-functions-api-describe"></a>

**ヒント**  
CloudFront KeyValueStore API は、認証に Signature Version 4A (SigV4A) を使用するグローバルサービスです。SigV4A で一時的な認証情報を使用するには、Version 2 のセッショントークンが必要です。詳細については、「[CloudFront KeyValueStore API での一時的な認証情報の使用](cloudfront-function-restrictions.md#regional-endpoint-for-key-value-store)」を参照してください。

AWS Command Line Interface (AWS CLI) または独自のコードを使用して CloudFront KeyValueStore API を呼び出す場合は、以降のセクションを参照してください。

キーバリューストアとそのキーと値のペアを操作する場合、呼び出すサービスはユースケースによって異なります。
+ 既存のキーバリューストア内の key-value ペアをプログラムで操作するには、CloudFront KeyValueStore サービスを使用します。**
+ キーバリューストアを最初に作成するときに、キーバリューストアにキーと値のペアを含めるには、CloudFront サービスを使用します。**

CloudFront API と CloudFront KeyValueStore API の両方に `DescribeKeyValueStore` オペレーションがあります。さまざまな理由でこれらを呼び出すことができます。違いを理解するには、次の表を参照してください。


|  | CloudFront DescribeKeyValueStore API | CloudFront KeyValueStore DescribeKeyValueStore API | 
| --- | --- | --- | 
| キーバリューストアに関するデータ |  キーバリューストア自体の最終変更時のステータスや日付などのデータを返します。  |  ストレージリソースのコンテンツに関するデータ (ストア内のキーと値のペア、コンテンツのサイズ) を返します。**  | 
| キーバリューストアを識別するデータ |  キーバリューストアの `ETag`、UUID、ARN を返します。  |  キーバリューストアの `ETag` と ARN を返します。  | 

**注意事項**  
各 DescribeKeyValueStore オペレーションは、別々の `ETag` を返します。**`ETags` は置き換え可能ではありません。
API オペレーションを呼び出してアクションを実行する際は、適切な API から `ETag` を指定する必要があります。例えば、CloudFront KeyValueStore の [ DeleteKey](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_DeleteKey.html) オペレーションでは、CloudFront KeyValueStore [https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_DescribeKeyValueStore.html](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_DescribeKeyValueStore.html) オペレーションから返された `ETag` を指定します。
CloudFront KeyValueStore を使用して CloudFront Functions を呼び出す場合、キーバリューストアの値は関数の呼び出し中に更新または変更されません。更新は、関数の呼び出しの合間に処理されます。

## key-value ペアを使用する (AWS CLI)
<a name="work-with-kvs-cli-keys"></a>

CloudFront KeyValueStore に関しては、以下の AWS Command Line Interface コマンドを実行できます。

**Contents**
+ [key-value ペアの一覧表示](#kvs-cli-list-keys)
+ [key-value ペアの取得](#kvs-cli-get-keys)
+ [キーバリューストアの説明](#kvs-cli-describe-keys)
+ [key-value ペアの作成](#kvs-cli-create-keys)
+ [key-value ペアの削除](#kvs-cli-delete-keys)
+ [key-value ペアの更新](#kvs-cli-update-key)

### key-value ペアの一覧表示
<a name="kvs-cli-list-keys"></a>

キーバリューストアの key-value ペアを一覧表示するには、次のコマンドを実行します。

```
aws cloudfront-keyvaluestore list-keys \
    --kvs-arn=arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example
```

**応答**

```
{
    "Items": [
        {
            "Key": "key1",
            "Value": "value1"
        }
    ]
}
```

### key-value ペアの取得
<a name="kvs-cli-get-keys"></a>

キーバリューストアの key-value ペアを取得するには、次のコマンドを実行します。

```
aws cloudfront-keyvaluestore get-key \
    --key=key1 \
    --kvs-arn=arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example
```

**応答**

```
{
    "Key": "key1",
    "Value": "value1",
    "ItemCount": 1,
    "TotalSizeInBytes": 11
}
```

### キーバリューストアの説明
<a name="kvs-cli-describe-keys"></a>

キーバリューストアの説明を取得するには、次のコマンドを実行します。

```
aws cloudfront-keyvaluestore describe-key-value-store \
    --kvs-arn=arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example
```

**応答**

```
{
    "ETag": "KV1F83G8C2ARO7P",
    "ItemCount": 1,
    "TotalSizeInBytes": 11,
    "KvsARN": "arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example",
    "Created": "2024-05-08T07:48:45.381000-07:00",
    "LastModified": "2024-08-05T13:50:58.843000-07:00",
    "Status": "READY"
}
```

### key-value ペアの作成
<a name="kvs-cli-create-keys"></a>

キーバリューストアで key-value ペアを作成するには、次のコマンドを実行します。

```
aws cloudfront-keyvaluestore put-key \
    --if-match=KV1PA6795UKMFR9 \
    --key=key2 \
    --value=value2 \
    --kvs-arn=arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example
```

**応答**

```
{
    "ETag": "KV13V1IB3VIYZZH",
    "ItemCount": 3,
    "TotalSizeInBytes": 31
}
```

### key-value ペアの削除
<a name="kvs-cli-delete-keys"></a>

key-value ペアのを削除するには、次のコマンドを実行します。

```
aws cloudfront-keyvaluestore delete-key \
    --if-match=KV13V1IB3VIYZZH \
    --key=key1 \
    --kvs-arn=arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example
```

**出力**:

```
{
    "ETag": "KV1VC38T7YXB528",
    "ItemCount": 2,
    "TotalSizeInBytes": 22
}
```

### key-value ペアの更新
<a name="kvs-cli-update-key"></a>

単数または複数の key-value ペアを更新するには、`update-keys` コマンドを使用します。例えば、既存の key-value ペアを削除して別の key-value ペアを作成するには、次のコマンドを実行します。

```
aws cloudfront-keyvaluestore update-keys \
    --if-match=KV2EUQ1WTGCTBG2 \
    --kvs-arn=arn:aws:cloudfront::123456789012:key-value-store/37435e19-c205-4271-9e5c-example \
    --deletes '[{"Key":"key2"}]' \
    --puts '[{"Key":"key3","Value":"value3"}]'
```

**応答**

```
{
    "ETag": "KV3AEGXETSR30VB",
    "ItemCount": 3,
    "TotalSizeInBytes": 28
}
```

## key-value ペアを使用する (API)
<a name="kvs-with-functions-kvp-using-api"></a>

キーと値のペアをプログラムで操作するには、このセクションに従います。

**Contents**
+ [キーバリューストアへの参照の取得](#kvs-with-functions-api-ref)
+ [キーバリューストア内のキーと値のペアを変更する](#kvs-with-functions-api-actions)
+ [CloudFront KeyValueStore のコード例](#example-code-key-value-store)

### キーバリューストアへの参照の取得
<a name="kvs-with-functions-api-ref"></a>

CloudFront KeyValueStore API を使用して書き込みオペレーションを呼び出す際は、キーバリューストアの ARN と `ETag` を指定する必要があります。このデータを取得するには、以下を実行します。

**キーバリューストアへの参照を取得するには**

1. [https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListKeyValueStores.html](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListKeyValueStores.html) API オペレーションを使用して、キーバリューストアのリストを取得します。変更するキーバリューストアを見つけます。

1. [CloudFrontKeyValueStore DescribeKeyValueStore API オペレーション](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_DescribeKeyValueStore.html)を使用して、前のステップからのキーバリューストアを指定します。

   この応答には、キーバリューストアの ARNと `ETag` が含まれます。
   + ARN には、次の例に示すように AWS アカウント 番号、定数 `key-value-store`、UUID が含まれます。

     `arn:aws:cloudfront::123456789012:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`
   + `ETag` は、次の例のようになります。

     `ETVABCEXAMPLE2`

### キーバリューストア内のキーと値のペアを変更する
<a name="kvs-with-functions-api-actions"></a>

更新するキーと値のペアを含むキーバリューストアを指定できます。

次の CloudFront KeyValueStore API オペレーションを参照してください。
+ [CloudFrontKeyValueStore DeleteKey](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_DeleteKey.html) – キーと値のペアを削除します。
+ [CloudFrontKeyValueStore GetKey](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_GetKey.html) – キーと値のペアを返します。
+ [CloudFrontKeyValueStore ListKeys](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_ListKeys.html) – キーと値のペアのリストを返します。
+ [CloudFrontKeyValueStore PutKey](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_PutKey.html) – 以下のタスクを実行できます。
  + 1 つのキーバリューストアに 1 つのキーと値のペアを作成する: この場合は、新しいキー名と値を指定します。
  + 1 つの既存のキーと値のペアに別の値を設定する: この場合は、既存のキー名と新しいキー値を指定します。
+ [CloudFrontKeyValueStore UpdateKeys](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_kvs_UpdateKeys.html) – 1 つの all-or-nothing オペレーションで、以下の 1 つ以上のアクションを実行できます。
  + 1 つ以上のキーと値のペアを削除する
  + 1 つ以上のキーと値のペアを新規作成する
  + 1 つ以上の既存のキーと値のペアに別の値を設定する

### CloudFront KeyValueStore のコード例
<a name="example-code-key-value-store"></a>

**Example**  
次のコードは、キーバリューストアの `DescribeKeyValueStore` API オペレーションを呼び出す方法を示しています。  

```
const {
  CloudFrontKeyValueStoreClient,
  DescribeKeyValueStoreCommand,
} = require("@aws-sdk/client-cloudfront-keyvaluestore");

require("@aws-sdk/signature-v4-crt");

(async () => {
  try {
    const client = new CloudFrontKeyValueStoreClient({
      region: "us-east-1"
    });
    const input = {
      KvsARN: "arn:aws:cloudfront::123456789012:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    };
    const command = new DescribeKeyValueStoreCommand(input);

    const response = await client.send(command);
  } catch (e) {
    console.log(e);
  }
})();
```