

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 CloudFront 持續部署，安全地測試 CDN 組態變更
<a name="continuous-deployment"></a>

透過 Amazon CloudFront *持續部署*，您可以先使用生產流量子集進行測試，安全地將變更部署到 CDN 組態。您可以使用*臨時分佈*和*持續部署政策*，將真實 (生產) 檢視者的部份流量傳送至新的 CDN 組態，並驗證其是否如預期般運作。您可以即時監控新組態的效能，並在準備就緒時提升新組態，以便透過*主要分佈*為所有流量提供服務。

下列圖表顯示 CloudFront 持續部署的優勢。若沒有此部署，您就必須使用模擬流量測試 CDN 組態變更。透過持續部署，您可以使用生產流量子集來測試變更，然後在準備就緒時將變更提升至主要分佈。

![\[將生產流量傳送至臨時分佈的 CloudFront 持續部署圖形。\]](http://docs.aws.amazon.com/zh_tw/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. 在導覽窗格中，選擇 **Distributions (分佈)**。

1. 選擇您要做為*主要分佈*的分佈。主要分佈目前為生產流量提供服務，也就是您從中建立臨時分佈的地方。

1. 在 **Continuous deployment** (持續部署) 區段中，選擇 **Create staging distribution** (建立臨時分佈)。這項操作會開啟 **Create staging distribution** (建立臨時分佈) 精靈。

1. 在 **Create staging distribution** (建立臨時分佈) 精靈中，執行下列動作：

   1. (選用) 輸入臨時分佈的描述。

   1. 選擇**下一步**。

   1. 修改臨時分佈的組態。如需詳細了解您可以更新的設定，請參閱 [更新主要分佈或臨時分佈](understanding-continuous-deployment.md#updating-staging-and-primary-distributions)。

      修改完臨時分佈的組態後，請選擇 **Next** (下一步)。

   1. 使用控制台指定 **Traffic configuration** (流量組態)。這會決定 CloudFront 如何將流量路由至臨時分佈。(CloudFront 會將流量組態儲存在*持續部署政策*中。)

      如需 **Traffic configuration** (流量組態) 選項的詳細資訊，請參閱 [將請求路由至臨時分佈](understanding-continuous-deployment.md#understanding-continuous-deployment-routing)。

      完成 **Traffic configuration** (流量組態) 時，請選擇 **Next** (下一步)。

   1. 檢閱包含流量組態的臨時分佈組態，然後選擇 **Create staging distribution** (建立臨時分佈)。

在 CloudFront 主控台完成 **Create staging distribution** (建立臨時分佈) 精靈後，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 或其他 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. 在導覽窗格中，選擇 **Distributions (分佈)**。

1. 選擇主要分佈。這是目前為生產流量提供服務的分佈，也就是您從中建立臨時分佈的地方。

1. 選擇 **View staging distribution** (檢視臨時分佈)。

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. 在導覽窗格中，選擇 **Distributions (分佈)**。

1. 選擇主要分佈。這是目前為生產流量提供服務的分佈，也就是您從中建立臨時分佈的地方。

1. 在 **Continuous deployment** (持續部署) 區段中，選擇 **Edit policy** (編輯政策)。

1. 修改持續部署政策中的流量組態。完成時，請選擇 **Save changes (儲存變更)**。

當主要分佈的組態使用更新的持續部署政策部署到邊緣節點時，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. 在導覽窗格中，選擇 **Distributions (分佈)**。

1. 選擇主要分佈。這是目前為生產流量提供服務的分佈，也就是您從中建立臨時分佈的地方。

1. 在 **Continuous deployment** (持續部署) 區段中，選擇 **Promote** (提升)。

1. 輸入 **confirm**，然後選擇 **Promote** (提升)。

------
#### [ 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 (5 分鐘) 到 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 ACLs
<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 的分佈與持續部署。