

# 教程：创建包含键值的 CloudFront 函数
<a name="functions-tutorial-kvs"></a>

本教程向您演示如何在 CloudFront 函数中包含键值。键值是键值对的一部分。您可以在函数代码中包含名称（来自键值对）。函数运行时，CloudFront 会将该名称替换为相应的值。

键值对是存储在键值存储中的变量。当您在函数中使用键（而不是硬编码值）时，您的函数会更加灵活。您可以更改键的值，而无需部署代码更改。键值对也可以减小函数的大小。有关更多信息，请参阅 [Amazon CloudFront KeyValueStore](kvs-with-functions.md)。

**Contents**
+ [先决条件](#functions-kvs-tutorial-prerequisites)
+ [创建键值存储](#functions-kvs-tutorial-kvs-step)
+ [向键值存储添加键值对](#add-key-value-pairs-to-store)
+ [将键值存储与函数相关联](#functions-kvs-tutorial-functions-step)
+ [测试并发布函数代码](#test-and-publish-function-code)

## 先决条件
<a name="functions-kvs-tutorial-prerequisites"></a>

如果您不熟悉 CloudFront Functions 和键值存储，建议您按照[教程：使用 CloudFront Functions 创建简单函数](functions-tutorial.md)中的教程操作。

完成该教程后，您可以按照本教程来扩展您创建的函数。在本教程中，我们建议您首先创建键值存储。

## 创建键值存储
<a name="functions-kvs-tutorial-kvs-step"></a>

首先，创建用于您的函数的键值存储。

**创建键值存储**

1. 规划要包含在函数中的键值对。记下键名称。您要在某个函数中使用的键值对，必须都位于单个键值存储中。

1. 确定工作顺序。可采用以下两种方法来继续操作：
   + 创建键值存储，并将键值对添加到存储中。然后创建（或修改）函数并纳入键名称。
   + 或者，创建（或修改）函数并纳入要使用的键名称。然后创建键值存储，并添加键值对。

1. 登录 AWS 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在导航窗格中，选择**函数**，然后选择 **KeyValueStores** 选项卡。

1. 选择**创建 KeyValueStore** 并输入以下字段：
   + 输入存储的名称和（可选）描述。
   + 将 **S3 URI** 留空。在本教程中，您将手动输入键值对。

1. 选择**创建**。此时将显示新键值存储的详细信息页面。此页面包含一个**键值对**部分，该部分目前为空。

## 向键值存储添加键值对
<a name="add-key-value-pairs-to-store"></a>

接下来，手动将键值对列表添加到您之前创建的键值存储中。

**向键值存储添加键值对**

1. 在**键值对**部分，选择**添加键值对**。

1. 选择**添加对**，然后输入键和值。选中复选标记以确认您的更改，然后重复此步骤来添加更多键值对。

1. 完成后，选择**保存更改**，将键值对保存到键值存储中。在确认对话框中，选择**完成**。

现在，您拥有了一个包含一组键值对的键值存储。



## 将键值存储与函数相关联
<a name="functions-kvs-tutorial-functions-step"></a>

现在，您已经创建了键值存储。并且您已经创建或修改了一个包含键值存储中的键名称的函数。现在可以将键值存储与该函数进行关联。您可以从函数内部创建该关联。

**将键值存储与函数相关联**

1. 在导航窗格中，选择**函数**。默认情况下，**函数**选项卡显示在顶部。

1. 选择函数名称，在 **Associated KeyValueStore** 部分中，选择 **关联现有 KeyValueStore**。

1. 选择键值存储并选择**关联 KeyValueStore**。

**注意**  
每个函数只能关联一个键值存储。

## 测试并发布函数代码
<a name="test-and-publish-function-code"></a>

将键值存储与您的函数关联后，您可以测试并发布函数代码。每次修改函数代码（包括执行以下操作）时，都应始终对其进行测试：
+ 将键值存储与函数相关联。
+ 修改函数及其键值存储以包含新的键值对。
+ 更改键值对的值。

**测试并发布函数代码**

1. 有关如何测试函数的信息，请参阅[测试函数](test-function.md)。确保您选择在 `DEVELOPMENT` 阶段测试函数。

1. 当您准备好在 `LIVE` 环境中使用该函数（具有新的或修订的键值对）时，请发布该函数。

   当您发布函数时，CloudFront 会将该函数的版本从 `DEVELOPMENT` 阶段复制到实时阶段。该函数具有新代码，并与键值存储相关联。（无需在实时阶段再次执行此关联。）

   有关如何发布函数的信息，请参阅[发布函数](publish-function.md)。