

# 使用 CloudFront 持续部署来安全地测试 CDN 配置更改
<a name="continuous-deployment"></a>

利用 Amazon CloudFront *持续部署*，您可以先对一部分生产流量进行测试，从而安全地部署对 CDN 配置的更改。您可以使用*暂存分配*和*持续部署策略*来将一些来自实际（生产）查看器的流量发送到新的 CDN 配置，并验证其是否按预期运行。您可以实时监控新配置的性能，并在准备就绪时提升新配置以通过*主分配*为所有流量提供服务。

以下图表说明了使用 CloudFront 持续部署的好处。如果没有该部署，您将必须使用模拟流量来测试 CDN 配置更改。利用持续部署，您可以使用一部分生产流量来测试更改，然后在准备就绪时将更改推广到主分配。

![\[将生产流量发送到暂存分配的 CloudFront 持续部署的示意图。\]](http://docs.aws.amazon.com/zh_cn/AmazonCloudFront/latest/DeveloperGuide/images/cloudfront-continuous-deployment.png)


阅读以下主题，了解有关使用持续部署的更多信息。

**Topics**
+ [CloudFront 持续部署工作流](continuous-deployment-workflow.md)
+ [使用暂存分配和持续部署策略](working-with-staging-distribution-continuous-deployment-policy.md)
+ [监控暂存分配](monitoring-staging-distribution.md)
+ [了解持续部署的工作方式](understanding-continuous-deployment.md)
+ [持续部署的配额和其他注意事项](continuous-deployment-quotas-considerations.md)

# CloudFront 持续部署工作流
<a name="continuous-deployment-workflow"></a>

以下简要工作流程说明了如何通过 CloudFront 持续部署来安全地测试和部署配置更改。

1. 选择要用作*主分配*的分配。主分配是目前为生产流量提供服务的分发。

1. 在主分配中，创建*暂存分配*。暂存分配作为主分配的副本开始。

1. 在*持续部署策略*中创建*流量配置*，并将其附加到主分配。这将决定 CloudFront 如何将流量路由到暂存分配。有关将请求路由到暂存分配的更多信息，请参阅[将请求路由到暂存分配](understanding-continuous-deployment.md#understanding-continuous-deployment-routing)。

1. 更新暂存分配的配置。有关您可以更新的设置的更多信息，请参阅[更新主分配和暂存分配](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)。

1. 监控暂存分配以确定配置更改是否按预期执行。有关监控暂存分配的更多信息，请参阅[监控暂存分配](monitoring-staging-distribution.md)。

   在监控暂存分配时，您可以：
   + 重新更新暂存分配的配置，以继续测试配置更改。
   + 更新持续部署策略（流量配置），以向暂存分配发送更多或更少流量。

1. 如果您对暂存分配的性能感到满意，请将暂存分配的配置*提升*为主分配，这会将暂存分配的配置复制到主分配。这还将禁用持续部署策略，这意味着 CloudFront 会将所有流量路由到主分配。

您可以构建自动化来监控暂存分配的性能（步骤 5），并在满足特定条件时自动升级配置（步骤 6）。

提升配置后，可以在下次要测试配置更改时重用相同的暂存分配。

有关在 CloudFront 控制台、AWS CLI 或 CloudFront API 中使用暂存分配和持续部署策略的更多信息，请参阅以下部分。

# 使用暂存分配和持续部署策略
<a name="working-with-staging-distribution-continuous-deployment-policy"></a>

您可以使用 AWS Command Line Interface（AWS CLI）或 CloudFront API 在 CloudFront 控制台中创建、更新和修改暂存分配与持续部署策略。

## 使用持续部署策略创建暂存分配
<a name="create-staging-distribution-continuous-deployment-policy"></a>

以下步骤演示如何使用持续部署策略创建暂存分配。

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

您可以使用AWS 管理控制台，通过持续部署策略创建暂存分配。

**创建暂存分配和持续部署策略（控制台）**

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

1. 在导航窗格中，选择**分配**。

1. 选择要用作*主分配*的分配。主分配是当前为生产流量提供服务的分配，您将从中创建暂存分配。

1. 在**持续部署**部分中，选择**创建暂存分配**。这将打开**创建暂存分配**向导。

1. 在**创建暂存分配**向导中，执行以下操作：

   1. （可选）键入暂存分配的描述。

   1. 选择**下一步**。

   1. 修改暂存分配的配置。有关您可以更新的设置的更多信息，请参阅[更新主分配和暂存分配](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)。

      修改完暂存分配的配置后，选择**下一步**。

   1. 使用控制台指定**流量配置**。这将决定 CloudFront 如何将流量路由到暂存分配。（CloudFront 将流量配置存储在*持续部署策略*中。）

      有关**流量配置**中的选项的更多信息，请参阅[将请求路由到暂存分配](understanding-continuous-deployment.md#understanding-continuous-deployment-routing)。

      完成**流量配置**后，选择**下一步**。

   1. 查看暂存分配的配置，包括流量配置，然后选择**创建暂存分配**。

在 CloudFront 控制台中完成**创建暂存分配**向导后，CloudFront 将执行以下操作：
+ 使用您指定的设置创建暂存分配（在步骤 5c 中）
+ 使用您指定的流量配置创建持续部署策略（在步骤 5d 中）
+ 将持续部署策略附加到您从中创建暂存分配的主分配

当主分配的配置以及附加的持续部署策略部署到边缘站点时，CloudFront 会开始根据流量配置将指定部分的流量发送到暂存分配。

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

要使用 AWS CLI 创建暂存分配和持续部署策略，请执行以下步骤。

**创建暂存分配（CLI）**

1. 将 **aws cloudfront get-distribution** 和 **grep** 命令结合使用以获取要用作*主分配*分发的 `ETag` 值。主分配是当前为生产流量提供服务的分发，将从中创建暂存分配。

   以下命令是一个示例。在以下示例中，将 *primary\$1distribution\$1ID* 替换为主分配的 ID。

   ```
   aws cloudfront get-distribution --id primary_distribution_ID | grep 'ETag'
   ```

   复制 `ETag` 值，因为您需要它来执行下一个步骤。

1. 使用 **aws cloudfront copy-distribution** 命令创建暂存分配。以下示例命令使用转义字符（\$1）和换行符来提高可读性，但您应在该命令中省略这些字符。在以下示例命令中：
   + 将 *primary\$1distribution\$1ID* 替换为主分配的 ID。
   + 将 *primary\$1distribution\$1ETag* 替换为主分配的 `ETag` 值（您已在上一步中获得）。
   + （可选）将 *CLI\$1example* 替换为所需的调用方参考 ID。

   ```
   aws cloudfront copy-distribution --primary-distribution-id primary_distribution_ID \
                                    --if-match primary_distribution_ETag \
                                    --staging \
                                    --caller-reference 'CLI_example'
   ```

   该命令的输出显示了有关暂存分配及其配置的信息。复制暂存分配的 CloudFront 域名，因为您在下一步中需要使用它。

**创建持续部署策略（带输入文件的 CLI）**

1. 使用以下命令创建名为 `continuous-deployment-policy.yaml` 的文件，其中包含 **create-continuous-deployment-policy** 命令的所有输入参数。以下命令使用转义字符（\$1）和换行符来提高可读性，但您应在该命令中省略这些字符。

   ```
   aws cloudfront create-continuous-deployment-policy --generate-cli-skeleton yaml-input \
                                                      > continuous-deployment-policy.yaml
   ```

1. 打开刚创建的名为 `continuous-deployment-policy.yaml` 的文件。编辑该文件以指定所需的持续部署策略设置，然后保存该文件。当您编辑该文件时：
   + 在 `StagingDistributionDnsNames` 部分中：
     + 将 `Quantity` 的值更改为 `1`。
     + 对于 `Items`，粘贴暂存分配的 CloudFront 域名（您已在上一步中保存）。
   + 在 `TrafficConfig` 部分中：
     + 选择 `Type`（`SingleWeight` 或 `SingleHeader`）。
     + 删除其他类型的设置。例如，如果您需要基于权重的流量配置，请将 `Type` 设置为 `SingleWeight`，然后删除 `SingleHeaderConfig` 设置。
     + 要使用基于权重的流量配置，请将 `Weight` 的值设置为介于 `.01`（百分之一）和 `.15`（百分之十五）之间的十进制数。

     有关 `TrafficConfig` 中的选项的更多信息，请参阅[将请求路由到暂存分配](understanding-continuous-deployment.md#understanding-continuous-deployment-routing)和[基于权重的配置的会话粘性](understanding-continuous-deployment.md#understanding-continuous-deployment-sessions)。

1. 使用以下命令通过 `continuous-deployment-policy.yaml` 文件中的输入参数创建持续部署策略。

   ```
   aws cloudfront create-continuous-deployment-policy --cli-input-yaml file://continuous-deployment-policy.yaml
   ```

   复制命令输出中的 `Id` 值。这是持续部署策略 ID，您在下一步中需要它。

**将持续部署策略附加到主分配（带输入文件的 CLI）**

1. 使用以下命令将主分配的配置保存到一个名为 `primary-distribution.yaml` 的文件中。将 *primary\$1distribution\$1ID* 替换为主分配的 ID。

   ```
   aws cloudfront get-distribution-config --id primary_distribution_ID --output yaml > primary-distribution.yaml
   ```

1. 打开刚创建的名为 `primary-distribution.yaml` 的文件。编辑文件，进行以下更改：
   + 将持续部署策略 ID（从上一步中复制的）粘贴到 `ContinuousDeploymentPolicyId` 字段中。
   + 将 `ETag` 字段重命名为 `IfMatch`，但不更改字段的值。

   完成后保存该文件。

1. 使用以下命令更新主分配以使用持续部署策略。将 *primary\$1distribution\$1ID* 替换为主分配的 ID。

   ```
   aws cloudfront update-distribution --id primary_distribution_ID --cli-input-yaml file://primary-distribution.yaml
   ```

当主分配的配置以及附加的持续部署策略部署到边缘站点时，CloudFront 会开始根据流量配置将指定部分的流量发送到暂存分配。

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

要使用 CloudFront API 创建暂存分配和持续部署策略，请使用以下 API 操作：
+ [CopyDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CopyDistribution.html)
+ [CreateContinuousDeploymentPolicy](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateContinuousDeploymentPolicy.html)

有关您在这些 API 调用中指定的字段的更多信息，请参阅以下内容：
+ [将请求路由到暂存分配](understanding-continuous-deployment.md#understanding-continuous-deployment-routing)
+ [基于权重的配置的会话粘性](understanding-continuous-deployment.md#understanding-continuous-deployment-sessions)
+ 有关 AWS SDK 或其他 API 客户端的 API 参考文档

创建暂存分配和持续部署策略后，使用 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)（在主分配上）将持续部署策略附加到主分配。

------

## 更新暂存分配
<a name="update-staging-distribution"></a>

以下步骤演示如何使用持续部署策略更新暂存分配。

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

您可以更新主分配和暂存分配的某些配置。有关更多信息，请参阅 [更新主分配和暂存分配](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)。

**更新暂存分配（控制台）**

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

1. 在导航窗格中，选择**分配**。

1. 选择主分配。这是当前为生产流量提供服务的分配，您将从中创建暂存分配。

1. 选择**查看暂存分配**。

1. 使用控制台修改暂存分配的配置。有关您可以更新的设置的更多信息，请参阅[更新主分配和暂存分配](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)。

一旦暂存分配的配置部署到边缘站点，它就会对路由到暂存分配的传入流量生效。

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

**更新暂存分配（带输入文件的 CLI）**

1. 使用以下命令将暂存分配的配置保存到一个名为 `staging-distribution.yaml` 的文件中。将 *staging\$1distribution\$1ID* 替换为暂存分配的 ID。

   ```
   aws cloudfront get-distribution-config --id staging_distribution_ID --output yaml > staging-distribution.yaml
   ```

1. 打开刚创建的名为 `staging-distribution.yaml` 的文件。编辑文件，进行以下更改：
   + 修改暂存分配的配置。有关您可以更新的设置的更多信息，请参阅[更新主分配和暂存分配](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)。
   + 将 `ETag` 字段重命名为 `IfMatch`，但不更改字段的值。

   完成后保存该文件。

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

   ```
   aws cloudfront update-distribution --id staging_distribution_ID --cli-input-yaml file://staging-distribution.yaml
   ```

一旦暂存分配的配置部署到边缘站点，它就会对路由到暂存分配的传入流量生效。

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

要更新暂存分配的配置，请使用 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)（在暂存分配上）修改暂存分配的配置。有关您可以更新的设置的更多信息，请参阅[更新主分配和暂存分配](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)。

------

## 更新持续部署策略
<a name="update-continuous-deployment-policy"></a>

以下步骤演示如何更新持续部署策略。

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

您可以通过更新持续部署策略来更新分配的流量配置。

**更新持续部署策略（控制台）**

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

1. 在导航窗格中，选择**分配**。

1. 选择主分配。这是当前为生产流量提供服务的分发，您将从中创建暂存分发。

1. 在**持续部署**部分中，选择**编辑策略**。

1. 修改持续部署策略中的流量配置。在完成后，选择**保存更改**。

当主分配的配置以及更新的持续部署策略部署到边缘站点时，CloudFront 会开始根据更新的流量配置将流量发送到暂存分配。

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

**更新持续部署策略（带输入文件的 CLI）**

1. 使用以下命令将持续部署策略的配置保存到一个名为 `continuous-deployment-policy.yaml` 的文件中。将 *continuous\$1deployment\$1policy\$1ID* 替换为持续部署策略的 ID。以下命令使用转义字符（\$1）和换行符来提高可读性，但您应在该命令中省略这些字符。

   ```
   aws cloudfront get-continuous-deployment-policy-config --id continuous_deployment_policy_ID \
                                                          --output yaml > continuous-deployment-policy.yaml
   ```

1. 打开刚创建的名为 `continuous-deployment-policy.yaml` 的文件。编辑文件，进行以下更改：
   + 根据需要修改持续部署策略的配置。例如，您可以从使用基于标头的流量配置更改为使用基于权重的流量配置，也可以更改基于权重的配置的流量百分比（权重）。有关更多信息，请参阅[将请求路由到暂存分配](understanding-continuous-deployment.md#understanding-continuous-deployment-routing)和[基于权重的配置的会话粘性](understanding-continuous-deployment.md#understanding-continuous-deployment-sessions)。
   + 将 `ETag` 字段重命名为 `IfMatch`，但不更改字段的值。

   完成后保存该文件。

1. 使用以下命令更新持续部署策略。将 *continuous\$1deployment\$1policy\$1ID* 替换为持续部署策略的 ID。以下命令使用转义字符（\$1）和换行符来提高可读性，但您应在该命令中省略这些字符。

   ```
   aws cloudfront update-continuous-deployment-policy --id continuous_deployment_policy_ID \
                                                      --cli-input-yaml file://continuous-deployment-policy.yaml
   ```

当主分配的配置以及更新的持续部署策略部署到边缘站点时，CloudFront 会开始根据更新的流量配置将流量发送到暂存分配。

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

要更新持续部署策略，请使用 [UpdateContinuousDeploymentPolicy](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateContinuousDeploymentPolicy.html)

------

## 提升暂存分配的配置
<a name="promote-staging-distribution-configuration"></a>

以下步骤演示如何提升暂存分配的配置。

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

在*提升*暂存分配时，CloudFront 会将配置从暂存分配复制到主分配。CloudFront 还将禁用持续部署策略，并将所有流量路由到主分配。

提升配置后，可以在下次要测试配置更改时重用相同的暂存分配。

**提升暂存分配的配置（控制台）**

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

1. 在导航窗格中，选择**分配**。

1. 选择主分配。这是当前为生产流量提供服务的分发，您将从中创建暂存分发。

1. 在**持续部署**部分中，选择**提升**。

1. 键入 **confirm**，然后选择**提升**。

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

在*提升*暂存分配时，CloudFront 会将配置从暂存分配复制到主分配。CloudFront 还将禁用持续部署策略，并将所有流量路由到主分配。

提升配置后，可以在下次要测试配置更改时重用相同的暂存分配。

**提升暂存分配的配置（CLI）**
+ 使用 **aws cloudfront update-distribution-with-staging-config** 命令将暂存分配的配置提升为主分配。以下示例命令使用转义字符（\$1）和换行符来提高可读性，但您应在该命令中省略这些字符。在以下示例命令中：
  + 将 *primary\$1distribution\$1ID* 替换为主分配的 ID。
  + 将 *staging\$1distribution\$1ID* 替换为暂存分配的 ID。
  + 将 *primary\$1distribution\$1ETag* 和 *staging\$1distribution\$1ETag* 分别替换为主分配和暂存分配的 `ETag` 值。确保主分配的值是第一个，如示例所示。

  ```
  aws cloudfront update-distribution-with-staging-config --id primary_distribution_ID \
                                                         --staging-distribution-id staging_distribution_ID \
                                                         --if-match 'primary_distribution_ETag,staging_distribution_ETag'
  ```

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

要将暂存分配的配置提升为主分配，请使用 [UpdateDistributionWithStagingConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistributionWithStagingConfig.html)。

------

# 监控暂存分配
<a name="monitoring-staging-distribution"></a>

要监控暂存分配的性能，您可以使用 CloudFront 为所有分发提供的相同的[指标、日志和报告](reports-and-monitoring.md)。例如：
+ 您可以在 CloudFront 控制台中查看[默认 CloudFront 分配指标](viewing-cloudfront-metrics.md#monitoring-console.distributions)（例如，总请求数和错误率），也可以[启用其他指标](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)（例如，按状态码划分的缓存命中率和错误率），但这需要支付额外费用。您也可以根据这些指标创建警报。
+ 您可以查看[标准日志](AccessLogs.md)和[实时访问日志](real-time-logs.md)，以获取有关暂存分配收到的请求的详细信息。标准日志包含以下两个字段，可帮助您识别在 CloudFront 将请求路由到暂存分配之前最初将请求发送到的主分配：`primary-distribution-id` 和 `primary-distribution-dns-name`。
+ 您可以在 CloudFront 控制台中查看和下载[报告](reports.md)，例如缓存统计数据报告。

# 了解持续部署的工作方式
<a name="understanding-continuous-deployment"></a>

以下主题说明了 CloudFront 持续部署的工作方式。

**Topics**
+ [将请求路由到暂存分配](#understanding-continuous-deployment-routing)
+ [基于权重的配置的会话粘性](#understanding-continuous-deployment-sessions)
+ [更新主分配和暂存分配](#updating-staging-and-primary-distributions)
+ [主分配和暂存分配不共享缓存](#staging-and-primary-no-shared-cache)

## 将请求路由到暂存分配
<a name="understanding-continuous-deployment-routing"></a>

在使用 CloudFront 持续部署时，您无需更改有关查看器请求的任何内容。查看器无法使用 DNS 名称、IP 地址或 CNAME 将请求直接发送到暂存分配。相反，查看器将请求发送到主（生产）分发，CloudFront 会根据持续部署策略中的流量配置设置将其中一些请求路由到暂存分配。有两种类型的流量配置：

**基于权重**  
基于权重的配置将指定百分比的查看器请求路由到暂存分配。在使用基于权重的配置时，您也可以启用*会话粘性*，这有助于确保 CloudFront 将来自同一查看器的请求视为单个会话的一部分。有关更多信息，请参阅 [基于权重的配置的会话粘性](#understanding-continuous-deployment-sessions)。

**基于标头**  
当查看器请求包含特定的 HTTP 标头（您可以指定标头和值）时，基于标头的配置会将请求路由到暂存分配。不包含指定的标头和值的请求将路由到主分配。在本地测试中或在您能够控制查看器请求时，此配置很有用。  
路由到暂存分配的标头必须包含前缀 `aws-cf-cd-`。

## 基于权重的配置的会话粘性
<a name="understanding-continuous-deployment-sessions"></a>

在使用基于权重的配置将流量路由到暂存分配时，您也可以启用*会话粘性*，这有助于确保 CloudFront 将来自同一查看器的请求视为单个会话的一部分。在启用会话粘性时，CloudFront 会设置 Cookie，以便单个会话中的来自同一查看器的所有请求都由一个分发（主分配或暂存分配）提供服务。

启用会话粘性时，还可以指定*空闲持续时间*。如果查看器在这段时间内处于空闲状态（未发送任何请求），则会话将过期，并且 CloudFront 会将来自该查看器的将来请求视为一个新会话。您可以将空闲持续时间指定为秒数，从 300（五分钟）到 3600（一小时）。

在以下情况下，CloudFront 将重置所有会话（甚至是活动会话）并将所有请求视为新会话：
+ 您禁用或启用持续部署策略
+ 您禁用或启用会话粘性设置

## 更新主分配和暂存分配
<a name="updating-staging-and-primary-distributions"></a>

当主分配附加了持续部署策略时，以下配置更改适用于主分配和暂存分配：
+ 所有缓存行为设置，包括默认缓存行为
+ 所有源设置（源和源组）
+ 自定义错误响应（错误页面）
+ 地理限制
+ 默认根对象
+ 日志记录设置
+ 描述（评论）

您还可以更新分发的配置中引用的外部资源，例如缓存策略、响应标头策略、CloudFront 函数或 Lambda@Edge 函数。

## 主分配和暂存分配不共享缓存
<a name="staging-and-primary-no-shared-cache"></a>

主分配和暂存分配不共享缓存。当 CloudFront 向暂存分配发送第一个请求时，其缓存为空。当请求到达暂存分配时，它会开始缓存响应（如果已配置为执行此操作）。

# 持续部署的配额和其他注意事项
<a name="continuous-deployment-quotas-considerations"></a>

CloudFront 持续部署受以下配额和其他注意事项的约束。

## 配额
<a name="continuous-deployment-quotas"></a>
+ 每个 AWS 账户 的最大暂存分配数：20
+ 每个 AWS 账户 的最大持续部署策略数：20
+ 在基于权重的配置中，您可以发送到暂存分配的流量的最大百分比：15%
+ 会话粘性空闲持续时间的最小和最大值：300–3600 秒

有关更多信息，请参阅 [配额](cloudfront-limits.md)。

**注意**  
使用持续部署并且您的主分配设置为 OAC 以进行 S3 存储桶访问时，请更新您的 S3 存储桶策略以允许访问暂存分配。有关 S3 存储桶策略示例，请参阅[向 CloudFront 授予访问 S3 存储桶的权限](private-content-restricting-access-to-s3.md#oac-permission-to-access-s3)。

## AWS WAF Web ACL
<a name="waf-web-acl"></a>

如果您为分配启用持续部署，那么以下注意事项适用于 AWS WAF：
+ 如果这是首次将 AWS WAF Web 访问控制列表（ACL）与分配关联，则您无法将 ACL 关联到分配。
+ 您无法从分配上取消 AWS WAF Web ACL 关联。

在执行上述任务之前，您必须删除生产分配的持续部署策略。这也会删除暂存分配。有关更多信息，请参阅 [使用 AWS WAF 保护功能](distribution-web-awswaf.md)。

## CloudFront 将所有请求发送到主分配的情况
<a name="all-requests-to-primary-distribution"></a>

在某些情况下（例如，资源利用率较高的时段），无论持续部署策略中指定的内容如何，CloudFront 都可能将所有请求发送到主分配。

无论持续部署策略中指定的内容如何，CloudFront 都会在流量高峰时段将所有请求发送到主分配。峰值流量是指 *CloudFront 服务*上的流量，而不是您的分配上的流量。

## HTTP/3
<a name="continuous-deployment-http3"></a>

您不能将持续部署与支持 HTTP/3 的分发结合使用。