处理键值数据 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

处理键值数据

本主题介绍如何将键值对添加到现有的键值存储。要在最初创建键值存储时包含键值对,请参阅创建键值存储

使用键值对(控制台)

您可以使用 CloudFront 控制台处理键值对。

使用键值对
  1. 登录到 Amazon Web Services Management Console 并通过以下网址打开 CloudFront 控制台中的函数页面:https://console.amazonaws.cn/cloudfront/v4/home#/functions

  2. 选择 KeyValueStores 选项卡。

  3. 选择要更改的键值存储。

  4. 键值对部分,选择编辑

  5. 您可以添加键值对、删除键值对或更改现有键值对的值。

  6. 完成后,选择保存更改

关于 CloudFront KeyValueStore

提示

CloudFront KeyValueStore API 是一项使用签名版本 4A(SigV4A)进行身份验证的全局服务。在 SigV4A 中使用临时凭证需要版本 2 会话令牌。有关更多信息,请参阅 将临时凭证与 CloudFront KeyValueStore API 结合使用

如果您使用 Amazon Command Line Interface(Amazon CLI)或自己的代码调用 CloudFront KeyValueStore API,请参阅以下各节。

在使用键值存储及其键值对时,您调用的服务取决于您的使用案例:

  • 要在现有 键值存储中使用键值对,可以使用 CloudFront KeyValueStore 服务。

  • 要在最初创建键值存储时在键值存储中包含键值对,可以使用 CloudFront 服务。

CloudFront API 和 CloudFront KeyValueStore API 都有一项 DescribeKeyValueStore 操作。您出于不同的原因来调用它们。要了解差异,请参阅下表。

CloudFront DescribeKeyValueStore API CloudFront KeyValueStore DescribeKeyValueStore API
有关键值存储的数据

返回数据,例如状态以及键值存储本身上次被修改的日期。

返回有关存储资源的内容的数据,即存储中的键值对以及内容的大小。

标识键值存储的数据

返回键值存储的 ETag、UUID 和 ARN。

返回键值存储的 ETag 和 ARN。

注意
  • 每个 DescribeKeyValueStore 操作都会返回一个不同的 ETagETags 不可互换。

  • 当您调用 API 操作以完成某项操作时,您必须从相应的 API 指定 ETag。例如,在 CloudFront KeyValueStore DeleteKey 操作中,您可以指定从 CloudFront KeyValueStore DescribeKeyValueStore 操作返回的 ETag

使用键值对(Amazon CLI)

您可以为 CloudFront KeyValueStore 运行以下 Amazon Command Line Interface 命令。

列出键值对

要列出键值存储中的键值对,请运行以下命令。

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

响应

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

获取键值对

要获取键值存储中的键值对,请运行以下命令。

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 }

描述键值存储

要描述键值存储,请运行以下命令。

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" }

创建键值对

要在键值存储中创建键值对,请运行以下命令。

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 }

删除键值对

要删除键值对,请运行以下命令:

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 }

更新键值对

可以使用 update-keys 命令来更新多个键值对。例如,要删除现有键值对并创建另一个键值对,请运行以下命令。

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 }

使用键值对(API)

请按照本节内容以编程方式处理键值对。

获取对键值存储的引用

使用 CloudFront KeyValueStore API 调用写入操作时,需要指定键值存储的 ARN 和 ETag。要获取此数据,请执行以下操作:

获取对键值存储的引用
  1. 使用 CloudFront ListKeyValueStores API 操作获取键值存储列表。找到要更改的键值存储。

  2. 使用 CloudFrontKeyValueStore DescribeKeyValueStore API 操作并指定上一步中返回的键值存储。

    响应包括键值存储的 ARN 和 ETag

    • ARN 包含 Amazon Web Services 账户编号、常量 key-value-store 和 UUID,类似于以下示例:

      arn:aws:cloudfront::123456789012:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

    • 一个 ETag,类似于以下示例:

      ETVABCEXAMPLE2

更改键值存储中的键值对

您可以指定包含要更新的键值对的键值存储。

请参阅以下 CloudFront keyValueStore API 操作:

CloudFront KeyValueStore 代码示例

以下代码演示了如何为键值存储调用 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); } })();