

# 创建源请求策略
<a name="origin-request-create-origin-request-policy"></a>

您可以使用源请求策略控制包含在 CloudFront 发送到源的请求中的值（URL 查询字符串、HTTP 标头和 Cookie）。您可以使用 AWS Command Line Interface（AWS CLI）或 CloudFront API 在 CloudFront 控制台中创建源请求策略。

创建源请求策略后，可以将它附加到 CloudFront 分配中的一个或多个缓存行为。

源请求策略不是必需的。如果缓存行为未附加源请求策略，则源请求只会包含[缓存策略](cache-key-understand-cache-policy.md)中指定的所有值。

**注意**  
要使用源请求策略，缓存行为还必须使用[缓存策略](controlling-the-cache-key.md)。如果没有缓存策略，则无法在缓存行为中使用源请求策略。

------
#### [ Console ]

**创建源请求策略（控制台）**

1. 登录到 AWS 管理控制台 并通过以下网址在 CloudFront 控制台中打开 **Policies (策略)** 页面：[https://console.aws.amazon.com/cloudfront/v4/home?#/policies](https://console.aws.amazon.com/cloudfront/v4/home?#/policies)。

1. 选择 **Origin request**（源请求），然后选择 **Create origin request policy**（创建源请求策略）。

1. 为此源请求策略选择所需的设置。有关更多信息，请参阅 [了解源请求策略](origin-request-understand-origin-request-policy.md)。

1. 完成后，选择 **Create**（创建）。

创建源请求策略后，可以将它附加到缓存行为。

**将源请求策略附加到现有分配（控制台）**

1. 在 CloudFront 控制台中打开 **Distributions (分配)** 页面，网址为 [https://console.aws.amazon.com/cloudfront/v4/home#/distributions](https://console.aws.amazon.com/cloudfront/v4/home#/distributions)。

1. 选择要更新的分配，然后选择**行为**选项卡。

1. 选择要更新的缓存行为，然后选择**编辑**。

   或者，要创建新的缓存行为，请选择 **Create behavior**(创建行为)。

1. 在 **Cache key and origin requests**（缓存键和源请求）区域，请确保选择了 **Cache policy and origin request policy**（缓存策略和源请求策略）。

1. 对于 **Origin request policy**（源请求策略），选择要附加到此缓存行为的源请求策略。

1. 在页面底部，选择 **Save changes**（保存更改）。

**将源请求策略附加到新分配（控制台）**

1. 通过 打开 CloudFront 控制台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)

1. 选择 **Create distribution**（创建分配）。

1. 在 **Cache key and origin requests**（缓存键和源请求）区域，请确保选择了 **Cache policy and origin request policy**（缓存策略和源请求策略）。

1. 对于 **Origin request policy**（源请求策略），选择要附加到此分发的原定设置缓存行为的源请求策略。

1. 为源、原定设置缓存行为和其他分配设置选择所需的设置。有关更多信息，请参阅 [所有分配设置参考](distribution-web-values-specify.md)。

1. 完成后，选择 **Create distribution**（创建分配）。

------
#### [ CLI ]

要使用 AWS Command Line Interface (AWS CLI) 创建源请求策略，请使用 **aws cloudfront create-origin-request-policy** 命令。您可以使用输入文件来提供命令的输入参数，而不是将每个单独的参数指定为命令行输入。

**创建源请求策略（带输入文件的 CLI）**

1. 使用以下命令创建名为 `origin-request-policy.yaml` 的文件，其中包含 **create-origin-request-policy** 命令的所有输入参数。

   ```
   aws cloudfront create-origin-request-policy --generate-cli-skeleton yaml-input > origin-request-policy.yaml
   ```

1. 打开刚创建的名为 `origin-request-policy.yaml` 的文件。编辑该文件以指定所需的源请求策略设置，然后保存该文件。您可以从该文件中删除可选字段，但不要删除必填字段。

   有关源请求策略设置的更多信息，请参阅[了解源请求策略](origin-request-understand-origin-request-policy.md)。

1. 使用以下命令通过 `origin-request-policy.yaml` 文件中的输入参数创建源请求策略。

   ```
   aws cloudfront create-origin-request-policy --cli-input-yaml file://origin-request-policy.yaml
   ```

   记下命令输出中的 `Id` 值。这是源请求策略 ID，您需要它才能将源请求策略附加到 CloudFront 分发的缓存行为。

**将源请求策略附加到现有分配（带输入文件的 CLI）**

1. 使用以下命令保存要更新的 CloudFront 分配的分配配置。将 *distribution\$1ID* 替换为分配的 ID。

   ```
   aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
   ```

1. 打开刚创建的名为 `dist-config.yaml` 的文件。编辑该文件，对要更新的每个缓存行为进行以下更改以使用源请求策略。
   + 在缓存行为中，添加名为 `OriginRequestPolicyId` 的字段。对于字段的值，请使用创建策略后记下的源请求策略 ID。
   + 将 `ETag` 字段重命名为 `IfMatch`，但不更改字段的值。

   完成后保存该文件。

1. 使用以下命令更新分配以使用源请求策略。将 *distribution\$1ID* 替换为分配的 ID。

   ```
   aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml
   ```

**将源请求策略附加到新分配（带输入文件的 CLI）**

1. 使用以下命令创建名为 `distribution.yaml` 的文件，其中包含 **create-distribution** 命令的所有输入参数。

   ```
   aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
   ```

1. 打开刚创建的名为 `distribution.yaml` 的文件。在默认缓存行为中，在 `OriginRequestPolicyId` 字段中输入创建策略后记下的源请求策略 ID。继续编辑该文件以指定所需的分配设置，然后在完成后保存该文件。

   有关分配设置的更多信息，请参阅[所有分配设置参考](distribution-web-values-specify.md)。

1. 使用以下命令通过 `distribution.yaml` 文件中的输入参数创建分配。

   ```
   aws cloudfront create-distribution --cli-input-yaml file://distribution.yaml
   ```

------
#### [ API ]

要使用 CloudFront API 创建源请求策略，请使用 [CreateOriginRequestPolicy](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateOriginRequestPolicy.html)。有关您在此 API 调用中指定的字段的更多信息，请参阅 [了解源请求策略](origin-request-understand-origin-request-policy.md) 以及 AWS 开发工具包或其他 API 客户端的 API 参考文档。

创建源请求策略后，可以使用下列 API 调用之一将该策略附加到缓存行为：
+ 要将该配置附加到现有分配中的缓存行为，请使用 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)。
+ 要将该配置附加到新分配中的缓存行为，请使用 [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html)。

对于这两个 API 调用，请在缓存行为中的 `OriginRequestPolicyId` 字段中提供源请求策略的 ID。有关您在这些 API 调用中指定的其他字段的更多信息，请参阅 [所有分配设置参考](distribution-web-values-specify.md) 以及有关 AWS SDK 或其他 API 客户端的 API 参考文档。

------