

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

# 設定分佈
<a name="distribution-working-with"></a>

您建立 Amazon CloudFront 分佈，以告知 CloudFront 交付的內容出自何處，以及如何追蹤及管理內容交付的詳細資訊。

當您建立 CloudFront 分佈時，CloudFront 會根據您的內容原始伺服器類型設定大部分的分佈設定。如需上述預先設定項目的詳細資訊，請參閱 [預先設定的分佈設定參考](template-preconfigured-origin-settings.md)。或者，您可以選擇手動編輯分佈設定。如需詳細資訊，請參閱[所有分佈設定參考](distribution-web-values-specify.md)。

下列設定可以進行調整：
+ **您的內容原始**伺服器：Amazon S3 儲存貯體、 AWS Elemental MediaPackage 頻道、 AWS Elemental MediaStore 容器、Elastic Load Balancing 負載平衡器或 HTTP 伺服器，CloudFront 會從中取得要分發的檔案。您最多可以針對單一分佈指定 25 個原始伺服器的任意組合。
+ **存取權限** - 您希望每個人皆可存取檔案，或者僅限部分使用者存取。
+ **安全性** - 您是否要啟用 AWS WAF 保護，並請求使用者使用 HTTPS 存取您的內容。對於多租戶分佈，僅支援 AWS WAF V2 Web 存取控制清單 ACLs)。
+ **快取金鑰** - 您想要包括在*快取金鑰*的值 (如果有的話)。快取金鑰可唯一識別指定分佈快取中的每個檔案。
+ **原始伺服器請求設定** - 您是否要 CloudFront 在傳送到原始伺服器的請求中包含 HTTP 標頭、Cookie 或查詢字串。
+ **地理限制** - 您是否希望 CloudFront 禁止選取的國家/地區的使用者存取您的內容。
+ **日誌** - 您希望 CloudFront 建立標準日誌或顯示檢視器活動的即時存取日誌。

如需詳細資訊，請參閱[所有分佈設定參考](distribution-web-values-specify.md)。

如需您可以為每個 建立的分佈數量上限 AWS 帳戶，請參閱 [分佈的一般配額](cloudfront-limits.md#limits-web-distributions)。您可為每個分佈提供的檔案數量沒有上限。

您可以使用分佈透過 HTTP 或 HTTPS 提供以下內容：
+ 使用 HTTP 或 HTTPS 的靜態和動態下載內容，例如 HTML、CSS、JavaScript 和影像檔案。
+ 各類格式的隨需視訊，如 Apple HTTP Live Streaming (HLS) 和 Microsoft Smooth Streaming。(對於多租用戶分佈，不支援 Smooth Streaming。) 如需詳細資訊，請參閱[使用 CloudFront 傳遞隨需視訊](on-demand-video.md)。
+ 即時事件，例如即時會議、即時討論會，或即時音樂會。對於即時串流，您可以使用 CloudFormation 堆疊自動建立分佈。如需詳細資訊，請參閱[使用 CloudFront 和 AWS Media Services 交付影片串流](live-streaming.md)。

下列主題提供 CloudFront 分佈的詳細資訊，以及如何進行設定以符合您的業務需求。如需有關建立分佈的詳細資訊，請參閱 [建立分發](distribution-web-creating-console.md)。

**Topics**
+ [了解多租用戶分佈的運作方式](distribution-config-options.md)
+ [建立分發](distribution-web-creating-console.md)
+ [預先設定的分佈設定參考](template-preconfigured-origin-settings.md)
+ [所有分佈設定參考](distribution-web-values-specify.md)
+ [測試分佈](distribution-web-testing.md)
+ [更新分佈](HowToUpdateDistribution.md)
+ [標記分佈](tagging.md)
+ [刪除 分發](HowToDeleteDistribution.md)
+ [將各種原始伺服器與 CloudFront 分佈搭配使用](DownloadDistS3AndCustomOrigins.md)
+ [為 CloudFront 分佈啟用 IPv6](cloudfront-enable-ipv6.md)
+ [使用 CloudFront 持續部署，安全地測試 CDN 組態變更](continuous-deployment.md)
+ [透過新增備用網域名稱 (CNAME) 使用自訂 URL](CNAMEs.md)
+ [使用 WebSockets 搭配 CloudFront 分佈](distribution-working-with.websockets.md)
+ [請求用於列入允許清單的 Anycast 靜態 IP](request-static-ips.md)
+ [使用 gRPC 搭配 CloudFront 分佈](distribution-using-grpc.md)

# 了解多租用戶分佈的運作方式
<a name="distribution-config-options"></a>

您可以使用可在多個分佈租用戶間重複使用的設定來建立 CloudFront 多租用戶分佈。透過多租用戶分佈，您可讓 CloudFront 根據您的內容原始伺服器類型設定您的分佈設定。如需上述預先設定項目的詳細資訊，請參閱 [預先設定的分佈設定參考](template-preconfigured-origin-settings.md)。

使用多租用戶分佈而非標準分佈的優勢包括：
+ 減少營運負擔。
+ 適用於 Web 管理員和軟體供應商的可重複使用組態，會用於管理多個 Web 應用程式的 CloudFront 分佈，這些 Web 應用程式會將內容交付給最終使用者。
+ 增強與其他 的整合 AWS 服務 ，以大規模提供自動化憑證管理、統一的安全控制和輕鬆的組態控制。
+ 在整個實作中維持一致的資源模式。定義必須共用的設定，然後為要覆寫的設定指定自訂項目。
+ 可自訂的原始伺服器和安全性設定，以滿足分佈租用戶層級的特定需求。
+ 將您的分佈租用戶組織到不同的層。例如，如果某些分佈租用戶需要 Origin Shield 而有些不需要，您可以將分佈租用戶分組為不同的多租用戶分佈。
+ 在多個網域之間共用通用 DNS 組態。

與標準分佈不同，多租用戶分佈無法直接存取，因為它沒有 CloudFront 路由端點。因此，它必須與連線群組和一或多個分佈租用戶搭配使用。雖然標準分佈有自己的 CloudFront 端點，且可供最終使用者直接存取，但無法用作其他分佈的範本。

如需多租用戶分佈配額的相關資訊，請參閱 [多租用戶配額](cloudfront-limits.md#limits-template)。

**Topics**
+ [運作方式](#how-template-distribution-works)
+ [條款](#template-distributions-concepts)
+ [不支援的功能](#unsupported-saas)
+ [分佈租用戶自訂](tenant-customization.md)
+ [為您的 CloudFront 分佈租用戶請求憑證](managed-cloudfront-certificates.md)
+ [建立自訂連線群組 (選用)](custom-connection-group.md)
+ [移轉至多租用戶分佈](template-migrate-distribution.md)

## 運作方式
<a name="how-template-distribution-works"></a>

在*標準分佈*中，分佈包含您想要為網站或應用程式啟用的所有設定，例如原始伺服器組態、快取行為和安全設定。如果您想要建立單獨的網站並使用許多相同的設定，則每次都需要建立新的分佈。

CloudFront 的多租用戶分佈有所不同，因為您可以建立一個初始的多租用戶分佈。對於每個新網站，您建立的分佈租用戶會自動繼承其來源分佈的定義值。然後，您可以自訂分佈租用戶的特定設定。

**概觀**

1. 若要開始使用，請先建立多租用戶分佈。CloudFront 會根據內容原始伺服器類型，為您設定分佈設定。您可以自訂 VPC 原始伺服器以外所有原始伺服器的設定。VPC 原始伺服器設定會在 VPC 原始伺服器資源本身上自訂。如需您可自訂之多租用戶分佈設定的詳細資訊，請參閱 [預先設定的分佈設定參考](template-preconfigured-origin-settings.md)。
   + 您用於多租用戶分佈的 TLS 憑證可由您的分佈租用戶繼承。多租用戶分佈本身無法路由，因此不會有與其相關聯的網域名稱。

1. 根據預設，CloudFront 會為您建立連線群組。連線群組會控制檢視器對內容的請求如何連接到 CloudFront。您可以在連線群組中自訂一些路由設定。

   您可以手動建立自己的連線群組來變更此設定。如需詳細資訊，請參閱[建立自訂連線群組 (選用)](custom-connection-group.md)。

1. 然後，您可以建立一或多個分佈租用戶。分佈租用戶是檢視器存取內容的「前門」。每個分佈租用戶都會參考多租用戶分佈，並自動與 CloudFront 為您建立的連線群組建立關聯。分佈租用戶支援個別網域或子網域。

1. 然後，您可以自訂一些分佈租用戶設定，例如虛設網域和原始伺服器路徑。如需詳細資訊，請參閱[分佈租用戶自訂](tenant-customization.md)。

1. 最後，您必須更新 DNS 主機中的 DNS 記錄，將流量路由到分佈租用戶。若要執行此操作，請從連線群組取得 CloudFront 端點值，並建立指向 CloudFront 端點的 CNAME 記錄。

**Example 範例**  
下圖示範多租用戶分佈、分佈租用戶和連線群組如何協同運作，為多個網域的檢視器提供內容。  

1. 多租用戶分佈會定義每個分佈租用戶的繼承設定。您可以使用多租用戶分佈做為範本。

1. 從多租用戶分佈建立的每個分佈租用戶都有自己的網域。

1. 在您建立多租用戶分佈時，會自動將分佈租用戶加入 CloudFront 為您建立的連線群組中。連線群組控制檢視器請求如何連線到 CloudFront 網路。

![\[多租用戶分佈如何與分佈租用戶搭配使用。\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudFront/latest/DeveloperGuide/images/template_distribution.png)


如需多租用戶分佈建立說明的詳細資訊，請參閱 [在主控台中建立 CloudFront 分佈](distribution-web-creating-console.md#create-console-distribution)。

## 條款
<a name="template-distributions-concepts"></a>

下列概念說明多租用戶分佈的元件：

**多租用戶分佈**  
藍圖、多租用戶分佈，指定任何分佈租用戶的所有共用組態設定，包括快取行為、安全保護和原始伺服器。多租用戶分佈無法直接提供流量。它們必須與連線群組和分佈租用戶搭配使用。

**標準分佈**  
沒有多租用戶功能的分佈。這些分佈最適合支援單一網站或應用程式。

**分佈租用戶**  
分佈租用戶會繼承多租用戶分佈組態。某些組態設定可以在分佈租用戶層級自訂。分佈租用戶必須擁有有效的 TLS 憑證，只要涵蓋分佈租用戶網域或子網域，就可以從多租用戶分佈進行繼承。  
分佈租用戶都必須與一個連線群組建立關聯。CloudFront 會在您建立分佈租用戶時為您建立連接群組，並自動將任何分佈租用戶指派給該連接群組。

**多租用**  
您可以使用多租用戶分佈跨多個網域提供內容，同時共用組態和基礎設施。這種方法允許不同的網域 (稱為租用戶) 從多租用戶分佈共用常見設定，同時維護自己的自訂。

**連線群組**  
提供為檢視器提供內容的 CloudFront 路由端點。您必須將每個分佈租用戶與連線群組建立關聯，以取得您為分佈租用戶網域或子網域建立的 CNAME 記錄對應的 CloudFront 路由端點。連線群組可以在多個分佈租用戶之間共用。連線群組會管理分佈租用戶的路由設定，例如 IPv6 和 Anycast IP 清單設定。

**Parameters**  
預留位置值的索引鍵/值對清單，例如原始伺服器路徑和網域名稱。您可以在多租用戶分佈中定義參數，並在分佈租用戶層級提供這些參數的值。您可以選擇是否需要為分佈租用戶輸入參數值。  
如果您未在分佈租用戶中提供選用參數的值，則會使用多租用戶分佈的預設值作為值。

**CloudFront 路由端點**  
連線群組的正式 DNS，例如 `d123.cloudfront.net`。用於分佈租用戶網域或子網域的 CNAME 記錄中。

**自訂**  
您可以自訂分佈租用戶，使其使用與多租用戶分佈*不同的*設定。對於每個分佈租用戶，您可以指定不同的 AWS WAF Web 存取控制清單 (ACL)、TLS 憑證和地理限制。

## 不支援的功能
<a name="unsupported-saas"></a>

下列功能無法與多租用戶分佈搭配使用。如果您想使用與標準分佈相同的設定建立新的多租用戶分佈，請注意某些設定不可用。

**備註**  
目前， AWS Firewall Manager 政策僅適用於您的標準分佈。Firewall Manager 將在未來版本中新增對多租用戶分佈的支援。
與標準分佈不同，您可以在*分佈租用戶*層級指定網域名稱 (別名)。如需詳細資訊，請參閱 [為您的 CloudFront 分佈租用戶請求憑證](managed-cloudfront-certificates.md) 和 [CreateDistributionTenant](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistributionTenant.html) API 操作。
+ [持續部署](continuous-deployment.md)
+ [原始存取身分 (OAI)](private-content-restricting-access-to-s3.md#private-content-restricting-access-to-s3-oai) – 請改用[原始存取控制 (OAC)](private-content-restricting-access-to-origin.md)。
+ [專用 IP 自訂 SSL 支援](DownloadDistValuesGeneral.md#DownloadDistValuesClientsSupported) – 僅支援 `sni-only` 方法。
+ [AWS WAF Classic (V1) Web ACL](DownloadDistValuesGeneral.md#DownloadDistValuesWAFWebACL) – 僅支援 AWS WAF V2 Web ACLs。
+ [標準記錄 (舊版)](standard-logging-legacy-s3.md)
+ [最小 TTL](DownloadDistValuesCacheBehavior.md#DownloadDistValuesMinTTL)
+ [預設 TTL](DownloadDistValuesCacheBehavior.md#DownloadDistValuesDefaultTTL)
+ [最大 TTL](DownloadDistValuesCacheBehavior.md#DownloadDistValuesMaxTTL)
+ [ForwardedValues](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ForwardedValues.html)
+ [PriceClass](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DistributionConfig.html)
+ [可信簽署者](DownloadDistValuesCacheBehavior.md#DownloadDistValuesTrustedSigners)
+ [Smooth Streaming](DownloadDistValuesCacheBehavior.md#DownloadDistValuesSmoothStreaming)
+ [AWS Identity and Access Management (IAM) 伺服器憑證](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
+ [專用 IP 位址](cnames-https-dedicated-ip-or-sni.md#cnames-https-dedicated-ip)
+ [最低通訊協定版本 SSLv3](DownloadDistValuesGeneral.md#DownloadDistValues-security-policy)

下列設定無法在多租用戶分佈或分佈租用戶中進行設定。反之，請在連線群組中設定您想要的值。連線群組中關聯的所有分佈租用戶都會使用這些設定。如需詳細資訊，請參閱[建立自訂連線群組 (選用)](custom-connection-group.md)。
+ [啟用 IPv6 (檢視器請求)](DownloadDistValuesGeneral.md#DownloadDistValuesEnableIPv6)
+ [Anycast 靜態 IP 清單](request-static-ips.md)

# 分佈租用戶自訂
<a name="tenant-customization"></a>

使用多租用戶分佈時，您的分佈租用戶會繼承多租用戶分佈組態。不過，您可以在分佈租用戶層級自訂一些設定。

您可以自訂下列項目：
+ **參數** – 參數是可用於原始網域或原始路徑的鍵/值對。請參閱 [參數如何與分佈租用戶搭配使用](#tenant-customize-parameters)。
+ **AWS WAF Web ACL (V2)** – 您可以為分佈租用戶指定單獨的 Web ACL，這會*覆寫*用於多租用戶分佈的 Web ACL。您也可以針對特定分佈租用戶停用此設定，這表示分佈租用戶不會繼承多租用戶分佈的 Web ACL 保護。如需詳細資訊，請參閱[AWS WAF Web ACL](DownloadDistValuesGeneral.md#DownloadDistValuesWAFWebACL)。
+ **地理限制 **– 您為分佈租用戶指定的地理限制會*覆寫*多租用戶分佈的任何地理限制。例如，如果您在多租用戶分佈中封鎖德國 (DE)，則所有關聯的分佈租用戶也會封鎖 DE。不過，如果您允許特定分佈租用戶的 DE，該分佈租用戶設定將覆寫多租用戶分佈的設定。如需詳細資訊，請參閱[限制您內容的地理分佈](georestrictions.md)。
+ **失效路徑** – 指定您要讓分佈租用戶失效之內容的檔案路徑。如需詳細資訊，請參閱[使檔案失效](Invalidation_Requests.md)。
+ **自訂 TLS 憑證** – 您為分佈租用戶指定的 AWS Certificate Manager (ACM) 憑證是多租用戶分佈中提供憑證的補充。不過，如果多租用戶分佈和分佈租用戶憑證都涵蓋相同的網域，則會使用租用戶憑證。如需詳細資訊，請參閱[為您的 CloudFront 分佈租用戶請求憑證](managed-cloudfront-certificates.md)。
+ **網域名稱** – 您必須為每個分佈租用戶指定至少一個網域名稱。

## 參數如何與分佈租用戶搭配使用
<a name="tenant-customize-parameters"></a>

參數是可用於預留位置值的鍵/值對。定義您想要在多租用戶分佈中使用的參數，並指定是否需要這些參數。

在多租用戶分佈中定義參數時，您要選擇在分佈租用戶層級中是否需要輸入那些參數。
+ 如果您在多租用戶分佈中*根據需要*定義參數，則必須在分佈租用戶層級輸入這些參數。(它們不會被繼承)。
+ 如果*不需要*這些參數，您可以在分佈租用戶繼承的多租用戶分佈中提供預設值。

您可以使用以下屬性中的參數：
+ 原始網域名稱
+ 原始伺服器路徑

在多租用戶分佈中，您可以為每個上述屬性定義最多兩個參數。

## 範例參數
<a name="examples-parameters"></a>

請參閱下列範例，以使用網域名稱和原始路徑的參數。

**網域名稱參數**

在多租用戶分佈組態中，您可以定義原始網域名稱的參數，如下列範例所示：

**Amazon S3**
+ `{{parameter1}}.amzn-s3-demo-logging-bucket.s3.us-east-1.amazonaws.com`
+ `{{parameter1}}–amzn-s3-demo-logging-bucket.s3.us-east-1.amazonaws.com`

**自訂原始伺服器**
+ `{{parameter1}}.lambda-url.us-east-1.on.aws`
+ `{{parameter1}}.mediapackagev2.ap-south-1.amazonaws.com`

當您建立分佈租用戶時，請指定要用於 `parameter1` 的值。

```
"Parameters": [
  {
    "Name": "parameter1",
    "Value": "mycompany-website"
  }
]
```

使用在多租用戶分佈中指定的先前範例，分佈租用戶的原始網域名稱解析如下：
+ `mycompany-website.amzn-s3-demo-bucket3.s3.us-east-1.amazonaws.com`
+ `mycompany-website–amzn-s3-demo-bucket3.s3.us-east-1.amazonaws.com`
+ `mycompany-website.lambda-url.us-east-1.on.aws`
+ `mycompany-website.mediapackagev2.ap-south-1.amazonaws.com`

**原始伺服器路徑參數**

同樣地，您可以在多租用戶分佈中定義原始伺服器路徑的參數，如下列範例所示：
+ `/{{parameter2}}`
+ `/{{parameter2}}/test`
+ `/public/{{parameter2}}/test`
+ `/search?name={{parameter2}}`

當您建立分佈租用戶時，請指定要用於 `parameter2` 的值。

```
"Parameters": [
  {
    "Name": "parameter2",
    "Value": "myBrand"
  }
]
```

使用在多租用戶分佈中指定的先前範例，分佈租用戶的原始伺服器路徑解析如下：
+ `/myBrand`
+ `/myBrand/test`
+ `/public/myBrand/test`
+ `/search?name=myBrand`



**Example 範例**  
您想要為您的客戶建立多個網站 (租用戶)，而且您需要確保每個分佈租用戶資源都使用正確的值。  

1. 您可以建立多租用戶分佈，並包含分佈租用戶組態的兩個參數。

1. 對於原始網域名稱，您可以建立名為 *customer-name* 的參數，並指定這是必要的。您會在 S3 儲存貯體之前輸入參數，使其顯示為：

   `{{customer-name}}.amzn-s3-demo-bucket3.s3.us-east-1.amazonaws.com`.

1. 對於原始伺服器路徑，您可以建立名為 *my-theme* 的第二個參數，並指定它是選用的，預設值為*基本*。您的原始路徑顯示為：`/{{my-theme}}`

1. 當您建立分佈租用戶時：
   + 對於網域名稱，您必須指定 *customer-name* 的值，因為它在多租用戶分佈中標記為必要。
   + 對於原始路徑，您可以選擇指定 *my-theme* 的值或使用預設值。

# 為您的 CloudFront 分佈租用戶請求憑證
<a name="managed-cloudfront-certificates"></a>

當您建立分佈租用戶時，租用戶會從多租用戶分佈繼承共用 AWS Certificate Manager (ACM) 憑證。此共用憑證會為與多租用戶分佈相關聯的所有租用戶提供 HTTPS。

當您建立或更新 CloudFront 分佈租用戶以新增網域時，您可以從 ACM 新增受管 CloudFront 憑證。然後 CloudFront 會代表您從 ACM 取得 HTTP 驗證的憑證。您可以將此租用戶層級 ACM 憑證用於自訂網域組態。CloudFront 可簡化續約工作流程，以協助讓憑證保持最新，並且確保內容交付不中斷。

**注意**  
您雖擁有憑證，但它*只能*與 CloudFront 資源搭配使用，且*無法*匯出私有金鑰。

您可以在建立或更新分佈租用戶時請求憑證。

**Topics**
+ [新增網域和憑證 (分佈租用戶)](#vanity-domain-tls-tenant)
+ [完成網域設定](#complete-domain-ownership)
+ [將網域指向 CloudFront](#point-domains-to-cloudfront)
+ [網域考量 (分佈租用戶)](#tenant-domain-considerations)
+ [萬用字元網域 (分佈租用戶)](#tenant-wildcard-domains)

## 新增網域和憑證 (分佈租用戶)
<a name="vanity-domain-tls-tenant"></a>

下列程序說明如何新增網域並更新分佈租用戶的憑證。

**新增網域和憑證 (分佈租用戶)**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在 **SaaS** 下，選擇**分佈租用戶**。

1. 搜尋分佈租用戶。使用搜尋列中的下拉式功能表，並且依網域、名稱、分佈 ID、憑證 ID、連線群組 ID 或 Web ACL ID 進行篩選。

1. 選擇分佈租用戶的名稱。

1. 針對**網域**，選擇**管理網域**。

1. 針對**憑證**，選擇您是否要為分佈租用戶建立**自訂 TLS 憑證**。憑證會驗證您是否獲授權使用網域名稱。憑證必須存在於美國東部 (維吉尼亞北部) 區域。

1. 針對**網域**，選擇**新增網域**，然後輸入網域名稱。根據您的網域，以下訊息會顯示在您輸入的網域名稱下。
   + 此網域由憑證涵蓋。
   + 此網域由憑證涵蓋，待驗證。
   + 憑證未涵蓋此網域。(這表示您必須驗證網域擁有權。)

1. 選擇**更新分佈租用戶**。

   在租用戶詳細資訊頁面的**網域**下，您可以看到下列欄位：
   + **網域擁有權** – 網域擁有權的狀態。您必須先使用 TLS 憑證驗證來驗證您的網域擁有權，CloudFront 才能提供內容。
   + **DNS 狀態** – 網域的 DNS 記錄必須指向 CloudFront 才能正確路由流量。

1. 如果您的網域擁有權未經過驗證，請在租用戶詳細資訊頁面的**網域**下，選擇**完成網域設定**，然後完成下列程序，以將 DNS 記錄指向您的 CloudFront 網域名稱。

## 完成網域設定
<a name="complete-domain-ownership"></a>

請依照這些程序來驗證您是否擁有分佈租用戶的網域。根據您的網域，選擇下列其中一個程序。

**注意**  
如果您的網域已指向具有 Amazon Route 53 別名記錄的 CloudFront，則必須在網域名稱前面使用 `_cf-challenge.` 新增 DNS TXT 記錄。此 TXT 記錄會驗證您的網域名稱是否已連結至 CloudFront。針對每個網域重複此步驟。以下說明如何更新您的 TXT 記錄：  
記錄名稱：`_cf-challenge.DomainName`
記錄類型：`TXT`
記錄值：`CloudFrontRoutingEndpoint`
例如，您的 TXT 記錄可能如下所示：`_cf-challenge.example.com TXT d111111abcdef8.cloudfront.net`  
您可以在分佈租用戶詳細資訊頁面主控台中找到您的 CloudFront 路由端點，或使用《*Amazon CloudFront API 參考*》中的 [ListConnectionGroups](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListConnectionGroups.html) API 動作來尋找它。

**提示**  
如果您是 SaaS 供應商，而且想要允許憑證發行，而不需要您的客戶 (租用戶) 將 TXT 記錄直接新增至其 DNS，請執行下列動作：  
如果您擁有網域 `example-saas-provider.com`，請將子網域指派給租用戶，例如 `customer-123.example-saas-provider.com`
在您的 DNS 中，將 `_cf-challenge.customer-123.example-saas-provider.com TXT d111111abcdef8.cloudfront.net` TXT 記錄新增至您的 DNS 組態。
接下來，您的客戶 (租用戶) 可以更新自己的 DNS 記錄，將他們的網域名稱映射到您提供的子網域。  
`www.customer-domain.com CNAME customer-123.example-saas-provider.com`

------
#### [ I have existing traffic ]

如果您的網域無法容忍停機時間，請選取此選項。您必須能夠存取您的原始伺服器/網路伺服器。使用下列程序來驗證網域擁有權。

**在擁有現有流量時完成網域設定**

1. 針對**指定您的 Web 流量**，選擇**我有現有流量**，然後選擇**下一步**。

1. 針對**驗證網域擁有權**，選擇下列其中一個選項：
   + **使用現有憑證** – 搜尋現有的 ACM 憑證或輸入涵蓋所列網域的憑證 ARN。
   + **手動檔案上傳** – 選擇您是否具有將檔案上傳到 Web 伺服器的直接存取權。

     針對每個網域，建立包含來自**字符位置**之驗證字符的純文字檔案，並將其上傳至現有伺服器上指定**檔案路徑**的原始伺服器。此檔案的路徑可能如以下範例所示：`/.well-known/pki-validation/acm_9c2a7b2ec0524d09fa6013efb73ad123.txt`。完成該步驟後，ACM 會驗證字符，然後發出網域的 TLS 憑證。
   + **HTTP 重新導向** – 如果您沒有將檔案上傳至 Web 伺服器的直接存取權，或者您使用 CDN 或代理服務，請選擇此選項。

     針對每個網域，在現有伺服器上建立 301 重新導向。複製**重新導向自**下的已知路徑，並指向**重新導向至**下的指定憑證端點。您的重新導向看起來可能與以下範例相似：

     ```
     If the URL matches: example.com/.well-known/pki-validation/leabe938a4fe077b31e1ff62b781c123.txt
     Then the settings are:Forwarding URL
     Then 301 Permanent Redirect:To validation.us-east-1.acm-validations.aws/123456789012/.well-known/pki-validation/leabe938a4fe077b31e1ff62b781c123.txt
     ```
**注意**  
您可以選擇**檢查憑證狀態**，以驗證 ACM 何時發出網域的憑證。

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

1. 完成 [將網域指向 CloudFront](#point-domains-to-cloudfront) 的步驟。

------
#### [ I don't have traffic ]

如果您要新增網域，請選取此選項。CloudFront 會為您管理憑證驗證。

**如果您沒有流量，請完成網域設定**

1. 針對**指定您的 Web 流量**，選擇**我還沒有流量**。

1. 針對每個網域名稱，完成 [將網域指向 CloudFront](#point-domains-to-cloudfront) 的步驟。

1. 更新每個網域名稱的 DNS 記錄後，請選擇**下一步**。

1. 等待憑證發出。
**注意**  
您可以選擇**檢查憑證狀態**，以驗證 ACM 何時發出網域的憑證。

1. 選擇**提交**。

------

## 將網域指向 CloudFront
<a name="point-domains-to-cloudfront"></a>

更新您的 DNS 記錄，將流量從每個網域路由到 CloudFront 路由端點。您可以有多個網域名稱，但必須全部解析為此端點。

**將網域指向至 CloudFront**

1. 複製 CloudFront 路由端點值，例如 d111111abcdef8.cloudfront.net。

1. 更新您的 DNS 記錄，將流量從每個網域路由到 CloudFront 路由端點。

   1. 登入您的網域註冊商或 DNS 提供者管理主控台。

   1. 導覽至網域的 DNS 管理區段。
      + **對於子網域** – 建立 CNAME 記錄。例如：
        + **名稱** – 您的子網域 (例如 `www` 或 `app`)
        + **值/目標** – CloudFront 路由端點
        + **記錄類型** – CNAME
        + **TTL** – 3600 (或任何適合您的使用案例)
      + **對於 apex/root 網域** – 這需要唯一的 DNS 組態，因為無法在根網域或 apex 網域層級使用標準 CNAME 記錄。由於大多數 DNS 供應商不支援 ALIAS 記錄，因此建議您在 Route 53 中建立 ALIAS 記錄。例如：
        + **名稱 **– 您的 Apex 網域 (例如 `example.com`)
        + **記錄類型** – A
        + **別名** – 是
        + **別名目標** – 您的 CloudFront 路由端點
        + **路由政策** – 簡單 (或任何適合您的使用案例)

   1. 確認 DNS 變更已傳播。(這通常發生在 TTL 過期時，有時可能需要 24-48 小時。) 使用 `dig` 或 `nslookup` 等工具。

      ```
      dig www.example.com
      # Should eventually return a CNAME pointing to your CloudFront routing endpoint
      ```

1. 返回 CloudFront 主控台，然後選擇**提交**。當您的網域處於作用中狀態時，CloudFront 會更新網域狀態，以指出您的網域已準備好為流量提供服務。

如需詳細資訊，請參閱您的 DNS 提供者的文件：
+ [Cloudflare](https://developers.cloudflare.com/dns/manage-dns-records/how-to/create-dns-records/)
+ [ClouDNS](https://www.cloudns.net/wiki/article/9/)
+ [DNSimple](https://support.dnsimple.com/categories/dns/)
+ [Gandi.net](https://www.gandi.net/)
+ [GoDaddy](https://www.godaddy.com/help/manage-dns-records-680)
+ [Google 雲端 DNS](https://cloud.google.com/dns/docs/records)
+ [名稱表](https://www.namecheap.com/support/knowledgebase/article.aspx/767/10/how-to-change-dns-for-a-domain/)

## 網域考量 (分佈租用戶)
<a name="tenant-domain-considerations"></a>

當網域處於作用中狀態時，網域控制便已建立，且 CloudFront 會回應此網域的所有檢視器請求。一旦啟用，網域就無法停用或變更為非作用中狀態。當網域已在使用時，便無法與另一個 CloudFront 資源建立關聯。若要將網域與另一個分佈建立關聯，請使用 [UpdateDomainAssociation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDomainAssociation.html) 請求將網域從一個 CloudFront 資源移至另一個資源。

當網域處於非作用中狀態時，CloudFront 不會回應檢視器對網域的請求。當網域處於非作用中狀態時，請注意下列事項：
+ 如果您有待定的憑證請求，CloudFront 會回應已知路徑的請求。當請求擱置時，網域便無法與任何其他 CloudFront 資源建立關聯。
+ 如果您沒有待定的憑證請求，CloudFront 便不會回應網域的請求。您可以將網域與其他 CloudFront 資源建立關聯。
+ 每個分佈租用戶只能有*一個待定憑證請求*。您必須先取消現有的待定請求，才能為其他網域請求另一個憑證。取消現有的憑證請求不會刪除相關聯的 ACM 憑證。您可使用 ACM API 來刪除該憑證。
+ 如果您將新憑證套用至分佈租用戶，這將取消與先前憑證的關聯。您可以重複使用憑證來涵蓋另一個分佈租用戶的網域。

如同 DNS 驗證憑證的續約，當憑證續約成功時，您將會收到通知。不過，您不需要執行任何其他動作。CloudFront 會自動管理網域的憑證續約。

**注意**  
您不需要呼叫 ACM API 操作來建立或更新憑證資源。您可以使用 [CreateDistributionTenant](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistributionTenant.html) 和 [UpdateDistributionTenant](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistributionTenant.html) API 操作來指定受管憑證請求的詳細資訊，以管理您的憑證。

## 萬用字元網域 (分佈租用戶)
<a name="tenant-wildcard-domains"></a>

在下列情況中，分佈租用戶支援萬用字元網域：
+ 當萬用字元包含在從上層多租用戶分佈繼承的共用憑證中時
+ 當您為分佈租用戶使用有效的現有自訂 TLS 憑證時

# 建立自訂連線群組 (選用)
<a name="custom-connection-group"></a>

根據預設，CloudFront 會在您建立多租用戶分佈時為您建立連線群組。連線群組會控制檢視器對內容的請求如何連接到 CloudFront。

我們建議您使用預設連線群組。不過，如果您需要隔離企業應用程式或分別管理分佈租用戶群組，您可以選擇建立自訂連線群組。例如，如果分佈租用戶遇到 DDoS 攻擊，您可能需要將分佈租用戶移至單獨的連線群組。如此一來，您就可以保護其他分佈租用戶免受影響。

## 建立自訂連線群組 (選用)
<a name="create-connection-group"></a>

或者，您可以選擇為分佈租用戶建立自訂連線群組。

**建立自訂連線群組 (選用)**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在導覽窗格中，選擇**設定**。

1. 開啟**連線群組**設定。

1. 在導覽窗格中，選擇**連線群組**，然後選擇**建立連線群組**。

1. 針對**連線群組名稱**，輸入連線群組的名稱。建立連線群組後，您就無法更新此名稱。

1. 針對 **IPv6**，指定您是否要啟用此 IP 通訊協定。如需詳細資訊，請參閱[啟用 IPv6 (檢視器請求)](DownloadDistValuesGeneral.md#DownloadDistValuesEnableIPv6)。

1. 針對 **Anycast 靜態 IP 清單**，指定您是否要從一組 IP 位址將流量交付給您的分佈租用戶。如需詳細資訊，請參閱 [Anycast 靜態 IP 清單](request-static-ips.md)。

1. (選用) 將標籤新增至您的連線群組。

1. 選擇**建立連線群組**。

連線群組建立後，您可以找到指定的設定，以及 ARN 和端點。
+ ARN 看起來會如以下範例：`arn:aws:cloudfront::123456789012:connection-group/cg_2uVbA9KeWaADTbKzhj9lcKDoM25`
+ 端點看起來會像下列範例：d111111abcdef8.cloudfront.net

您可以在建立自訂連線群組之後對其進行編輯或刪除。您必須先刪除所有相關聯的分佈租用戶，才能刪除連線群組。您無法刪除 CloudFront 在您建立多租用戶分佈時為您建立的預設連線群組。

**重要**  
如果您變更分佈租用戶的連線群組，CloudFront 將繼續承載分佈租用戶的流量，但延遲會增加。我們建議您更新分佈租用戶的 DNS 記錄，以使用來自新連線群組的 CloudFront 路由端點。  
在您更新 DNS 紀錄之前，CloudFront 會根據目前網站在 DNS 中所指向的路由端點設定進行路由。例如，假設您的預設連線群組不使用 Anycast 靜態 IP，但您的新自訂連線群組會使用。您必須先更新 DNS 記錄，CloudFront 才會將 Anycast 靜態 IP 用於您自訂連線群組中的分佈租用戶。

# 移轉至多租用戶分佈
<a name="template-migrate-distribution"></a>

如果您有 CloudFront 標準分佈，並且想要移轉到多租用戶分佈，請遵循以下步驟。

**從標準分佈移轉到多租用戶分佈**

1. 請參閱[不支援的功能](distribution-config-options.md#unsupported-saas)。

1. 建立與標準分佈具有相同組態的多租用戶分佈，減去不支援的功能。如需詳細資訊，請參閱[在主控台中建立 CloudFront 分佈](distribution-web-creating-console.md#create-console-distribution)。

1. 建立分佈租用戶，並新增您擁有的替代網域名稱。
**警告**  
*請勿*使用與標準分佈相關聯的目前網域名稱。請改為新增預留位置網域。稍後您將移動您的網域。如需有關建立分佈租用戶的詳細資訊，請參閱 [在主控台中建立 CloudFront 分佈](distribution-web-creating-console.md#create-console-distribution)。

1. 為分佈租用戶網域提供現有憑證。這是將涵蓋預留位置網域和您要移動之網域的憑證。

1. 從主控台的分佈租用戶詳細資訊頁面複製 CloudFront 路由端點。或者，您也可以使用《Amazon CloudFront API 參考》**中的 [ListConnectionGroups](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListConnectionGroups.html) API 動作來尋找它。

1. 若要驗證網域擁有權，請使用底線 ( \$1 ) 字首建立 DCV TXT 記錄，該字首指向分佈租用戶的 CloudFront 路由端點。如需詳細資訊，請參閱[將網域指向 CloudFront](managed-cloudfront-certificates.md#point-domains-to-cloudfront)。

1. 當您的變更傳播完成後，請更新您的分佈租用戶，以使用您先前用於標準分佈的網域。
   + **主控台** – 如需詳細說明，請參閱 [新增網域和憑證 (分佈租用戶)](managed-cloudfront-certificates.md#vanity-domain-tls-tenant)。
   + **API** – 使用《Amazon CloudFront API 參考》**中的 [UpdateDomainAssociation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDomainAssociation.html) API 動作。
**重要**  
這會重設內容的快取金鑰。之後，CloudFront 會開始使用新的快取金鑰快取您的內容。如需詳細資訊，請參閱[了解快取金鑰](understanding-the-cache-key.md)。

1. 更新您的 DNS 記錄，將網域指向分佈租用戶的 CloudFront 路由端點。完成此步驟後，您的網域將準備好將流量提供給分佈租用戶。如需詳細資訊，請參閱[將網域指向 CloudFront](managed-cloudfront-certificates.md#point-domains-to-cloudfront)。

1. (選用) 在成功將網域移轉至分佈租用戶後，您可以使用涵蓋分佈租用戶網域名稱的不同 CloudFront 受管憑證。若要請求受管憑證，請建立個別的 TXT 記錄來發行憑證，並遵循 [完成網域設定](managed-cloudfront-certificates.md#complete-domain-ownership) 中的步驟。

# 建立分發
<a name="distribution-web-creating-console"></a>

此主題說明如何使用 CloudFront 主控台建立分佈。<a name="create-download-distribution-task-list"></a>

**概觀**

1. 建立一或多個 Amazon S3 儲存貯體或將 HTTP 伺服器設定為原始伺服器。*原始伺服器*是您存放內容原始版本的位置。當 CloudFront 取得檔案請求時，它會移至原始伺服器以取得在節點分配的檔案。您可以使用 Amazon S3 儲存貯體和 HTTP 伺服器的任意組合做為您的原始伺服器。
   + 如果您使用的是 Amazon S3，請注意您的儲存貯體名稱必須全部小寫和不能包含空格。
   + 如果您使用的是 Amazon EC2 伺服器或其他自訂原始伺服器，請檢閱 [使用 Amazon EC2 (或其他自訂原始伺服器)](DownloadDistS3AndCustomOrigins.md#concept_CustomOrigin)。
   + 如需您可為分佈建立之原始伺服器數量的目前上限，或是有關請求更高配額的詳細資訊，請參閱 [分佈的一般配額](cloudfront-limits.md#limits-web-distributions)。

1. 將內容上傳到原始伺服器。您使物件可公開讀取，或使用 CloudFront 已簽署的 URL 來限制對您的內容進行存取。
**重要**  
您負責確保原始伺服器的安全。您必須確保 CloudFront 具有存取伺服器的許可，並且該安全設定可以保護您的內容。

1. 建立您的 CloudFront 分佈：
   + 如需在 CloudFront 主控台中建立分佈的詳細程序，請參閱 [在主控台中建立 CloudFront 分佈](#create-console-distribution)。
   + 如需使用 CloudFront API 建立分佈的資訊，請參閱《Amazon CloudFront API 參考》**中的 [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html)。

1. (選用) 如果您使用 CloudFront 主控台建立分佈，請為您的分佈建立更多快取行為或原始伺服器。如需行為和來源的詳細資訊，請參閱 [更新多租用戶分佈](HowToUpdateDistribution.md#HowToUpdateDistributionProcedure)。

1. 測試您的分佈。如需測試的詳細資訊，請參閱 [測試分佈](distribution-web-testing.md)。

1. 開發您的網站或應用程式，使用 CloudFront 在您在步驟 3 中建立分佈之後所傳回的網域名稱來存取您的內容。例如，如果 CloudFront 傳回 d111111abcdef8.cloudfront.net 作為您分佈的網域名稱，則 Amazon S3 儲存貯體中或 HTTP 伺服器上根目錄中檔案 `image.jpg` 的 URL 將是 `https://d111111abcdef8.cloudfront.net/image.jpg`。

   如果您在建立您的分佈時指定了一或多個備用網域名稱 (CNAME)，則可以使用自己的網域名稱。在這種情況下，`image.jpg` 的 URL 可能`https://www.example.com/image.jpg`。

   注意下列事項：
   + 如果您想要使用簽章的 URL 來限制對內容的存取的詳細資訊，請參閱[使用已簽署 URL 和已簽署 Cookie 提供私有內容](PrivateContent.md)。
   + 如果您想要提供壓縮內容的詳細資訊，請參閱[提供壓縮檔案](ServingCompressedFiles.md)。
   + 如需 Amazon S3 和自訂原始伺服器的 CloudFront 請求和回應行為的資訊，請參閱[請求和回應行為](RequestAndResponseBehavior.md)。

**Topics**
+ [在主控台中建立 CloudFront 分佈](#create-console-distribution)
+ [CloudFront 在主控台中顯示的值](#distribution-web-values-returned)
+ [其他連結](#distribution-helpful-links)
+ [將網域新增至您的 CloudFront 標準分佈](add-domain-existing-distribution.md)

## 在主控台中建立 CloudFront 分佈
<a name="create-console-distribution"></a>

當您建立分佈時，CloudFront 會根據您的內容原始伺服器類型設定分佈設定。如需上述預先設定項目的詳細資訊，請參閱 [預先設定的分佈設定參考](template-preconfigured-origin-settings.md)。您也可以使用可在多個分佈租用戶間重複使用的設定來建立多租用戶分佈。如需詳細資訊，請參閱[了解多租用戶分佈的運作方式](distribution-config-options.md)。或者，您可以手動設定自己的分佈設定。

------
#### [ Multi-tenant ]<a name="CreatingDownloadDistributionsConsoleProcedure"></a>

**建立多租用戶分佈**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在導覽窗格中，選擇**分佈**，然後選擇**建立分佈**。

1. 選擇**多租用戶架構**，**下一步**。

1. 輸入多租用戶分佈的**分佈名稱**。該名稱將顯示為 `Name` 鍵值做為標籤。您可以稍後變更此值。您最多可以為多租用戶分佈新增 50 個標籤。如需詳細資訊，請參閱 [標記分佈](tagging.md)。

1. （選用） 對於**萬用字元憑證**，選擇將涵蓋根網域下所有子網域的 AWS Certificate Manager (ACM) 憑證，例如 *\$1.example.com*。憑證必須位於美國東部 (維吉尼亞北部) 區域。

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

1. 在**指定原始伺服器**頁面上，選取 CloudFront 將從中取得內容的原始伺服器類型。CloudFront 將針對多租用戶分佈使用該原始伺服器類型的建議設定。如需建議設定的詳細資訊，請參閱 [預先設定的分佈設定參考](template-preconfigured-origin-settings.md)。

1. 對於**原始伺服器**，在您選取的原始伺服器類型下，選擇或輸入要使用的原始伺服器。

1. 對於**原始伺服器路徑**，輸入斜線 (`/`) 字元，後面接著原始伺服器路徑。

1. (選用) 若要新增參數，請選擇為原始伺服器網域名稱或原始伺服器路徑**插入參數**。您可以為每個欄位輸入最多兩個參數。

   1. 選擇**建立新參數**。

   1. 在**建立新參數**對話方塊中，針對**參數名稱**輸入參數的唯一名稱，並選擇性輸入描述。

   1. 針對**必要參數**，選取核取方塊，讓此參數值在分佈租用戶層級為必要。如果不需要，請輸入分佈租用戶將繼承的**預設值**。

   1. 選擇 **Create parameter (建立參數)**。此參數會出現在對應的欄位中。

1. 針對**選項**，請選擇下列其中一種選項：
   + **使用建議的原始伺服器設定** – 針對您選取的原始伺服器類型使用預設建議的快取和原始伺服器設定。
   + **自訂原始伺服器設定** – 自訂快取和原始伺服器設定。如果您選擇此選項，請指定出現的您自己的值。

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

1. 在**啟用安全性保護**頁面上，選擇是否啟用 AWS WAF 安全性保護。您可以稍後針對特定分佈租用戶自訂 Web ACL。如需詳細資訊，請參閱[為新分佈啟用 AWS WAF](WAF-one-click.md#enable-waf-new-distribution)。

1. 選擇**下一步**、**建立分佈**。

1. 在**分佈**頁面上，您的多租用戶分佈會出現在資源清單中。您可以選擇**所有分佈**下拉式清單，依標準分佈或多租用戶分佈進行篩選。您也可以選擇要依標準或多租用戶分佈篩選的**類型**欄。

根據預設，CloudFront 會為您建立連線群組。連線群組會控制檢視器對內容的請求如何連接到 CloudFront。您可以在連線群組中自訂一些路由設定。如需詳細資訊，請參閱[了解多租用戶分佈的運作方式](distribution-config-options.md)。

您可以使用多租用戶分佈作為範本來建立其他分佈租用戶。

**建立分佈租用戶**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在導覽窗格中，執行下列任一操作：
   + 選擇**分佈**，選擇多租用戶分佈，然後選擇**建立租用戶**。
   + 選擇**分佈租用戶**，然後選擇 **建立租用戶**。

1. 針對**分佈租用戶名稱**，輸入名稱。名稱在 中必須是唯一的 AWS 帳戶 ，而且在建立之後無法變更。

1. 對於**範本分佈**，從清單中選擇多租用戶分佈 ID。

1. 針對**管理標籤**，請為分佈租用戶新增最多 50 個鍵/值對。如需詳細資訊，請參閱 [標記分佈](tagging.md)。****

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

1. 在**新增網域**頁面上，針對**憑證**，選擇您的分佈租用戶是否想要**自訂 TLS 憑證**。憑證會驗證您是否獲授權使用網域名稱。憑證必須存在於美國東部 (維吉尼亞北部) 區域。

1. 針對**網域**，輸入您的自訂網域名稱。
**注意**  
如果您輸入的網域名稱未涵蓋在憑證內，則需要驗證您擁有該網域。您現在仍然可以建立分佈租用戶，並在稍後驗證網域擁有權。如需詳細資訊，請參閱[為您的 CloudFront 分佈租用戶請求憑證](managed-cloudfront-certificates.md)。

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

1. 在**定義參數**頁面中，您在多租用戶散佈中所指定的參數會顯示出來。針對必要參數，輸入參數名稱旁的值，並儲存您的變更。

1. 若要新增另一個參數，請選擇**新增參數**，然後輸入名稱和值。

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

1. (選用) 針對**安全性自訂**，如果您選擇**覆寫分佈設定**，請為您的使用案例選取選項。

1. (選用) 對於**地理限制自訂**，如果您選擇**覆寫分佈設定**，請為分佈租用戶選取適當的**限制類型**和**國家/地區**。如需詳細資訊，請參閱[限制您內容的地理分佈](georestrictions.md)。

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

1. 選擇**建立分佈租用戶**。

您可以在**分佈租用戶**頁面上找到所有分佈租用戶。您可以依以下項目篩選：

**關聯**
+ 分佈 ID
+ 憑證 ID
+ 連線群組 ID
+ Web ACL ID

**Properties**
+ 名稱
+ 網域

您可以編輯分佈租用戶來自訂特定設定。如需詳細資訊，請參閱[分佈租用戶自訂](tenant-customization.md)。

------
#### [ Standard ]

**建立標準分佈**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在導覽窗格中，選擇**分佈**，然後選擇**建立分佈**。

1. 輸入標準分佈的**分佈名稱**。名稱將顯示為 `Name` 鍵值做為標籤。您可以稍後變更此值。您最多可以為標準分佈新增 50 個標籤。如需詳細資訊，請參閱[標記分佈](tagging.md)。

1. 選擇**單一網站或應用程式**、**下一步**。

1. （選用） 對於**網域設定**，輸入已在 中向 Route 53 註冊的網域 AWS 帳戶，或註冊新的網域。完成設定步驟。
   + 若您的網域使用的 DNS 提供者不是 Route 53，您仍可新增該網域，但必須在建立散佈之後再進行。立即略過網域設定，以繼續建立分佈。您稍後必須手動設定網域和 TLS 憑證。如需詳細資訊，請參閱[將網域新增至您的 CloudFront 標準分佈](add-domain-existing-distribution.md)。

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

1. 在**指定原始伺服器**頁面上，選取 CloudFront 將從中取得內容的原始伺服器類型。CloudFront 會針對分佈的原始伺服器類型使用建議的設定。如需建議設定的詳細資訊，請參閱 [預先設定的分佈設定參考](template-preconfigured-origin-settings.md)。

1. 針對**原始伺服器**，選擇或輸入您的原始伺服器。

1. 針對**設定**，請選擇下列其中一種選項：
   + **使用建議的原始伺服器設定** – 針對您選取的原始伺服器類型使用預設建議的快取和原始伺服器設定。
   + **自訂原始伺服器設定** – 自訂快取和原始伺服器設定。如果您選擇此選項，請指定您自己的值。

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

1. 在**啟用安全性保護**頁面上，選擇是否啟用 AWS WAF 安全性保護。

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

1. (選用) 如果您為網域使用 Route 53，您將會看到 **TLS 憑證**頁面。如果 CloudFront 在 AWS 帳戶 的 中找不到網域的現有 AWS Certificate Manager (ACM) 憑證`us-east-1` AWS 區域，您可以選擇自動建立憑證或手動建立憑證。建立憑證之後，請選擇**下一步**。

1. 檢閱您的分佈詳細資訊，然後選擇**建立分佈**。

1. 當 CloudFront 建立您的分佈後，該分佈在**狀態**欄中的值會從**部署中**變更為該分佈完成部署的日期與時間。

   CloudFront 指派到您的分佈的網域名稱，將顯示在分佈清單中。(它也顯示在所選用分佈的 **General (一般)** 索引標籤上。) 
**提示**  
您可以請依照 [透過新增備用網域名稱 (CNAME) 使用自訂 URL](CNAMEs.md) 中的步驟使用備用網域名稱，而不是由 CloudFront 名稱指派名稱給您。

1. 當部署分佈時，請確認您可以使用新 CloudFront URL (d111111abcdef8.cloudfront.net) 或 CNAME 存取您的內容。如需詳細資訊，請參閱[測試分佈](distribution-web-testing.md)。

1. 當您準備好將流量傳送至分佈時，請務必更新您的 DNS 記錄以指向 CloudFront。如需詳細資訊，請參閱[將網域指向至 CloudFront (標準分佈)](add-domain-existing-distribution.md#point-domains-standard)。

------

## CloudFront 在主控台中顯示的值
<a name="distribution-web-values-returned"></a>

當您建立新的分佈或更新現有的分佈，CloudFront 會在 CloudFront 主控台顯示以下資訊。

**注意**  
作用中的信任簽署者， AWS 帳戶 具有作用中 CloudFront 金鑰對且可用來建立有效簽章 URLs ，目前在 CloudFront 主控台中看不到。

### 分佈 ID
<a name="DownloadDistReturnID"></a>

當您使用 CloudFront API 對分發執行動作時，將透過分發 ID 指定欲使用的分發，例如 `EDFDVBD6EXAMPLE`。分佈的分佈 ID 不得變更。

### 部署和狀態
<a name="DownloadDistReturnStatus"></a>

部署分佈時，您會在**上次修改**的資料欄下看到**部署中**狀態。等待分佈完成部署，並確認**狀態**欄顯示**已啟用**。如需詳細資訊，請參閱[分佈狀態](DownloadDistValuesGeneral.md#DownloadDistValuesEnabled)。

### 上次修改
<a name="DownloadDistReturnLastModDate"></a>

上次修改的分佈日期和時間，使用 ISO 8601 格式，例如 2012-05-19T19:37:58Z。如需詳細資訊，請參閱[https://www.w3.org/TR/NOTE-datetime](https://www.w3.org/TR/NOTE-datetime)。

### 網域名稱
<a name="DownloadDistReturnDomainName"></a>

您在指向物件的連結中使用分佈的網域名稱。例如，如果分佈的網域名稱是 `d111111abcdef8.cloudfront.net`，則 `/images/image.jpg` 的連結將是 `https://d111111abcdef8.cloudfront.net/images/image.jpg`。您無法為您的分佈變更 CloudFront 網域名稱。如需連結至您物件的 CloudFront URL 的詳細資訊，請參閱[自訂 CloudFront 中檔案的 URL 格式](LinkFormat.md)。

如果您指定的一或多個備用網域名稱 (CNAME)，則可以使用自己的網域名稱來連結到您的物件，而不使用 CloudFront 網域名稱。如需 CNAME 的詳細資訊，請參閱[備用網域名稱 (CNAME)](DownloadDistValuesGeneral.md#DownloadDistValuesCNAME)。

**注意**  
CloudFront 網域名稱是唯一的。您的分佈的網域名稱從未用於之前的分佈，並且未來將永遠不會重複使用於另一個分佈。

## 其他連結
<a name="distribution-helpful-links"></a>

如需有關建立分佈的詳細資訊，請參閱以下連結。
+ 若要了解如何建立使用 Amazon Simple Storage Service (Amazon S3) 儲存貯體原始伺服器搭配原始存取控制 (OAC) 的分佈，請參閱 [開始使用 CloudFront 標準分佈](GettingStarted.SimpleDistribution.md)。
+ 如需使用 CloudFront API 建立分佈的資訊，請參閱《Amazon CloudFront API 參考》**中的 [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html)。
+ 如需更新分佈的相關資訊 (例如，將快取行為新增至標準分佈，或自訂分佈租用戶)，請參閱 [更新分佈](HowToUpdateDistribution.md)。
+ 若要查看您可為每個 AWS 帳戶建立之分佈數量的目前上限，或是有關請求更高配額 (先前稱為限制) 的詳細資訊，請參閱 [分佈的一般配額](cloudfront-limits.md#limits-web-distributions)。

# 將網域新增至您的 CloudFront 標準分佈
<a name="add-domain-existing-distribution"></a>

建立新的 CloudFront 標準分佈之後，您可以將網域新增至該分佈。或者，您可以在建立標準分佈時為標準分佈設定 Amazon Route 53 網域。如需詳細資訊，請參閱[在主控台中建立 CloudFront 分佈](distribution-web-creating-console.md#create-console-distribution)。

## 將網域新增至您的現有標準分佈
<a name="add-domain-standard"></a>

**將網域新增至您的標準分佈**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在導覽窗格中，選擇**分佈**，然後選擇分佈 ID。

1. 在**設定**、**替代網域名稱**下，選擇**新增網域**。

1. 輸入最多五個要服務的網域。

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

1. 對於 **TLS 憑證**，如果 CloudFront 在 AWS 帳戶 的 中找不到網域的現有 AWS Certificate Manager (ACM) 憑證`us-east-1` AWS 區域，您可以建立一個憑證。
   + 如果您使用的是 Amazon Route 53 (Route 53)，CloudFront 會自動為您建立憑證。

1. 佈建憑證時，您必須使用 DNS 提供者更新您的 DNS 記錄，以證明網域擁有權。然後，選擇**驗證憑證**。如需詳細資訊，請參閱[將網域指向至 CloudFront (標準分佈)](#point-domains-standard)。
   + 如果您使用的是 Route 53，CloudFront 會為您更新 DNS 記錄。

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

1. 檢閱您的變更，然後選擇**新增網域**。

1. 將流量傳送到分佈之前，請務必更新您的 DNS 記錄以指向 CloudFront。如需詳細資訊，請在分佈詳細資訊頁面的**設定**區段中選擇**路由網域到 CloudFront**。
   + 如果您使用的是 Route 53，您可以讓 CloudFront 自動為您設定 DNS 路由。

## 將網域指向至 CloudFront (標準分佈)
<a name="point-domains-standard"></a>

更新您的 DNS 記錄，將流量從每個網域路由到 CloudFront 主機名稱。您可以有多個網域名稱，但必須全部解析為此主機名稱。

**將網域指向至 CloudFront**

1. 複製 CloudFront 主機名稱值，例如 d111111abcdef8.cloudfront.net。

1. 更新您的 DNS 記錄，將流量從每個網域路由到 CloudFront 主機名稱。

   1. 登入您的網域註冊商或 DNS 提供者管理主控台。

   1. 導覽至網域的 DNS 管理區段。
      + **對於子網域** – 建立 CNAME 記錄。例如：
        + **名稱** – 您的子網域 (例如 `www` 或 `app`)
        + **值/目標** – 您的 CloudFront 主機名稱
        + **記錄類型** – CNAME
        + **TTL** – 3600 (或任何適合您的使用案例)
      + **對於 apex/root 網域** – 這需要唯一的 DNS 組態，因為無法在根網域或 apex 網域層級使用標準 CNAME 記錄。由於大多數 DNS 供應商不支援 ALIAS 記錄，因此建議您在 Route 53 中建立 ALIAS 記錄。例如：
        + **名稱 **– 您的 Apex 網域 (例如 `example.com`)
        + **記錄類型** – A
        + **別名** – 是
        + **別名目標** – 您的 CloudFront 主機名稱
        + **路由政策** – 簡單 (或任何適合您的使用案例)

   1. 確認 DNS 變更已傳播。(這通常發生在 TTL 過期時，有時可能需要 24-48 小時。) 使用 `dig` 或 `nslookup` 等工具。

      ```
      dig www.example.com
      # Should eventually return a CNAME pointing to your CloudFront hostname
      ```

1. 返回 CloudFront 主控台，然後選擇**提交**。當您的網域處於作用中狀態時，CloudFront 會更新網域狀態，以指出您的網域已準備好為流量提供服務。

如需詳細資訊，請參閱您的 DNS 提供者的文件：
+ [Cloudflare](https://developers.cloudflare.com/dns/manage-dns-records/how-to/create-dns-records/)
+ [ClouDNS](https://www.cloudns.net/wiki/article/9/)
+ [DNSimple](https://support.dnsimple.com/categories/dns/)
+ [Gandi.net](https://www.gandi.net/)
+ [GoDaddy](https://www.godaddy.com/help/manage-dns-records-680)
+ [Google 雲端 DNS](https://cloud.google.com/dns/docs/records)
+ [名稱表](https://www.namecheap.com/support/knowledgebase/article.aspx/767/10/how-to-change-dns-for-a-domain/)

# 預先設定的分佈設定參考
<a name="template-preconfigured-origin-settings"></a>

當您建立 CloudFront 分佈時，CloudFront 會根據您的內容原始伺服器類型設定大部分的分佈設定。或者，您可以選擇手動編輯分佈設定。如需詳細資訊，請參閱[所有分佈設定參考](distribution-web-values-specify.md)。

下列各節說明分佈的預設預先組態設定，以及您可以自訂的設定。

## Amazon S3 原始伺服器
<a name="s3-origin-preconfiguration"></a>

以下是 CloudFront 在多租用戶分佈中為您的 Amazon S3 原始伺服器預先設定的原始伺服器設定。

**原始伺服器設定 (預先設定)**
+ **原始存取控制 (僅限主控台)** – CloudFront 會為您設定此項目。CloudFront 會嘗試為標準分佈和多租用戶分佈新增 S3 儲存貯體政策，而原始網域中不使用任何參數。
+ **新增自訂標頭** – 無
+ **啟用 Origin Shield** – 否
+ **連線嘗試** – 3

以下是 CloudFront 在多租用戶分佈中為您的 Amazon S3 原始伺服器預先設定的快取設定。

**快取設定 (預先設定)**
+ **自動壓縮物件** – 是
+ **檢視器通訊協定政策** – 重新導向至 HTTPS
+ **允許的 HTTP 方法** – `GET, HEAD`
+ **限制檢視器存取** – 否
+ **快取政策** – `CachingOptimized`
+ **原始伺服器請求政策** – 無
+ **回應標頭政策** – 無
+ **Smooth Streaming** – 否
+ **欄位層級加密** – 否
+ **啟用即時存取日誌** – 否
+ **函數** – 否

以下是您可以在多租用戶分佈中為 Amazon S3 原始伺服器自訂的設定。

**可自訂的設定**
+ **S3 存取** – CloudFront 會根據您的 S3 儲存貯體設定為您設定：
  + **如果您的儲存貯體為公有** – 不需要原始存取控制 (OAC) 政策。
  + **如果您的儲存貯體是私有** – 您可以選擇或建立要使用的 OAC 政策。
+ **啟用 Origin Shield** – 否
+ **自動壓縮物件** – 是
  + 如果您選擇**是**，則會使用 `CachingOptimized` 快取政策。
  + 如果您選擇**否**，則會使用 `CachingOptimizedForUncompressedObjects` 快取政策。

## API Gateway 原始伺服器
<a name="api-gateway-origin-preconfiguration"></a>

以下是 CloudFront 在多租用戶分佈中為您的 API Gateway 原始伺服器預先設定的原始伺服器設定。

**原始伺服器設定 (預先設定)**
+ **通訊協定** – 僅限 HTTPS
+ **HTTPS 連接埠** – 443
+ **最低來源 SSL 通訊協定** – TLSv1.2
+ **原始伺服器路徑** – 無
+ **原始存取控制 (僅限主控台)** – CloudFront 會為您設定此項目
+ **新增自訂標頭** – 無
+ **啟用 Origin Shield** – 否
+ **連線嘗試** – 3
+ **回應逾時** – 30
+ **保持連線逾時** – 5

以下是 CloudFront 在多租用戶分佈中為您的 API Gateway 原始伺服器預先設定的快取設定。

**快取設定 (預先設定)**
+ **自動壓縮物件** – 是
+ **檢視器通訊協定政策** – 重新導向至 HTTPS
+ **允許的 HTTP 方法** – `GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE`
+ **快取 HTTP 方法** – 否
+ **允許透過 HTTP/2 進行 gRPC 請求** – 否
+ **限制檢視器存取** – 否
+ **快取政策** – `CachingDisabled` (可能的值：`UseOriginCacheControlHeaders`、`UseOriginCacheControlHeaders-QueryStrings`)
+ **原始伺服器請求政策** – `AllViewerExceptHostHeader` (可能值：`AllViewer`、`AllViewerandCloudFrontHeaders-2022-06`)
+ **回應標頭政策** – 無
+ **Smooth Streaming** – 否
+ **欄位層級加密** – 否
+ **啟用即時存取日誌** – 否
+ **函數** – 否

以下是您可以在多租用戶分佈中為 API Gateway 原始伺服器自訂的設定。

**可自訂的設定**
+ **啟用 Origin Shield** – (預設：否)
+ **自動壓縮物件** – (預設：是)

## 自訂原始伺服器和 EC2 執行個體
<a name="custom-ec2-origin-preconfiguration"></a>

以下是 CloudFront 在多租用戶分佈中為您的自訂原始伺服器預先設定的原始伺服器設定。

**原始伺服器設定 (預先設定)**
+ **通訊協定** – 比對檢視器
+ **HTTP 連接埠** – 80
+ **HTTPS 連接埠** – 443
+ **最低來源 SSL 通訊協定** – TLSv1.2
+ **原始伺服器路徑** – 無
+ **新增自訂標頭** – 無
+ **啟用 Origin Shield** – 否
+ **連線嘗試** – 3
+ **回應逾時** – 30
+ **保持連線逾時** – 5

以下是 CloudFront 在多租用戶分佈中為您的自訂原始伺服器和 EC2 執行個體預先設定的快取設定。

**快取設定 (預先設定)**
+ **自動壓縮物件** – 是
+ **檢視器通訊協定政策** – 重新導向至 HTTPS
+ **允許的 HTTP 方法** – `GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE`
+ **快取 HTTP 方法** – 否
+ **允許透過 HTTP/2 進行 gRPC 請求** – 否
+ **限制檢視器存取** – 否
+ **快取政策** – `UseOriginCacheControlHeaders` (可能的值：`UseOriginCacheControlHeaders-QueryStrings`、`CachingDisabled`、`CacheOptimized`、`CachingOptimizedForUncompressedObjects`)
+ **原始伺服器請求政策** – `AllViewer` (可能值：`AllViewerExceptHostHeader`、`AllViewerandCloudFrontHeaders-2022-06`)
+ **回應標頭政策** – 無
+ **Smooth Streaming** – 否
+ **欄位層級加密** – 否
+ **啟用即時存取日誌** – 否
+ **函數** – 否

以下是您可以在多租用戶分佈中為自訂原始伺服器和 EC2 執行個體自訂的設定。

**可自訂的設定**
+ **啟用 Origin Shield** – (預設：否)
+ **自動壓縮物件** – (預設：是)
+ **快取** – (預設：`Cache by Default`)
  + 如果選取 `Cache by Default`，則會使用 `UseOriginCacheControlHeaders` 快取政策。
  + 如果選取 `Do Not Cache by Default`，則會使用 `CachingDisabled` 快取政策。
+ **在快取中包含查詢字串** – (預設：是，如果 `Cache by Default` 已選取)
  + 如果已選取 `Do Not Cache by Default`，然後選擇在快取中包含查詢字串，則會使用 `UseOriginCacheControlHeaders-QueryStrings` 快取政策。

## Elastic Load Balancing 原始伺服器
<a name="elb-origin-preconfiguration"></a>

以下是 CloudFront 在多租用戶分佈中為您的 Elastic Load Balancing 原始伺服器預先設定的原始伺服器設定。

**原始伺服器設定 (預先設定)**
+ **通訊協定** – 僅限 HTTPS
+ **HTTPS 連接埠** – 443
+ **最低來源 SSL 通訊協定** – TLSv1.2
+ **原始伺服器路徑** – 無
+ **新增自訂標頭** – 無
+ **啟用 Origin Shield** – 否
+ **連線嘗試** – 3
+ **回應逾時** – 30
+ **保持連線逾時** – 5

以下是 CloudFront 在多租用戶分佈中為您的 Elastic Load Balancing 原始伺服器預先設定的快取設定。

**快取設定 (預先設定)**
+ **自動壓縮物件** – 是
+ **檢視器通訊協定政策** – 重新導向至 HTTPS
+ **允許的 HTTP 方法** – `GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE`
+ **快取 HTTP 方法** – 否
+ **允許透過 HTTP/2 進行 gRPC 請求** – 否
+ **限制檢視器存取** – 否
+ **快取** – (預設：`Cache by Default`)
  + 如果選取 `Cache by Default`，則會使用 `UseOriginCacheControlHeaders` 快取政策。
  + 如果選取 `Do Not Cache by Default`，則會使用 `CachingDisabled` 快取政策。
+ **在快取中包含查詢字串** – (預設：是，如果 `Cache by Default` 已選取)
  + 如果已選取 `Do Not Cache by Default`，然後選擇在快取中包含查詢字串，則會使用 `UseOriginCacheControlHeaders-QueryStrings` 快取政策。
+ **原始伺服器請求政策** – `All Viewer` (可能值：`AllViewerExceptHostHeader`、`AllViewerandCloudFrontHeaders-2022-06`)
+ **回應標頭政策** – 無
+ **Smooth Streaming** – 否
+ **欄位層級加密** – 否
+ **啟用即時存取日誌** – 否
+ **函數** – 否

以下是您可以在多租用戶分佈中為 Elastic Load Balancing 原始伺服器自訂的設定。

**可自訂的設定**
+ **啟用 Origin Shield** – (預設：否)
+ **自動壓縮物件** – (預設：是)
+ **快取** – (預設：`Cache by Default`)
  + 如果選取 `Cache by Default`，則會使用 `UseOriginCacheControlHeaders` 快取政策。
  + 如果選取 `Do Not Cache by Default`，則會使用 `CachingDisabled` 快取政策。
+ **在快取中包含查詢字串** – (預設：是，如果 `Cache by Default` 已選取)
  + 如果已選取 `Do Not Cache by Default`，然後選擇在快取中包含查詢字串，則會使用 `UseOriginCacheControlHeaders-QueryStrings` 快取政策。

## MediaPackage v1 原始伺服器
<a name="media-package-v1-origin-preconfiguration"></a>

以下是 CloudFront 在多租用戶分佈中為 MediaPackage v1 原始伺服器預先設定的原始伺服器設定。

**原始伺服器設定 (預先設定)**
+ **通訊協定** – 僅限 HTTPS
+ **HTTPS 連接埠** – 443
+ **最低來源 SSL 通訊協定** – TLSv1.2
+ **原始路徑** – 您可以輸入 MediaPackage URL 來提供此資訊。
+ **新增自訂標頭** – 無
+ **啟用 Origin Shield** – 否
+ **連線嘗試** – 3
+ **回應逾時** – 30
+ **保持連線逾時** – 5

以下是 CloudFront 在多租用戶分佈中為 MediaPackage v1 原始伺服器預先設定的快取設定。

**快取設定 (預先設定)**
+ **自動壓縮物件** – 是
+ **檢視器通訊協定政策** – 重新導向至 HTTPS
+ **允許的 HTTP 方法** – `GET, HEAD`
+ **快取 HTTP 方法** – 否
+ **允許透過 HTTP/2 進行 gRPC 請求** – 否
+ **限制檢視器存取** – 否
+ **快取政策** – `Elemental-MediaPackage`
+ **原始伺服器請求政策** – 無
+ **回應標頭政策** – 無
+ **Smooth Streaming** – 否
+ **欄位層級加密** – 否
+ **啟用即時存取日誌** – 否
+ **函數** – 否

## MediaPackage v2 原始伺服器
<a name="media-package-v2-origin-preconfiguration"></a>

以下是 CloudFront 在多租用戶分佈中為 MediaPackage v2 原始伺服器預先設定的原始伺服器設定。

**原始伺服器設定 (預先設定)**
+ **原始存取控制** – CloudFront 會為您設定此項目並新增政策
+ **通訊協定** – 僅限 HTTPS
+ **HTTPS 連接埠** – 443
+ **最低來源 SSL 通訊協定** – TLSv1.2
+ **原始伺服器路徑** – 無
+ **新增自訂標頭** – 無
+ **啟用 Origin Shield** – 否
+ **連線嘗試** – 3
+ **回應逾時** – 30
+ **保持連線逾時** – 5

以下是 CloudFront 在多租用戶分佈中為 MediaPackage v2 原始伺服器預先設定的快取設定。

**快取設定 (預先設定)**
+ **自動壓縮物件** – 是
+ **檢視器通訊協定政策** – 重新導向至 HTTPS
+ **允許的 HTTP 方法** – `GET, HEAD`
+ **快取 HTTP 方法** – 否
+ **允許透過 HTTP/2 進行 gRPC 請求** – 否
+ **限制檢視器存取** – 否
+ **快取政策** – `Elemental-MediaPackage`
+ **原始伺服器請求政策** – 無
+ **回應標頭政策** – 無
+ **Smooth Streaming** – 否
+ **欄位層級加密** – 否
+ **啟用即時存取日誌** – 否
+ **函數** – 否

## MediaTailor 原始伺服器
<a name="media-tailor-origin-preconfiguration"></a>

以下是 CloudFront 在多租用戶分佈中為您的 MediaTailor 原始伺服器預先設定的原始伺服器設定。

**原始伺服器設定 (預先設定)**
+ **通訊協定** – 僅限 HTTPS
+ **HTTPS 連接埠** – 443
+ **最低來源 SSL 通訊協定** – TLSv1.2
+ **原始路徑** – 您可以輸入 MediaPackage URL 來提供此資訊。
+ **新增自訂標頭** – 無
+ **啟用 Origin Shield** – 否
+ **連線嘗試** – 3
+ **回應逾時** – 30
+ **保持連線逾時** – 5

以下是 CloudFront 在多租用戶分佈中為您的 MediaTailor 原始伺服器預先設定的快取設定。

**快取設定 (預先設定)**
+ **自動壓縮物件** – 是
+ **檢視器通訊協定政策** – 重新導向至 HTTPS
+ **允許的 HTTP 方法** – `GET, HEAD`
+ **快取 HTTP 方法** – 否
+ **允許透過 HTTP/2 進行 gRPC 請求** – 否
+ **限制檢視器存取** – 否
+ **快取政策** – 無
+ **原始伺服器請求政策** – `Elemental-MediaTailor-PersonalizedManifests`
+ **回應標頭政策** – 無
+ **Smooth Streaming** – 否
+ **欄位層級加密** – 否
+ **啟用即時存取日誌** – 否
+ **函數** – 否

# 所有分佈設定參考
<a name="distribution-web-values-specify"></a>

建立或更新分佈時，您可以選擇手動編輯 CloudFront 分佈設定。以下是您可以編輯的設定。

不過，CloudFront 會根據您的內容原始伺服器類型，為您設定大多數分佈設定。如需詳細資訊，請參閱[預先設定的分佈設定參考](template-preconfigured-origin-settings.md)。

如需使用 CloudFront 主控台建立或更新分發的相關資訊，請參閱[建立分發](distribution-web-creating-console.md)或[更新分佈](HowToUpdateDistribution.md)。

**Topics**
+ [原始設定](DownloadDistValuesOrigin.md)
+ [快取行為設定](DownloadDistValuesCacheBehavior.md)
+ [分佈設定](DownloadDistValuesGeneral.md)
+ [自訂錯誤頁面和錯誤快取](DownloadDistValuesErrorPages.md)
+ [地理限制](DownloadDistValuesEnableGeoRestriction.md)

# 原始設定
<a name="DownloadDistValuesOrigin"></a>

使用 CloudFront 主控台建立或更新分佈時，您可以提供有關一或多個位置 (稱為*原始伺服器*) 的資訊，您可以在其中存放 Web 內容的原始版本。CloudFront 從您的原始伺服器原始伺服器取得 Web 內容，並透過全球網路邊緣伺服器將其提供給檢視器。

如需您可為分佈建立之原始伺服器數量的目前上限，或是有關請求更高配額的詳細資訊，請參閱 [分佈的一般配額](cloudfront-limits.md#limits-web-distributions)。

如果您想要刪除原始來源，則必須先編輯或刪除與該原始來源相關聯的快取行為。

**重要**  
如果您要刪除原始來源，請確認之前由該原始來源提供的檔案，可在另一個原始來源中使用，而且您的快取行為現在正將這些檔案的請求，路由傳送到新的原始來源。

當您建立或更新分佈時，請為每個原始來源指定以下值。

**Topics**
+ [原始網域](#DownloadDistValuesDomainName)
+ [通訊協定 (僅限自訂原始伺服器)](#DownloadDistValuesOriginProtocolPolicy)
+ [原始伺服器路徑](#DownloadDistValuesOriginPath)
+ [名稱](#DownloadDistValuesId)
+ [原始存取 (僅限 Amazon S3 原始伺服器)](#DownloadDistValuesOAIRestrictBucketAccess)
+ [新增自訂標頭](#DownloadDistValuesOriginCustomHeaders)
+ [啟用 Origin Shield](#create-update-fields-origin-shield)
+ [連線嘗試](#origin-connection-attempts)
+ [連線逾時。](#origin-connection-timeout)
+ [回應逾時](#DownloadDistValuesOriginResponseTimeout)
+ [回應完成逾時](#response-completion-timeout)
+ [保持連線逾時 (僅限自訂與 VPC 原始伺服器)](#DownloadDistValuesOriginKeepaliveTimeout)
+ [回應和保持連線逾時配額](#response-keep-alive-timeout-quota)

## 原始網域
<a name="DownloadDistValuesDomainName"></a>

原始伺服器網域是 CloudFront 取得原始伺服器物件資源之 DNS 網域名稱，例如 Amazon S3 儲存貯體或 HTTP 伺服器。例如：
+ **Amazon S3 儲存貯體** – `amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com`
**注意**  
如果您最近建立了 S3 儲存貯體，CloudFront 分佈可能會傳回 `HTTP 307 Temporary Redirect` 回應 (最多需要 24 小時)。最多可能需要 24 小時的時間，才能將 S3 儲存貯體名稱傳播到所有 AWS 區域。傳播完成後，分佈會自動停止傳送這些重新引導回應；您不需要執行任何動作。如需詳細資訊，請參閱[為何會收到來自 Amazon S3 的 HTTP 307 暫時重新引導回應？](https://repost.aws/knowledge-center/s3-http-307-response)和[暫時請求重新引導](https://docs.aws.amazon.com/AmazonS3/latest/dev/Redirects.html#TemporaryRedirection)。
+ **設定為網站的 Amazon S3 儲存貯體** – `amzn-s3-demo-bucket.s3-website.us-west-2.amazonaws.com`
+ **MediaStore 容器** – `examplemediastore.data.mediastore.us-west-1.amazonaws.com`
+ **MediaPackage 端點** – `examplemediapackage.mediapackage.us-west-1.amazonaws.com`
+ **Amazon EC2 執行個體** – `ec2-203-0-113-25.compute-1.amazonaws.com`
+ **Elastic Load Balancing 負載平衡器** – `example-load-balancer-1234567890.us-west-2.elb.amazonaws.com`
+ **您自己的 Web 伺服器** – `www.example.com`

在 **Origin domain (原始網域)** 欄位中選擇網域名稱，或是輸入名稱。來自選擇加入區域的資源必須手動輸入。網域名稱不區分大小寫。您的原始伺服器網域必須具有可公開解析的 DNS 名稱，透過網際網路將請求從用戶端路由到目標。

若您將 CloudFront 設定為透過 HTTPS 連線至原始伺服器，則憑證中的其中一個網域名稱必須與您在**原始伺服器網域名稱**中指定的網域名稱相符。如果沒有網域名稱相符，CloudFront 會將 HTTP 狀態碼 502 (無效的閘道) 傳回到檢視器。如需詳細資訊，請參閱[CloudFront 分佈和憑證中的網域名稱](cnames-and-https-requirements.md#https-requirements-domain-names-in-cert)及[CloudFront 與自訂原始伺服器間的 SSL/TLS 溝通失敗](http-502-bad-gateway.md#ssl-negotitation-failure)。

**注意**  
若您使用的原始伺服器請求政策會將檢視器的主機標頭轉送至原始伺服器，則該原始伺服器必須回應一個與檢視器主機標頭相符的憑證。如需詳細資訊，請參閱[新增 CloudFront 請求標頭](adding-cloudfront-headers.md)。

如果您的原始伺服器是 Amazon S3 儲存貯體，請注意下列事項：
+ 若儲存貯體已設為網站，請輸入您儲存貯體的 Amazon S3 靜態網站託管端點；請不要從 **Origin domain (原始網域)** 欄位中的清單選取儲存貯體名稱。靜態網站託管端點顯示在 Amazon S3 主控台中，在 **Static website hosting (靜態網站託管)** 下的 **Properties (屬性)** 頁面上。如需詳細資訊，請參閱[使用設定為網站端點的 Amazon S3 儲存貯體](DownloadDistS3AndCustomOrigins.md#concept_S3Origin_website)。
+ 如果您為儲存貯體配置了 Amazon S3 Transfer Acceleration，請不要為 **Origin domain (原始網域)**指定 `s3-accelerate` 端點。
+ 如果您使用來自不同 AWS 帳戶的儲存貯體，而且儲存貯體未設定為網站，請使用下列格式輸入名稱：

  `bucket-name.s3.region.amazonaws.com` 

  如果您的儲存貯體位於美國區域，而且您希望 Amazon S3 將請求路由到維吉尼亞北部的一個設施，請使用以下格式：

  `bucket-name.s3.us-east-1.amazonaws.com` 
+ 除非使用 CloudFront 原始存取控制來保護 Amazon S3 中的內容，否則這些檔案必須是可公開讀取。如需存取控制的詳細資訊，請參閱 [限制對 Amazon S3 原始伺服器的存取](private-content-restricting-access-to-s3.md)。

**重要**  
如果該原始伺服器是 Amazon S3 儲存貯體時，則儲存貯體名稱必須符合 DNS 命名請求。如需詳細資訊，請參閱 [Amazon Simple Storage Service 使用者指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html)中的*儲存貯體限制與局限*。

當您變更原始伺服器的 **Origin domain (原始網域)** 的值時，CloudFront 會立即開始將變更複寫到 CloudFront 節點。在特定節點更新分佈組態之前，CloudFront 會繼續將請求轉送至先前原始伺服器。只要在該節點更新分佈組態，CloudFront 就會開始將請求轉送到新的原始伺服器。

變更原始伺服器不需要使用 CloudFront 將來自新原始伺服器的物件來重新填入邊緣快取。只要您的應用程式中的檢視器請求尚未變更，則 CloudFront 會繼續為已存在於邊緣快取中的物件提供服務，直到每個物件上的 TTL 到期，或者直到很少未被請求的物件被逐出。

## 通訊協定 (僅限自訂原始伺服器)
<a name="DownloadDistValuesOriginProtocolPolicy"></a>

**注意**  
這僅適用於自訂原始伺服器。

在從原始伺服器擷取物件時，您想要 CloudFront 使用的通訊協定政策。

請選擇下列其中一個值：
+ **HTTP only (僅限 HTTP)**： CloudFront 只會使用 HTTP 來存取原始伺服器。
**重要**  
當原始伺服器是 Amazon S3 靜態網站託管端點時，**HTTP only (僅限 HTTP)** 是預設設定，因為 Amazon S3 不支援 HTTPS 連線的靜態網站託管端點。CloudFront 主控台不支援變更 Amazon S3 靜態網站託管端點的此設定。
+ **HTTPS only (僅限 HTTPS)**：CloudFront 僅使用 HTTPS 存取原始伺服器。
+ **Match viewer (比對檢視器)**：CloudFront 使用 HTTP 或 HTTPS 與您的原始伺服器通訊，這取決於檢視器請求的通訊協定。請注意 CloudFront 僅會在檢視器使用 HTTP 和 HTTPS 協定發出請求時，快取物件一次。
**重要**  
對於 CloudFront 轉送至此原始伺服器的 HTTPS 檢視器請求，原始伺服器上的 SSL/TLS 憑證中的網域名稱之一，必須符合您為 **Origin domain (原始網域)** 指定的網域名稱。否則，CloudFront 將使用 HTTP 狀態碼 502 (無效閘道) 來回應檢視器請求，而非傳回請求的物件。如需詳細資訊，請參閱[與 CloudFront 搭配使用 SSL/TLS 憑證的要求](cnames-and-https-requirements.md)。

**Topics**
+ [HTTP 連接埠](#DownloadDistValuesHTTPPort)
+ [HTTPS 連接埠](#DownloadDistValuesHTTPSPort)
+ [最低來源 SSL 通訊協定](#DownloadDistValuesOriginSSLProtocols)

### HTTP 連接埠
<a name="DownloadDistValuesHTTPPort"></a>

**注意**  
這僅適用於自訂原始伺服器。

(選擇性) 您可以指定自訂原始伺服器偵聽的 HTTP 連接埠。有效值包括連接埠 80、443，以及 1024 到 65535 之間。預設值為連接埠 80。

**重要**  
當原始伺服器是 Amazon S3 靜態網站託管端點時，連線埠 80 是預設設定，因為 Amazon S3 僅支援連線埠 80 的靜態網站託管端點。CloudFront 主控台不支援變更 Amazon S3 靜態網站託管端點的此設定。

### HTTPS 連接埠
<a name="DownloadDistValuesHTTPSPort"></a>

**注意**  
這僅適用於自訂原始伺服器。

(選擇性) 您可以指定自訂原始伺服器偵聽的 HTTPS 連接埠。有效值包括連接埠 80、443，以及 1024 到 65535 之間。預設值為連接埠 443。當 **Protocol (通訊協定)** 設定為 **HTTP only (僅限 HTTP)**，您無法指定 **HTTPS port (HTTPS 連接埠)** 值。

### 最低來源 SSL 通訊協定
<a name="DownloadDistValuesOriginSSLProtocols"></a>

**注意**  
這僅適用於自訂原始伺服器。

選擇 CloudFront 在建立與您原始伺服器的 HTTPS 連線時可使用的最低 TLS/SSL 通訊協定。由於較低的 TLS 通訊協定安全性較低，因此我們建議您選擇您來源支援的最新 TLS 通訊協定。當 **Protocol (通訊協定)** 設定為 **HTTP only (僅限 HTTP)**，您無法指定 **Minimum origin SSL protocol (最低來源 SSL 通訊協定)** 值。

如果您使用 CloudFront API 來設定用於 CloudFront 的 TLS/SSL 通訊協定，則無法設定最低通訊協定。反之，您可指定所有 TLS/SSL 協定，以供 CloudFront 與您的原始伺服器搭配使用。如需詳細資訊，請參閱 *Amazon CloudFront API 參考*中的 [OriginSslProtocols](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_OriginSslProtocols.html)。

## 原始伺服器路徑
<a name="DownloadDistValuesOriginPath"></a>

如果您希望 CloudFront 從原始伺服器的目錄中請求內容，請輸入以斜線 (/) 開頭的目錄路徑。CloudFront 會將目錄路徑附加到 **Origin domain (原始網域)** 的值中，例如：**cf-origin.example.com/production/images**。請勿在路徑的尾端加上斜線 (/)。

例如，假設您已為您的分佈指定以下值：
+ **Origin domain (原始網域)** – 名為 **amzn-s3-demo-bucket** 的 Amazon S3 儲存貯體
+ **Origin path (原始伺服器路徑)** - **/production**
+ **Alternate domain names (CNAME) (備用網域名稱 (CNAME))** – **example.com**

當使用者在瀏覽器中輸入 `example.com/index.html` 時，CloudFront 會針對 `amzn-s3-demo-bucket/production/index.html` 將請求傳送到 Amazon S3。

當使用者在瀏覽器中輸入 `example.com/acme/index.html` 時，CloudFront 會針對 `amzn-s3-demo-bucket/production/acme/index.html` 將請求傳送到 Amazon S3。

## 名稱
<a name="DownloadDistValuesId"></a>

名稱是一個可唯一識別該分佈中此原始伺服器的字串。如果您除了預設快取行為外，還建立快取行為，則可以使用您在此處指定的名稱，以識別您所希望 CloudFront 將請求路由至其中的原始伺服器，前提是該請求需與該快取行為的路徑模式相符。

## 原始存取 (僅限 Amazon S3 原始伺服器)
<a name="DownloadDistValuesOAIRestrictBucketAccess"></a>

**注意**  
這僅適用於 Amazon S3 儲存貯體原始伺服器 (那些*不*使用 S3 靜態網站端點的原始伺服器)。

如果您想將對 Amazon S3 儲存貯體的存取限制為僅限特定 CloudFront 分佈，請選擇 **Origin access control settings (recommended)** (原始伺服器存取控制設定 (建議使用))。

如果 Amazon S3 儲存貯體可公開存取，請選擇 **public** (公有)。

如需詳細資訊，請參閱[限制對 Amazon S3 原始伺服器的存取](private-content-restricting-access-to-s3.md)。

如需如何請求使用者只使用 CloudFront URL 來存取自訂原始伺服器上的物件的詳細資訊，請參閱[在自訂原始伺服器上限制存取檔案](private-content-overview.md#forward-custom-headers-restrict-access)。

## 新增自訂標頭
<a name="DownloadDistValuesOriginCustomHeaders"></a>

如果您希望 CloudFront 在將請求傳送到您的原始伺服器時新增自訂標頭，請指定標頭名稱和值。如需詳細資訊，請參閱[將自訂標頭新增到原始伺服器請求](add-origin-custom-headers.md)。

如需可新增自訂標頭數量上限的目前上限、自訂標頭的名稱和值的最大長度，以及所有標頭名稱和值的總長度上限的詳細資訊，請參閱 [配額](cloudfront-limits.md)。

## 啟用 Origin Shield
<a name="create-update-fields-origin-shield"></a>

選擇 **Yes (是)** 以啟用 CloudFront Origin Shield。如需 Origin Shield 的詳細資訊，請參閱 [使用 Amazon CloudFront Origin Shield](origin-shield.md)。

## 連線嘗試
<a name="origin-connection-attempts"></a>

您可以設定 CloudFront 嘗試連線至原始伺服器的次數。您可以指定 1、2 或 3 做為嘗試次數。預設數字 (如果您未另外指定) 是 3。

將此設定與 **Connection timeout (連線逾時)** 搭配使用，可指定在嘗試連線至次要原始伺服器或將錯誤回應傳回給檢視器之前 CloudFront 等待的時間長度。依預設，CloudFront 會等待 30 秒 (嘗試 3 次，每次 10 秒)，然後再嘗試連線至次要原始伺服器或傳回錯誤回應。您可以指定較少的嘗試次數、較短的連線逾時或兩者，以縮短此時間。

如果指定的連線嘗試次數失敗，CloudFront 會執行下列其中一項操作：
+ 如果原始伺服器是原始伺服器群組的一部分，則 CloudFront 會嘗試連線至次要原始伺服器。如果對次要原始伺服器指定的連線嘗試次數失敗，則 CloudFront 會傳回錯誤回應給檢視器。
+ 如果原始伺服器不是原始伺服器群組的一部分，則 CloudFront 會傳回錯誤回應給檢視器。

對於自訂原始伺服器 (包括使用靜態網站託管所配置的 Amazon S3 儲存貯體)，此配置也會指定 CloudFront 嘗試從原始伺服器取得回應的次數。如需詳細資訊，請參閱[回應逾時](#DownloadDistValuesOriginResponseTimeout)。

## 連線逾時。
<a name="origin-connection-timeout"></a>

連線逾時是嘗試建立與原始伺服器的連線時 CloudFront 所等待的秒數。您可以指定介於 1 到 10 之間的秒數 (含)。預設逾時 (如果您另外未指定) 是 10 秒。

將此設定與 **Connection attempts (連線嘗試次數)** 搭配使用，可指定在嘗試連線至次要原始伺服器之前或將錯誤回應傳回給檢視器之前 CloudFront 等待的時間長短。依預設，CloudFront 會等待 30 秒 (嘗試 3 次，每次 10 秒)，然後再嘗試連線至次要原始伺服器或傳回錯誤回應。您可以指定較少的嘗試次數、較短的連線逾時或兩者，以縮短此時間。

如果 CloudFront 未在指定的秒數內建立與原始伺服器的連線，CloudFront 會執行下列其中一項操作：
+ 如果指定的 **Connection attempts (連線嘗試次數)**超過 1，CloudFront 會再次嘗試建立連線。CloudFront 最多可嘗試 3 次，由 **Connection attempts (連線嘗試次數)**的值決定。
+ 如果所有連線嘗試失敗，且原始伺服器是原始伺服器群組的一部分，則 CloudFront 會嘗試連線至次要原始伺服器。如果對次要原始伺服器指定的連線嘗試次數失敗，則 CloudFront 會傳回錯誤回應給檢視器。
+ 如果所有連線嘗試失敗，且原始伺服器不是原始伺服器群組的一部分，則 CloudFront 會傳回錯誤回應給檢視器。

## 回應逾時
<a name="DownloadDistValuesOriginResponseTimeout"></a>

原始伺服器回應逾時，也稱為*原始伺服器讀取逾時*或*原始伺服器請求逾時*，適用於以下兩個值：
+ 在將請求轉送到自訂原始伺服器之後，CloudFront 等待回應的時間 (以秒為單位)。
+ CloudFront 在收到來自原始伺服器的回應封包後，並在接收下一個封包前，等待的時間長短 (以秒為單位)

**提示**  
如果因為檢視器遇到 HTTP 504 狀態碼錯誤，而您想要增加逾時值，請考慮在變更逾時值之前先探索其他方式來消除這些錯誤。請查看在 [HTTP 504 狀態碼 (閘道逾時)](http-504-gateway-timeout.md) 中的故障診斷建議。

CloudFront 行為取決於檢視器請求中的 HTTP 方法：
+ `GET` 與 `HEAD` 請求 – 如果原始伺服器在回應逾時期間未回應或是停止回應，CloudFront 會結束連線。CloudFront 會根據 [連線嘗試](#origin-connection-attempts) 的值再次嘗試連線。
+ `DELETE`、`OPTIONS`、`PATCH`、`PUT` 及 `POST` 請求 – 如果在讀取逾時期間原始伺服器未回應，CloudFront 將會結束連線，並且不再嘗試聯絡原始伺服器。用戶端可以視需要重新提交請求。

## 回應完成逾時
<a name="response-completion-timeout"></a>

**注意**  
回應完成逾時不支援[持續部署](continuous-deployment.md)功能。

從 CloudFront 到原始伺服器的請求可以保持開啟並等待回應的時間 (以秒為單位)。如果此時未從原始伺服器收到完整回應，CloudFront 會結束連線。

不同於**回應逾時**，這是*個別*回應封包的等待時間，**回應完成逾時**是 CloudFront 等待回應完成的允許時間*上限*。您可以使用此設定，以確保 CloudFront 不會無限期等待緩慢或沒有回應的原始伺服器，即使其他逾時設定允許更長的等待時間。

此最大逾時包括您為其他逾時設定指定的項目，以及每次重試的**連線嘗試**次數。您可以同時使用這些設定來指定 CloudFront 等待完整請求的時間，以及何時結束請求，無論是否完成。

例如，如果您設定下列設定：
+ **連線嘗試**為 3
+ **連線逾時**為 10 秒
+ **回應逾時**為 30 秒
+ **回應完成逾時**為 60 秒

這表示 CloudFront 會嘗試連線到原始伺服器 (最多總共 3 次嘗試)，每次連線嘗試會在 10 秒逾時。連線後，CloudFront 最多會等待 30 秒，讓原始伺服器回應請求，直到收到回應的最後一個封包為止。

無論連線嘗試次數或回應逾時，如果來自原始伺服器的完整回應需要超過 60 秒才能完成，CloudFront 都會結束連線。然後，如果您指定了 [HTTP 504 狀態碼 (閘道逾時)](http-504-gateway-timeout.md) 錯誤回應或自訂錯誤回應，CloudFront 將傳回給檢視器。

**備註**  
如果您設定回應完成逾時的值，則值必須等於或大於[回應逾時 (原始伺服器讀取逾時)](#DownloadDistValuesOriginResponseTimeout) 的值。
如果您未設定回應完成逾時的值，CloudFront 不會強制執行最大值。

## 保持連線逾時 (僅限自訂與 VPC 原始伺服器)
<a name="DownloadDistValuesOriginKeepaliveTimeout"></a>

保持連線逾時是在取得上次封包回應之後，CloudFront 嘗試與您的自訂原始伺服器保持連線的時間 (以秒為單位)。維護持久性連線可節省重新建立 TCP 連線所需的時間，並為後續請求執行另一個 TLS 交握。增加「保持活動逾時」有助於改善分佈的「每個連線請求指標」。

**注意**  
為了讓 **Keep-alive Timeout (保持連線逾時)** 值有效，必須將原始伺服器設定為允許持久連線。

## 回應和保持連線逾時配額
<a name="response-keep-alive-timeout-quota"></a>
+ 對於[回應逾時](#DownloadDistValuesOriginResponseTimeout)，預設為 30 秒。
+ 對於[保持連線逾時](#DownloadDistValuesOriginKeepaliveTimeout)，預設值為 5 秒。

如果您請求增加 的逾時 AWS 帳戶，請更新您的分佈原始伺服器，以便它們具有您想要的回應逾時和持續作用逾時值。您帳戶的配額增加不會自動更新您的原始伺服器。例如，如果您使用 Lambda@Edge 函數來設定 90 秒的保持連線逾時，您的原始伺服器必須已有 90 秒以上的保持連線逾時。否則，您的 Lambda@Edge 函數可能無法執行。

如需有關分佈配額的詳細資訊，包括如何請求提高配額，請參閱 [分佈的一般配額](cloudfront-limits.md#limits-web-distributions)。

# 快取行為設定
<a name="DownloadDistValuesCacheBehavior"></a>

快取行為可讓您為網站上的檔案的指定 URL 路徑模式配置各種 CloudFront 功能。例如，一個快取行為可能會套用到 Web 伺服器上的 `images` 目錄中的所有 `.jpg` 檔案，您正在使用它做為 CloudFront 的原始伺服器。您可以為每個快取行為設定的功能包括：
+ 路徑模式
+ 如果您為 CloudFront 分佈設定了多個原始伺服器，您希望 CloudFront 將您的請求轉送至哪個原始伺服器
+ 是否將查詢字串轉發到您的原始伺服器。
+ 存取指定的檔案是否需要已簽署的 URL
+ 是否要求使用者使用 HTTPS 來存取這些檔案
+ 這些檔案在 CloudFront 快取中停留的最短時間，此時間與原始伺服器新增至檔案中的任何 `Cache-Control` 標頭值無關

在建立新的分佈，您可以指定預設快取行為的設定，該設定會自動將所有請求轉發到您在建立分佈時指定的原始伺服器。在建立分發後，您可以建立額外的快取行為，以定義 CloudFront 在收到與路徑模式符合的物件的請求時如何回應，例如，`*.jpg`。如果您建立額外的快取行為，則預設的快取行為一律是最後要處理的。其他快取行為按其在 CloudFront 主控台中所列的順序進行處理，或者如果您使用的是 CloudFront API ，它們在分發的 `DistributionConfig` 元素中列出順序。如需詳細資訊，請參閱[路徑模式](#DownloadDistValuesPathPattern)。

當建立快取行為時，您可以指定一個您希望 CloudFront 從中取得物件的原始伺服器。因此，如果您希望 CloudFront 從您的所有原始伺服器分配物件，則必須至少擁有的快取行為儘可能與該您的原始伺服器一樣多 (包括預設的快取行為)。例如，如果您有兩部原始伺服器，且只有預設的快取行為，則預設快取行為會導致 CloudFront 從其中一部原始伺服器取得物件，但永遠不會使用其他原始伺服器。

如需您可為分發新增之快取行為數量的目前上限，或是有關請求更高配額 (先前稱為限制) 的詳細資訊，請參閱[分佈的一般配額](cloudfront-limits.md#limits-web-distributions)。

**Topics**
+ [路徑模式](#DownloadDistValuesPathPattern)
+ [來源或來源群組](#DownloadDistValuesTargetOriginId)
+ [檢視器通訊協定政策](#DownloadDistValuesViewerProtocolPolicy)
+ [Allowed HTTP methods (允許的 HTTP 方法)](#DownloadDistValuesAllowedHTTPMethods)
+ [欄位層級加密 Config](#DownloadDistValuesFieldLevelEncryption)
+ [快取的 HTTP 方法](#DownloadDistValuesCachedHTTPMethods)
+ [允許透過 HTTP/2 進行 gRPC 請求](#enable-grpc-distribution)
+ [根據選取請求標頭的快取](#DownloadDistValuesForwardHeaders)
+ [允許清單標頭](#DownloadDistValuesAllowlistHeaders)
+ [物件快取](#DownloadDistValuesObjectCaching)
+ [最短 TTL](#DownloadDistValuesMinTTL)
+ [最長 TTL](#DownloadDistValuesMaxTTL)
+ [預設 TTL](#DownloadDistValuesDefaultTTL)
+ [轉送 Cookie](#DownloadDistValuesForwardCookies)
+ [允許清單 Cookie](#DownloadDistValuesAllowlistCookies)
+ [查詢字串轉送和快取](#DownloadDistValuesQueryString)
+ [查詢字串允許清單](#DownloadDistValuesQueryStringAllowlist)
+ [Smooth Streaming](#DownloadDistValuesSmoothStreaming)
+ [限制檢視器存取 (使用已簽章的 URL 或已簽章的 Cookie)](#DownloadDistValuesRestrictViewerAccess)
+ [可信簽署者](#DownloadDistValuesTrustedSigners)
+ [AWS 帳戶 數字](#DownloadDistValuesAWSAccountNumbers)
+ [自動壓縮物件](#DownloadDistValuesCompressObjectsAutomatically)
+ [CloudFront 事件](#DownloadDistValuesEventType)
+ [Lambda 函數 ARN](#DownloadDistValuesLambdaFunctionARN)
+ [包含內文](#include-body)

## 路徑模式
<a name="DownloadDistValuesPathPattern"></a>

路徑模式 (例如，`images/*.jpg`) 指定您希望將此快取行為套用到哪些請求。當 CloudFront 收到檢視器請求時，會依快取行為在分佈中的排列順序，比較請求的路徑與路徑模式。第一種符合決定哪個快取行為套用到該請求。例如，假設您在以下三種路徑模式下有三個快取行為模式，並按此順序排列：
+ `images/*.jpg`
+ `images/*`
+ `*.gif`

**注意**  
您可以選擇在路徑模式的開頭包括斜線 (/)，例如 `/images/*.jpg`。無論是否有前導斜線，CloudFront 的行為都一樣。如果您未在路徑開頭指定 /，則會自動隱含此字元；CloudFront 會以相同方式處理路徑，無論是否使用前置 /。例如，CloudFront 會將相同 `/*product.jpg` 視為 `*product.jpg`

對檔案 `images/sample.gif` 的請求無法滿足第一個路徑模式，所以關聯的快取行為不能套用到該請求。該檔案確實滿足第二個路徑模式，因此即使該請求也與第三個路徑模式相符合，也會套用與第二個路徑模式相關聯的快取行為。

**注意**  
當您建立新的分佈時，預設快取行為的 **Path Pattern (路徑模式)** 值將設定為 **\$1** (所有檔案)，而且無法變更。這個值會導致 CloudFront 將您的物件的所有請求轉送到在 [原始網域](DownloadDistValuesOrigin.md#DownloadDistValuesDomainName) 欄位中指定的原始伺服器。如果對物件的請求與任何其他快取行為的路徑模式不符合，CloudFront 將套用您在預設快取行為中指定的行為。

**重要**  
請謹慎定義路徑模式及其序列，否則可能會讓使用者對您的內容作出無法預料的存取。例如，假設請求與兩個快取行為的路徑模式相符合。第一個快取行為不需要簽章的 URL 和第二個快取行為確實需要簽章的 URL。使用者能夠在不使用簽署的 URL 的情況下存取物件，因為 CloudFront 處理與第一個符合相關聯的快取行為。

如果您正在使用 MediaPackage 頻道，您必須針對您為原始伺服器的端點類型定義的快取行為納入特定的路徑模式。例如，如果是 DASH 端點，請在 **路徑模式** 中，輸入 `*.mpd`。如需詳細資訊和特定說明，請參閱[提供格式化為 的即時影片 AWS Elemental MediaPackage](live-streaming.md#live-streaming-with-mediapackage)。

您所指定的路徑套用到指定目錄中所有檔案和指定目錄下子目錄中所有檔案的請求。CloudFront 在評估路徑模式時不考慮查詢字串或 Cookie。例如，如果 `images` 目錄包含 `product1` 和 `product2` 子目錄，則路徑模式 `images/*.jpg` 適用於 `images`、`images/product1` 和 `images/product2` 目錄中任何 .jpg 檔案的請求。如果要對 `images/product1` 目錄中的檔案套用與 `images` 和 `images/product2` 目錄中的套用不同的快取行為，請為 `images/product1` 建立一個單獨的快取行為，並將該快取行為移至 `images` 目錄快取行為上方 (之前) 的位置。

您可以在路徑模式中使用以下萬用字元：
+ `*` 符合 0 或更多字元。
+ `?` 符合完全 1 個字元。

以下範例說明萬用字元的工作方式：


****  

| 路徑模式 | 與路徑模式相符的檔案 | 
| --- | --- | 
|  `*.jpg`  |  所有 .jpg 檔案。  | 
|  `images/*.jpg`  |  位於 `images` 目錄和 `images` 目錄下子目錄中的所有 .jpg 檔案。  | 
|  `a*.jpg`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesCacheBehavior.html)  | 
|  `a??.jpg`  |  檔案名稱以 `a` 開頭的所有 .jpg 檔案，後面緊接恰好兩個其他字元，例如 `ant.jpg` 和 `abe.jpg`。  | 
|  `*.doc*`  |  檔案名稱副檔名以 `.doc` 開頭的所有檔案，例如 `.doc`、`.docx` 和 `.docm` 檔案。在這種情況下，您不能使用路徑模式`*.doc?`，因為該路徑模式不適用於 `.doc` 檔案的請求；`?` 萬用字元僅取代一個字元。  | 

路徑模式 的長度上限為 255 個字元。這個值可以包含以下任何字元：
+ A-Z、a-z

  途徑模式會區分大小寫，因此路徑模式 `*.jpg` 不適用於檔案 `LOGO.JPG`
+ 0-9
+ \$1 - . \$1 \$1 / \$1 " ' @ : \$1
+ & 通過並以 `&amp;` 傳回

### 路徑標準化
<a name="path-normalization"></a>

CloudFront 會依照 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986#section-6) 的規範來標準化 URI 路徑，然後將路徑與正確的快取行為比對。快取行為相符後，CloudFront 會將原始 URI 路徑傳送至原始伺服器。如果不相符，請求會改為符合您的預設快取行為。

有些字元會標準化並從路徑中移除，例如多個斜線 (`//`) 或句點 (`..`)。這可能會改變 CloudFront 用來比對預期快取行為的 URL。

**Example 範例**  
您可以指定快取行為的 `/a/b*` 和 `/a*` 路徑。  
+ 傳送 `/a/b?c=1` 路徑的檢視器將符合 `/a/b*` 快取行為。
+ 傳送 `/a/b/..?c=1` 路徑的檢視器將符合 `/a*` 快取行為。

若要解決正被標準化的路徑，您可以更新請求路徑或快取行為的路徑模式。

## 來源或來源群組
<a name="DownloadDistValuesTargetOriginId"></a>

僅當您建立或更新現有分佈的快取行為時才適用此設定。

輸入現有來源或來源群組的值。這會識別當請求 (例如 https://example.com/logo.jpg) 與快取行為的路徑模式 (例如 \$1.jpg) 或預設快取行為的路徑模式 (\$1) 相符時，您要 CloudFront 將請求路由到的原始伺服器或原始伺服器群組。

## 檢視器通訊協定政策
<a name="DownloadDistValuesViewerProtocolPolicy"></a>

選擇您想要檢視器在 CloudFront 節點存取您的內容時使用的通訊協定政策：
+ **HTTP and HTTPS (HTTP 和 HTTPS)**：檢視器可使用這兩種通訊協定。
+ **Redirect HTTP to HTTPS (將 HTTP 重新引導到 HTTPS)**：檢視器可使用這兩種通訊協定，但是 HTTP 請求會自動重新引導到 HTTPS 請求。
+ **HTTPS Only (僅限 HTTPS)**：檢視器只能在使用 HTTPS 的情況下存取您的內容。

如需詳細資訊，請參閱[檢視器和 CloudFront 之間的通訊需使用 HTTPS](using-https-viewers-to-cloudfront.md)。

## Allowed HTTP methods (允許的 HTTP 方法)
<a name="DownloadDistValuesAllowedHTTPMethods"></a>

指定您希望 CloudFront 處理並轉送到您的原始伺服器的 HTTP 方法。
+ **GET、HEAD：**您只能使用 CloudFront 來從您的原始伺服器取得物件或物件標頭。
+ **GET、HEAD、OPTIONS：**您只能使用 CloudFront 來從您的原始伺服器取得物件，取得物件標頭或擷取原始伺服器支援的選項清單。
+ **GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE：**您可以使用 CloudFront 來取得、新增、更新和刪除物件，以及取得物件標頭。此外，您可以執行其他 POST 操作，例如從 Web 表單提交資料。
**注意**  
如果您在工作負載中使用 gRPC，則必須選擇 **GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE**。gRPC 工作負載需要 `POST` 方法。如需詳細資訊，請參閱[使用 gRPC 搭配 CloudFront 分佈](distribution-using-grpc.md)。  
CloudFront 快取對 `GET` 和 `HEAD` 請求的回應，以及 可選的 `OPTIONS` 請求的回應。`OPTIONS` 請求的回應與 `GET` 和 `HEAD` 請求的回應分開快取 (`OPTIONS` 方法包含在適用於 `OPTIONS` 請求的[快取金鑰](understanding-the-cache-key.md)中)。CloudFront 不會快取對使用其他方法之請求的回應。

**重要**  
如果您選擇 **GET、HEAD、OPTIONS** 或 **GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE**，則可能需要限制對 Amazon S3 儲存貯體或自訂原始伺服器原始伺服器的存取，以防止使用者執行不希望它們執行的操作。下列範例說明如何限制存取：  
**如果您正在使用 Amazon S3 做為分佈的原始伺服器：**建立 CloudFront 原始存取控制以限制對 Amazon S3 內容的存取，並為原始存取控制授予許可。例如，若您將 CloudFront 配置為接受並轉送這些方法，*僅*因為您要使用 `PUT`，則仍然必須配置 Amazon S3 儲存貯體原則以正確處理 `DELETE` 請求。如需詳細資訊，請參閱[限制對 Amazon S3 原始伺服器的存取](private-content-restricting-access-to-s3.md)。
**如果您使用自訂原始伺服器：**請設定您的原始伺服器以處理所有方法。例如，如果您將 CloudFront 配置為接受並轉送這些方法，*僅*因為您要使用 `POST`，則仍然必須配置您的原始伺服器以正確處理 `DELETE` 請求。

## 欄位層級加密 Config
<a name="DownloadDistValuesFieldLevelEncryption"></a>

如果想要針對特定資料欄位強制執行欄位層級加密，請在下拉式清單中選擇欄位層級加密組態。

如需詳細資訊，請參閱[使用欄位層級加密來協助保護敏感資料](field-level-encryption.md)。

## 快取的 HTTP 方法
<a name="DownloadDistValuesCachedHTTPMethods"></a>

指定當檢視器提交 `OPTIONS` 請求，您是否希望 CloudFront 快取原始伺服器原始伺服器的回應。CloudFront 一律快取 `GET` 和 `HEAD` 請求的回應。

## 允許透過 HTTP/2 進行 gRPC 請求
<a name="enable-grpc-distribution"></a>

指定您是否希望分佈允許 gRPC 請求。若要啟用 gRPC，請選取下列設定：
+ 針對**[允許的 HTTP 方法](#DownloadDistValuesAllowedHTTPMethods)**，選取 **GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE** 方法。gRPC 需要 `POST` 方法。
+ 選取在您選取 `POST` 方法後出現的 gRPC 核取方塊。
+ 針對 **[支援的 HTTP 版本](DownloadDistValuesGeneral.md#DownloadDistValuesSupportedHTTPVersions)**，選取 **HTTP/2**。

如需詳細資訊，請參閱[使用 gRPC 搭配 CloudFront 分佈](distribution-using-grpc.md)。

## 根據選取請求標頭的快取
<a name="DownloadDistValuesForwardHeaders"></a>

指定是否希望 CloudFront 根據特定標頭的值來快取物件：
+ **無 (提升快取)** – CloudFront 不會根據標頭值快取物件。
+ **允許清單** – CloudFront 僅依據指定標頭的值來快取物件。使用**允許清單標頭**選擇您希望 CloudFront 進行快取時所依據的標頭。
+ **所有** – CloudFront 不會快取與此快取行為相關聯的物件。相反地，CloudFront 會將每個請求傳送給原始伺服器。(不建議用於 Amazon S3 原始伺服器。)

無論您選擇的選項為何，CloudFront 皆會轉送特定標頭到原始伺服器，並根據您轉送的標頭來採取特定動作。如需 CloudFront 處理標頭轉送的詳細資訊，請參閱[HTTP 請求標頭和 CloudFront 行為 (自訂和 Amazon S3 原始伺服器)](RequestAndResponseBehaviorCustomOrigin.md#request-custom-headers-behavior)。

如需如何使用請求標頭以在 CloudFront 配置快取的詳細資訊，請參閱[根據請求標頭快取內容](header-caching.md)。

## 允許清單標頭
<a name="DownloadDistValuesAllowlistHeaders"></a>

這些設定只有當您針對**根據選取的請求標頭的快取**選擇**允許清單**時才適用。

指定希望 CloudFront 在快取物件時考慮的標頭。從可用標頭清單中選擇標頭，然後選擇 **Add (新增)**。若要轉送自訂標頭，請在欄位中輸入標頭的名稱，然後選擇 **Add Custom (新增自訂)**。

如需您可為每個快取行為列入允許清單之標頭數量的目前上限，或是有關請求更高配額 (先前稱為限制) 的詳細資訊，請參閱[標頭的配額](cloudfront-limits.md#limits-custom-headers)。

## 物件快取
<a name="DownloadDistValuesObjectCaching"></a>

如果您的原始伺服器向您的物件新增 `Cache-Control` 標頭以控制物件在 CloudFront 快取中的停留時間，而且您不想變更 `Cache-Control` 值，請選擇**使用原始伺服器快取標頭**。

若要指定物件停留在 CloudFront 快取中的最短和最長時間，而不考慮 `Cache-Control` 標頭，以及當物件中的 `Cache-Control` 標頭時遺失時，物件停留在 CloudFront 快取中的預設時間，請選擇**自訂**。然後，在 **Minimum TTL (最短 TTL)**、**Default TTL (預設 TTL)** 及 **Maximum TTL (最長 TTL)** 欄位中指定值。

如需詳細資訊，請參閱[管理內容保持在快取中達多久時間 (過期)](Expiration.md)。

## 最短 TTL
<a name="DownloadDistValuesMinTTL"></a>

指定時間的長度下限 (以秒為單位)，此時間是您希望在 CloudFront 傳送另一個請求至原始伺服器前，物件要停留在 CloudFront 快取中以判定物件是否已更新的時間。

**警告**  
如果您的最小 TTL 大於 0，則即使原始伺服器標頭中存在 `Cache-Control: no-cache`、`no-store` 或 `private` 指令，CloudFront 也會快取內容至少達到快取政策最短 TTL 中指定的持續時間。

如需詳細資訊，請參閱[管理內容保持在快取中達多久時間 (過期)](Expiration.md)。

## 最長 TTL
<a name="DownloadDistValuesMaxTTL"></a>

指定希望物件在 CloudFront 快取中停留的最長時間 (以秒為單位)，然後在 CloudFront 查詢您的原始伺服器原始伺服器，以查看該物件是否已更新。您為 **Maximum TTL (最長 TTL)** 指定的值僅適用於您的原始伺服器將 HTTP 標題 (例如 `Cache-Control max-age`、`Cache-Control s-maxage` 或 `Expires`) 新增至物件時。如需詳細資訊，請參閱[管理內容保持在快取中達多久時間 (過期)](Expiration.md)。

若要指定 **Maximum TTL (最長 TTL)** 的值，您必須為 **Object Caching (物件快取)** 設定選擇 **Customize (自訂)** 選項。

**Maximum TTL (最長 TTL)** 的預設值為 31536000 秒 (一年)。如果將 **Minimum TTL (最短 TTL)** 或 **Default TTL (預設 TTL)** 的值變更為 31536000 秒以上，則 **Maximum TTL (最長 TTL)** 的預設值將變更為 **Default TTL (預設 TTL)** 的值。

## 預設 TTL
<a name="DownloadDistValuesDefaultTTL"></a>

指定您希望物件在 CloudFront 快取中停留的預設時間，然後 CloudFront 會將另一個請求轉送到原始伺服器，以判斷物件是否已更新。您為**預設 TTL** 指定的值，僅在您的原始伺服器*不會*將 HTTP 標題 (例如 `Cache-Control max-age`、`Cache-Control s-maxage` 或 `Expires`) 新增至物件時適用。如需詳細資訊，請參閱[管理內容保持在快取中達多久時間 (過期)](Expiration.md)。

若要指定 **Default TTL (預設 TTL)** 的值，您必須為 **Object Caching (物件快取)** 設定選擇 **Customize (自訂)** 選項。

**Default TTL (預設 TTL)** 的預設值為 86400 秒 (一天)。如果將 **Minimum TTL (最短 TTL)** 的值變更為 86400 秒以上，則 **Default TTL (預設 TTL)** 的預設值將變更為 **Minimum TTL (最短 TTL)** 的值。

## 轉送 Cookie
<a name="DownloadDistValuesForwardCookies"></a>

**注意**  
對於 Amazon S3 原始伺服器，此選項僅適用於配置為網站端點的儲存貯體。

指定您是否希望 CloudFront 轉送 Cookie 到原始伺服器，若要轉送，則請指定是哪些 Cookie。如果您選擇僅轉送所選取的 Cookie (Cookie 的允許清單)，請在**允許清單 Cookie** 欄位中輸入 Cookie 名稱。如果您選擇**所有**，無論您的應用程式使用多少，CloudFront 都會轉送所有Cookie。

Amazon S3 並不處理 Cookie，而且將 Cookie 轉送到原始伺服器的動作，會降低快取的能力。對於將請求轉送到 Amazon S3 原始伺服器的快取行為，請為**轉送 Cookie**選擇**無**。

如需有關將 Cookie 轉發到原始伺服器的詳細資訊，請前往[根據 Cookie 快取內容](Cookies.md)。

## 允許清單 Cookie
<a name="DownloadDistValuesAllowlistCookies"></a>

**注意**  
對於 Amazon S3 原始伺服器，此選項僅適用於配置為網站端點的儲存貯體。

如果您在**轉送 Cookies** 清單中選擇了**允許清單**，請在**允許清單 Cookies** 欄位中輸入您希望 CloudFront 針對此快取行為要轉送至原始伺服器的 Cookie 名稱。在新的列上輸入每個 Cookie 名稱。

您可以指定以下萬用字元，以指定 Cookie 名稱：
+ **\$1** 符合 Cookie 名稱中的 0 個或多個字元
+ **?** 僅符合 Cookie 名稱中的一個字元

例如，假設檢視器為包含 Cookie 的物件作請求，其 Cookie 名為：

`userid_member-number`

其中每個使用者都有*會員編號*的唯一值。您希望 CloudFront 為每個成員快取單獨版本的物件。您可以透過將所有 Cookie 轉送到原始伺服器原始伺服器來達成此目標，但檢視器請求包含一些您不希望 CloudFront 快取的 Cookie。或者，您可以指定以下值做為 Cookie 名稱，這會導致 CloudFront 將所有以 `userid_` 開頭的 Cookie 轉送至原始伺服器：

`userid_*`

如需您可為每個快取行為列入允許清單之 Cookie 名稱的目前上限，或是有關請求更高配額 (先前稱為限制) 的詳細資訊，請參閱[Cookie 的配額 (舊版快取設定)](cloudfront-limits.md#limits-allowlisted-cookies)。

## 查詢字串轉送和快取
<a name="DownloadDistValuesQueryString"></a>

CloudFront 可以根據查詢字串參數的值快取不同版本的內容。請選擇下列其中一個選項：

**無 (提升快取)**  
如果您的原始來源傳回物件的相同版本，而不考慮查詢字串參數的值，請選擇此選項。這會增加 CloudFront 的可能性，可以提供來自快取的請求，這可以提高效能，並降低您的原始伺服器原始伺服器的負載。

**全部轉送，依據允許清單進行快取**  
如果您的原始伺服器根據一或多個查詢字串參數傳回物件的不同版本，請選擇此選項。接著，在 [查詢字串允許清單](#DownloadDistValuesQueryStringAllowlist) 欄位中，指定您希望 CloudFront 使用做為快取基礎的參數。

**轉發所有，根據所有快取**  
如果您的原始伺服器針對所有查詢字串參數傳回物件的不同版本，請選擇此選項。

如需有關根據查詢字串參數進行快取的詳細資訊，包括如何提升效能，請參閱[根據查詢字串參數快取內容](QueryStringParameters.md)。

## 查詢字串允許清單
<a name="DownloadDistValuesQueryStringAllowlist"></a>

此設定僅在您為 [查詢字串轉送和快取](#DownloadDistValuesQueryString) 選擇**轉送全部，並根據允許清單進行快取**時才會套用。您可以指定做為您希望 CloudFront 用於快取基礎的查詢字串參數。

## Smooth Streaming
<a name="DownloadDistValuesSmoothStreaming"></a>

如果您想要以 Microsoft Smooth Streaming 格式分配媒體檔案，而且您沒有 IIS 伺服器，請選擇 **Yes** (是)。

如果您有 Microsoft IIS 伺服器，而且想要將它當做以 Microsoft Smooth Streaming 格式分配媒體檔案的原始伺服器使用，或者您並非分配 Smooth Streaming 媒體檔案，請選擇 **No** (否)。

**注意**  
如果您指定 **Yes (是)**，而內容與 **Path Pattern** (路徑模式) 的值符合，您仍然可以使用此快取行為分配其他內容。

如需詳細資訊，請參閱[為 Microsoft Smooth Streaming 設定隨需視訊](on-demand-video.md#on-demand-streaming-smooth)。

## 限制檢視器存取 (使用已簽章的 URL 或已簽章的 Cookie)
<a name="DownloadDistValuesRestrictViewerAccess"></a>

如果您希望與此快取行為之 `PathPattern` 相符的物件請求使用公有 URL，請選擇 **No (否)**。

如果您希望與此快取行為之 `PathPattern` 相符的物件請求使用已簽章的 URL，請選擇 **Yes (是)**。然後指定您要用來建立簽章 URLs AWS 的帳戶；這些帳戶稱為信任簽署者。

如需有關可信任簽署者的詳細資訊，請參閱[指定可以建立已簽署 URL 和已簽署 Cookie 的簽署者](private-content-trusted-signers.md)。

## 可信簽署者
<a name="DownloadDistValuesTrustedSigners"></a>

僅當您在**限制檢視器存取權限** (使用已簽署的 URL 或已簽署的 Cookie) 選擇**是**時才適用此設定。

選擇要使用此快取行為做為信任簽署者的 AWS 帳戶：
+ **自我：**使用您目前登入的 帳戶 AWS 管理主控台 做為信任的簽署者。如果您目前以 IAM 使用者身分登入，則相關聯的 AWS 帳戶會新增為信任的簽署者。
+ **Specify Accounts (指定帳戶)：**在 **AWS Account Numbers ( 帳號)** 欄位中輸入可信任簽署者的帳號。

若要建立簽章URLs， AWS 帳戶必須至少有一個作用中的 CloudFront 金鑰對。

**重要**  
如果您正在更新已用於分配內容的分佈，則只有在準備好開始為您的物件產生已簽章 URL 時，才會新增可信任簽署者。將可信任簽署者新增到分佈後，使用者必須使用已簽名的 URL 來存取與此 `PathPattern` 快取行為符合的物件。

## AWS 帳戶 數字
<a name="DownloadDistValuesAWSAccountNumbers"></a>

僅當您在**可信簽署者**選擇**指定帳戶**時才適用此設定。

如果您想要使用 AWS 帳戶 除了目前帳戶以外的 或 建立已簽章URLs，請在此欄位的每行輸入一個 AWS 帳戶 數字。注意下列事項：
+ 您指定的帳戶必須至少有一個作用中的 CloudFront 金鑰對。如需詳細資訊，請參閱[為您的簽署者建立金鑰對](private-content-trusted-signers.md#private-content-creating-cloudfront-key-pairs)。
+ 您無法為 IAM 使用者建立 CloudFront 金鑰對，因此您不能將 IAM 使用者用作可信任簽署者。
+ 如需有關如何取得帳戶 AWS 帳戶 號碼的資訊，請參閱《 *AWS 帳戶 管理參考指南*》中的[檢視 AWS 帳戶 識別符](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html)。
+ 如果您輸入目前帳戶的帳號，CloudFront 將自動勾選**自我**核取方塊並從 **AWS 帳號**清單中移除該帳號。

## 自動壓縮物件
<a name="DownloadDistValuesCompressObjectsAutomatically"></a>

如果您想要 CloudFront 在檢視器支援壓縮內容時自動壓縮特定類型的檔案，請選擇**是**。當 CloudFront 壓縮您的內容時，下載的速度會更快，因為檔案較小，而且您的網頁呈現給使用者的速度更快。如需詳細資訊，請參閱[提供壓縮檔案](ServingCompressedFiles.md)。

## CloudFront 事件
<a name="DownloadDistValuesEventType"></a>

此設定適用於 **Lambda 函數關聯**。

當發生以下一或多個 CloudFront 事件時，您可以選擇執行 Lambda 函數：
+ 當 CloudFront 接收到來自檢視器的請求 (檢視器請求) 時
+ 在 CloudFront 轉寄請求至來源 (原始請求) 之前
+ 當 CloudFront 接收到來自來源的回應 (原始回應) 時
+ 在 CloudFront 傳回回應給檢視器 (檢視器回應) 之前

如需詳細資訊，請參閱[選擇要觸發函數的事件](lambda-how-to-choose-event.md)。

## Lambda 函數 ARN
<a name="DownloadDistValuesLambdaFunctionARN"></a>

此設定適用於 **Lambda 函數關聯**。

指定要為其新增觸發的 Lambda 函數的 Amazon 資源名稱 (ARN)。若要了解如何取得函數的 ARN，請參閱[使用 CloudFront 主控台新增觸發條件](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-edge-add-triggers.html#lambda-edge-add-triggers-cf-console)的步驟 1。

## 包含內文
<a name="include-body"></a>

此設定適用於 **Lambda 函數關聯**。

如需詳細資訊，請參閱[包含本文](lambda-generating-http-responses.md#lambda-include-body-access)。

# 分佈設定
<a name="DownloadDistValuesGeneral"></a>

以下值適用於整個分佈。

**Topics**
+ [價格分級](#DownloadDistValuesPriceClass)
+ [AWS WAF Web ACL](#DownloadDistValuesWAFWebACL)
+ [備用網域名稱 (CNAME)](#DownloadDistValuesCNAME)
+ [SSL 憑證](#DownloadDistValuesSSLCertificate)
+ [自訂 SSL 用戶端支援](#DownloadDistValuesClientsSupported)
+ [安全政策 (最低 SSL/TLS 版本)](#DownloadDistValues-security-policy)
+ [支援的 HTTP 版本](#DownloadDistValuesSupportedHTTPVersions)
+ [預設根物件](#DownloadDistValuesDefaultRootObject)
+ [標準記錄](#DownloadDistValuesLoggingOnOff)
+ [連線日誌](#DownloadDistValuesConnectionLogs)
+ [日誌字首](#DownloadDistValuesLogPrefix)
+ [Cookie 記錄](#DownloadDistValuesCookieLogging)
+ [啟用 IPv6 (檢視器請求)](#DownloadDistValuesEnableIPv6)
+ [交互身分驗證](#DownloadDistValuesMutualAuthentication)
+ [為自訂原始伺服器啟用 IPv6 (原始伺服器請求)](#DownloadDistValuesEnableIPv6-origin)
+ [Comment](#DownloadDistValuesComment)
+ [分佈狀態](#DownloadDistValuesEnabled)

## 價格分級
<a name="DownloadDistValuesPriceClass"></a>

選擇對應您希望支付之 CloudFront 服務最高價的價格分級。根據預設，CloudFront 會從所有 CloudFront 區域的節點提供您的物件。

如需價格分級，以及您的價格分級選擇如何影響分佈的 CloudFront 效能詳細資訊，請參閱 [CloudFront 定價](https://aws.amazon.com/cloudfront/pricing/)。

## AWS WAF Web ACL
<a name="DownloadDistValuesWAFWebACL"></a>

您可以使用 Web 應用程式防火牆 [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf) 來保護 CloudFront 分發，該防火牆可讓您保護 Web 應用程式和 API，以便在請求到達伺服器之前封鎖請求。在建立或編輯 CloudFront 分發時，您可以 [為分佈啟用 AWS WAF](WAF-one-click.md)。

或者，您可以稍後在 AWS WAF 主控台 https：//[https://console.aws.amazon.com/wafv2/](https://console.aws.amazon.com/wafv2/) 中為應用程式特有的其他威脅設定額外的安全保護。

如需 的詳細資訊 AWS WAF，請參閱 [AWS WAF 開發人員指南](https://docs.aws.amazon.com/waf/latest/developerguide/)。

## 備用網域名稱 (CNAME)
<a name="DownloadDistValuesCNAME"></a>

選用。指定一或多個您要用於物件 URL 的網域名稱，而非您建立分佈時 CloudFront 指派的網域名稱。您必須擁有網域名稱，或是擁有使用它的授權；您可以透過新增 SSL/TLS 憑證來進行驗證。

 例如，若您希望物件的 URL：

`/images/image.jpg`

看起來像此 URL：

`https://www.example.com/images/image.jpg`

而不是此 URL：

`https://d111111abcdef8.cloudfront.net/images/image.jpg`

請新增 `www.example.com` 的 CNAME。

**重要**  
若您將 `www.example.com` 的 CNAME 新增到您的分佈，您也必須執行以下作業：  
使用您的 DNS 服務建立 (或更新) CNAME 記錄，以將 `www.example.com` 的查詢路由傳送到 `d111111abcdef8.cloudfront.net`。
將來自可信任憑證授權機構 (CA)，涵蓋您新增至分佈網域名稱 (CNAME) 的憑證新增到 CloudFront，以驗證您使用該網域名稱的授權。
您必須擁有使用網域 DNS 服務提供者建立 CNAME 記錄的許可。通常，這表示您擁有網域，或者您正在為網域擁有者開發應用程式。

如需您可為分發新增之備用網域名稱數量的目前上限，或是有關請求更高配額 (先前稱為限制) 的詳細資訊，請參閱[分佈的一般配額](cloudfront-limits.md#limits-web-distributions)。

如需備用網域名稱的詳細資訊，請參閱[透過新增備用網域名稱 (CNAME) 使用自訂 URL](CNAMEs.md)。如需 CloudFront URL 的詳細資訊，請參閱[自訂 CloudFront 中檔案的 URL 格式](LinkFormat.md)。

## SSL 憑證
<a name="DownloadDistValuesSSLCertificate"></a>

若您指定要搭配分佈使用的備用網域名稱，請選擇 **Custom SSL Certificate (自訂 SSL 憑證)**，然後，為了驗證您的憑證使用其他網域名稱，請選擇涵蓋該名稱的憑證。如果您希望檢視器使用 HTTPS 存取您的物件，請選擇支援該功能的設定。
+ **預設 CloudFront 憑證 (\$1.cloudfront.net)** – 若您要在物件的 URL 中使用 CloudFront 網域名稱 (例如 `https://d111111abcdef8.cloudfront.net/image1.jpg`)，請選擇此選項。
+ **自訂 SSL 憑證** – 若您希望在物件的 URL 中使用您自己的網域名稱，做為備用網域名稱 (例如 `https://example.com/image1.jpg`)，請選擇此選項。然後要使用的憑證，其中涵蓋了備用網域名稱。憑證的清單可包括以下任何項目：
  + 提供的憑證 AWS Certificate Manager
  + 您從第三方憑證授權機構購買並上傳到 ACM 的憑證
  + 您從第三方憑證授權機構購買，並上傳到 IAM 憑證存放區的憑證

  若您選擇此設定，我們建議您僅使用您物件 URL 中的備用網域名稱 (https://example.com/logo.jpg)。若您使用 CloudFront 分佈網域名稱 (https://d111111abcdef8.cloudfront.net/logo.jpg)，而用戶端因使用較舊的檢視器而不支援 SNI，檢視器回應的方式會取決於您為**支援用戶端**所選取的值：
  + **所有用戶端**：檢視器會因為 CloudFront 網域名稱與您 SSL/TLS 憑證中的網域名稱不同而顯示警告。
  + **僅限支援伺服器名稱指示 (SNI) 的用戶端**：CloudFront 失去與檢視器的連線而不傳回物件。

## 自訂 SSL 用戶端支援
<a name="DownloadDistValuesClientsSupported"></a>

僅當您在 **SSL 憑證**選擇**自訂 SSL 憑證 (example.com)** 時才適用。如果您為分佈指定了一或多個備用網域名稱和自訂 SSL 憑證，請選擇您要 CloudFront 提供 HTTPS 請求的方式：
+ **支援伺服器名稱指示 (SNI) 的用戶端 - (建議)** — 使用此設定，幾乎所有現代網頁瀏覽器和用戶端都可以連線到分佈，因為它們都支援 SNI。不過，有些檢視器可能會使用較舊的網頁瀏覽器或不支援 SNI 的用戶端，這表示他們無法連線至分佈。

  若要使用 CloudFront API 套用此設定，請在 `SSLSupportMethod` 欄位中指定 `sni-only`。在 CloudFormation中，欄位會命名為 `SslSupportMethod` (請注意大小寫)。
+ **舊式用戶端支援** — 使用此設定，不支援 SNI 的舊式網頁瀏覽器和用戶端就可以連線到分佈。不過，此設定每月會產生額外費用。如需確切的價格，請移至 [Amazon CloudFront 定價](https://aws.amazon.com/cloudfront/pricing/)頁面，然後搜尋**專用 IP 自訂 SSL** 的頁面。

  若要使用 CloudFront API 套用此設定，請在 `SSLSupportMethod` 欄位中指定 `vip`。在 中 CloudFormation， 欄位會命名為 `SslSupportMethod`（請注意不同的大寫）。

如需詳細資訊，請參閱[選擇 CloudFront 提供 HTTPS 請求的方式](cnames-https-dedicated-ip-or-sni.md)。

## 安全政策 (最低 SSL/TLS 版本)
<a name="DownloadDistValues-security-policy"></a>

指定您希望 CloudFront 用於與檢視器 (用戶端) 之 HTTPS 連線的安全政策。安全政策判斷兩個設定：
+ CloudFront 用來與檢視器通訊的最低 SSL/TLS 通訊協定。
+ 加密，供 CloudFront 用來加密傳回給檢視器的內容。

如需安全原則 (包括每個原則所包含的通訊協定和密碼) 的詳細資訊，請參閱[檢視器和 CloudFront 之間支援的通訊協定和密碼](secure-connections-supported-viewer-protocols-ciphers.md)。

可用的安全政策取決於您為 **SSL Certificate (SSL 憑證)** 和 **Custom SSL Client Support (自訂 SSL 用戶端支援)** (在 CloudFront API 中稱為 `CloudFrontDefaultCertificate` 和 `SSLSupportMethod`) 指定的值：
+ 當 **SSL 憑證**為**預設 CloudFront 憑證 (\$1. cloudfront.net)** 時 (在 API 中則是 `CloudFrontDefaultCertificate` 為 `true`)，CloudFront 會自動將安全政策設定為 TLSv1。
+ 當 **SSL 憑證**為**自訂 SSL 憑證 (example.com)**，*且***自訂 SSL 用戶端支援**為**支援伺服器名稱指示 (SNI) 的用戶端 - (建議使用)** 時 (在 API 中則是 `CloudFrontDefaultCertificate` 為 `false` *且* `SSLSupportMethod` 為 `sni-only`)，您可以從下列安全政策中進行選擇：
  + TLSv1.3\$12025
  + TLSv1.2\$12025
  + TLSv1.2\$12021
  + TLSv1.2\$12019
  + TLSv1.2\$12018
  + TLSv1.1\$12016
  + TLSv1\$12016
  + TLSv1
+ 當 **SSL 憑證**為**自訂 SSL 憑證 (example.com)**，*且***自訂 SSL 用戶端支援**為**舊式用戶端支援**時 (在 API 中則是 `CloudFrontDefaultCertificate` 為 `false` *且* `SSLSupportMethod` 為 `vip`)，您可以從下列安全政策中進行選擇：
  + TLSv1
  + SSLv3

  在此組態中，無法在 CloudFront 主控台或 API 中使用 TLSv1.3\$12025、TLSv1.2\$12025、TLSv1.2\$12021、TLSv1.2\$12019、TLSv1.2\$12018、TLSv1.1\$12016 和 TLSv1\$12016 安全政策。如果您想要使用這些安全政策之一，您可以選擇下列選項：
  + 評估您的分佈是否需要具有專用 IP 位址的舊式用戶端支援。如果您的檢視器支援[伺服器名稱指示 (SNI)](https://en.wikipedia.org/wiki/Server_Name_Indication)，我們建議您將分佈的**自訂 SSL 用戶端支援**設定更新為**支援伺服器名稱指示 (SNI) 的用戶端** (在 API 中則是將 `SSLSupportMethod` 設為 `sni-only`)。這可讓您使用任何可用的 TLS 安全政策，也可以降低 CloudFront 費用。
  + 如果您必須保留具有專用 IP 位址的舊式用戶端支援，則可以在 [AWS 支援中心](https://console.aws.amazon.com/support/home)建立案例，請求其他 TLS 安全原則之一 (TLSv1.3\$12025、TLSv1.2\$12025、TLSv1.2\$12021、TLSv1.2\$12019、TLSv1.2\$12018、TLSv1.1\$12016 或 TLSv1\$12016)。
**注意**  
在您聯絡 AWS Support 請求此變更之前，請考慮下列事項：  
當您將其中一個安全政策 (TLSv1.3\$12025,TLSv1.2\$12025,TLSv1.2\$12021,TLSv1.2\$12019,TLSv1.2\$12018,TLSv1.1\$12016,或 TLSv1\$12016) 新增至舊版用戶端支援分發時，安全政策會套用至您 AWS 帳戶中*所有*舊版用戶端支援分發*的所有*非 SNI 檢視器請求。不過，當檢視器將 SNI 請求傳送至具有舊式用戶端支援的分佈時，會套用該分佈的安全政策。若要確保將所需的安全政策套用至傳送至 AWS 帳戶中*所有* Legacy Client Support 分佈*的所有*瀏覽者請求，請將所需的安全政策個別新增至每個分佈。
根據定義，新的安全政策不支援舊版的相同密碼和通訊協定。例如，如果您選擇將分佈的安全政策從 TLSv1 升級到 TLSv1.1\$12016，則該分佈將不再支援 DES-CBC3-SHA 加密。如需每個安全政策所支援之密碼和通訊協定的詳細資訊，請參閱[檢視器和 CloudFront 之間支援的通訊協定和密碼](secure-connections-supported-viewer-protocols-ciphers.md)。

## 支援的 HTTP 版本
<a name="DownloadDistValuesSupportedHTTPVersions"></a>

選擇您要在檢視器與 CloudFront 通訊時，您的分佈支援的 HTTP 版本。

針對使用 HTTP/2 的檢視器和 CloudFront，檢視器必須支援 TLSv1.2 或更新版本，和伺服器名稱指示 (SNI)。

針對使用 HTTP/3 的檢視器和 CloudFront，檢視器必須支援 TLSv1.3 和伺服器名稱指示 (SNI)。CloudFront 支援 HTTP/3 連線遷移功能，可讓檢視器在不遺失連線的情況下切換網路。如需連線遷移的詳細資訊，請參閱在 RFC 9000 的[連線遷移](https://www.rfc-editor.org/rfc/rfc9000.html#name-connection-migration)。

**注意**  
如需支援 TLSv1.3 密碼的詳細資訊，請參閱 [檢視器和 CloudFront 之間支援的通訊協定和密碼](secure-connections-supported-viewer-protocols-ciphers.md)。

**注意**  
如果您使用 Amazon Route 53，則可以使用 HTTPS 記錄，在用戶端支援通訊協定時允許通訊協定交涉做為 DNS 查詢的一部分。如需詳細資訊，請參閱[Create alias resource record set](CreatingCNAME.md#alternate-domain-https)。

## 預設根物件
<a name="DownloadDistValuesDefaultRootObject"></a>

選用。當檢視器請求分佈的根 URL 時 (`index.html`)，您希望 CloudFront 向原始伺服器請求的物件 (例如 `https://www.example.com/`)，而不是分佈中的物件 (`https://www.example.com/product-description.html`)。指定預設根物件可避免暴露分佈的內容。

該名稱的長度上限為 255 個字元。該名稱可以包含以下任何字元：
+ A-Z、a-z
+ 0-9
+ \$1 - . \$1 \$1 / \$1 " '
+ & 通過並以 `&amp;` 傳回

當您指定預設根物件時，只需輸入物件名稱，例如，`index.html`。不要在物件名稱前新增 `/`。

如需詳細資訊，請參閱[指定預設根物件](DefaultRootObject.md)。

## 標準記錄
<a name="DownloadDistValuesLoggingOnOff"></a>

指定是否希望 CloudFront 記錄有關物件的每個請求的資訊並儲存日誌檔案。您可以隨時啟用或停用記錄。如果您啟用記錄功能，將不會收取額外費用，但您可以累計費用來存放及存取檔案。您隨時都可刪除日誌。

CloudFront 支援下列標準記錄選項：
+ [標準記錄 (v2)](standard-logging.md) – 您可以將日誌傳送至交付目的地，包括 Amazon CloudWatch Logs、Amazon Data Firehose 和 Amazon Simple Storage Service (Amazon S3)。
+ [標準記錄 (舊版)](AccessLogs.md) – 您只能將日誌傳送至 Amazon S3 儲存貯體。

## 連線日誌
<a name="DownloadDistValuesConnectionLogs"></a>

當您開啟分佈的[交互身分驗證](#DownloadDistValuesMutualAuthentication)時，CloudFront 會提供連線日誌，以擷取傳送至分佈之請求的屬性。連線日誌包含的資訊包括用戶端 IP 地址和連接埠、用戶端憑證資訊、連線結果和正在使用的 TLS 密碼。然後，這些連線日誌可用於檢閱請求模式和其他趨勢。

若要進一步了解連線日誌，請參閱 [使用連線日誌的可觀測性](connection-logs.md)。

## 日誌字首
<a name="DownloadDistValuesLogPrefix"></a>

(選擇性) 若啟用標準記錄 (舊版)，請指定您希望 CloudFront 加在此分佈之存取日誌檔名稱之前的字串 (如果需要)，例如：`exampleprefix/`。結尾的斜線) (/) 是可選的，但建議簡化瀏覽日誌檔案。如需詳細資訊，請參閱[設定標準記錄 (舊式)](standard-logging-legacy-s3.md)。

## Cookie 記錄
<a name="DownloadDistValuesCookieLogging"></a>

如果您希望 CloudFront 在存取日誌中包含 Cookie，請選擇**開啟**。如果您選擇將 Cookie 包含在日誌中，那麼不管您如何為此分佈配置快取行為，CloudFront 都會記錄所有 Cookie：轉送所有 Cookie，不轉送 Cookie 或將指定的 Cookie 清單轉送至原始伺服器原始伺服器。

Amazon S3 不處理 Cookie，因此除非您的分佈還包含 Amazon EC2 或其他自訂原始伺服器原始伺服器，我們建議您選擇**關閉**做為 **Cookie 記錄**的值。

如需 Cookie 的詳細資訊，請參閱[根據 Cookie 快取內容](Cookies.md)。

## 啟用 IPv6 (檢視器請求)
<a name="DownloadDistValuesEnableIPv6"></a>

如果您希望 CloudFront 回應來自 IPv4 和 IPv6 IP 位址的檢視器請求，請選取**啟用 IPv6**。如需詳細資訊，請參閱[為 CloudFront 分佈啟用 IPv6](cloudfront-enable-ipv6.md)。

## 交互身分驗證
<a name="DownloadDistValuesMutualAuthentication"></a>

選用。您可以選擇為 CloudFront 分佈開啟交互身分驗證。如需詳細資訊，請參閱[使用 CloudFront 進行相互 TLS 身分驗證 （檢視器 mTLS)原始伺服器與 CloudFront 的交互 TLS](mtls-authentication.md)。

## 為自訂原始伺服器啟用 IPv6 (原始伺服器請求)
<a name="DownloadDistValuesEnableIPv6-origin"></a>

當您使用自訂原始伺服器 (不含 Amazon S3 和 VPC 原始伺服器) 時，您可以自訂分佈的原始伺服器設定，以選擇 CloudFront 如何使用 IPv4 或 IPv6 位址連接到原始伺服器。如需詳細資訊，請參閱[為 CloudFront 分佈啟用 IPv6](cloudfront-enable-ipv6.md)。

## Comment
<a name="DownloadDistValuesComment"></a>

選用。當您建立分佈，您可以包含高達 128 個字元的評論。您隨時都可以更新評論。

## 分佈狀態
<a name="DownloadDistValuesEnabled"></a>

表示是否要在部署後啟用或停用該分佈：
+ *啟用*表示一旦分佈完全部署後，您就可以部署使用分佈的網域名稱的連結，使用者可以擷取內容。當分佈被啟用時，CloudFront 接受並處理使用與該分佈關聯的網域名稱的內容的任何最終使用者請求。

  當建立、修改或刪除 CloudFront 分佈時，仍需要時間將您的變更傳播到 CloudFront 資料庫。對分佈資訊的立即請求可能不會顯示其變更。傳輸通常可在幾分鐘內完成，但此時可能會增加高系統負載或網路分區。
+ *停用*表示即使分佈可能已部署並可供使用，但使用者無法使用它。每當分佈停用時，CloudFront 不接受使用與該分佈關聯的網域名稱的任何最終使用者請求。在將分佈從停用狀態切換到啟用狀態之前 (透過更新分佈的組態)，沒有人可以使用它。

您可以根據需要隨時在停用和啟用之間切換分佈。依照更新分佈組態處理。如需詳細資訊，請參閱[更新分佈](HowToUpdateDistribution.md)。

# 自訂錯誤頁面和錯誤快取
<a name="DownloadDistValuesErrorPages"></a>

當您的 Amazon S3 或自訂原始伺服器原始伺服器向 CloudFront 傳回 HTTP 4xx 和 5xx 狀態程式碼時，您可以讓 CloudFront 將物件傳回到檢視器 (例如 HTML 檔案)。關於來自原始伺服器原始伺服器或自訂錯誤頁面的錯誤回應，您還可以指定該錯誤回應在 CloudFront 邊緣快取中的時間。如需詳細資訊，請參閱[針對特定的 HTTP 狀態碼建立自訂錯誤頁面](creating-custom-error-pages.md)。

**注意**  
在建立分佈精靈中不包含以下值，因此只在您更新分佈時才能設定自訂錯誤頁面。

**Topics**
+ [HTTP 錯誤代碼](#DownloadDistValuesErrorCode)
+ [回應頁面路徑](#DownloadDistValuesResponsePagePath)
+ [HTTP 回應代碼](#DownloadDistValuesResponseCode)
+ [錯誤快取最短 TTL (秒)](#DownloadDistValuesErrorCachingMinTTL)

## HTTP 錯誤代碼
<a name="DownloadDistValuesErrorCode"></a>

您希望 CloudFront 傳回自訂錯誤頁面的 HTTP 狀態碼。您可以將 CloudFront 配置為針對 CloudFront 快取的 HTTP 狀態碼 (包括無、一些或全部) 傳回自訂錯誤頁面。

## 回應頁面路徑
<a name="DownloadDistValuesResponsePagePath"></a>

當您的原始伺服器傳回您為**錯誤代碼**指定的 HTTP 狀態碼 (例如 403) 時，您希望 CloudFront 返回到檢視器的自訂錯誤頁面的路徑 (例如 `/4xx-errors/403-forbidden.html`)。如果您要在不同位置存放物件和自訂錯誤頁面，則您的分佈必須包含下列為屬實的快取行為：
+ **Path Pattern (路徑模式)** 的值與自訂錯誤訊息的路徑相符。例如，假設您已在 Amazon S3 儲存貯體名為 `/4xx-errors` 的目錄中儲存了 4xx 錯誤的自訂錯誤頁面。您的分佈必須包含快取行為，其路徑模式會將自訂錯誤頁面的請求路由至該位置，例如 **/4xx-errors/\$1 (/4xx-errors/\$1)**。
+ **Origin (原始伺服器)** 的數值將 **Origin ID (原始伺服器 ID)** 的數值指定給包含自訂錯誤頁面的原始伺服器。

## HTTP 回應代碼
<a name="DownloadDistValuesResponseCode"></a>

您希望 CloudFront 傳回給檢視器的 HTTP 狀態碼以及自訂錯誤頁面。

## 錯誤快取最短 TTL (秒)
<a name="DownloadDistValuesErrorCachingMinTTL"></a>

您希望 CloudFront 從原始伺服器快取錯誤回應的最短時間。

# 地理限制
<a name="DownloadDistValuesEnableGeoRestriction"></a>

若您要防止選取的國家/地區的使用者存取您的內容，則可以使用**允許清單**或**封鎖清單**配置您的 CloudFront 分佈。設定地理限制無需額外收費。如需詳細資訊，請參閱[限制您內容的地理分佈](georestrictions.md)。

# 測試分佈
<a name="distribution-web-testing"></a>

建立分佈後，CloudFront 知道原始伺服器的位置，並且知道與分佈關聯的網域名稱。若要測試您的分佈，請執行下列動作：

1. 等待您的分佈部署完成。
   + 在主控台中檢視您的分佈**詳細資訊**。您的分佈完成部署時，**上次修改**欄位會從**正在部署**變更為日期和時間。

1. 使用下列程序，透過 CloudFront 網域名稱建立物件的連結。

1. 測試連結。CloudFront 會將物件提供給您的網頁或應用程式。

## 建立物件的連結
<a name="distribution-create-object-links"></a>

使用下列程序為 CloudFront Web 分佈中的物件建立測試連結。<a name="distribution-web-testing-procedure"></a>

**在 Web 分佈中建立連結到物件**

1. 將以下 HTML 程式碼複製到新的檔案中，以您的分佈的網域名稱取代 *domain-name*，然後以您的物件的名稱取代 *object-name*。

   ```
   <html>
   <head>
   	<title>My CloudFront Test</title>
   </head>
   <body>
   	<p>My text content goes here.</p>
   	<p><img src="https://domain-name/object-name" alt="my test image"></p>
   </body>
   </html>
   ```

   例如，如果您的網域名稱是 `d111111abcdef8.cloudfront.net`，物件是 `image.jpg`，則連結的 URL 將為：

   `https://d111111abcdef8.cloudfront.net/image.jpg`.

   如果物件位於原始伺服器的資料夾中，則該資料夾必須包含在 URL 中。例如，如果 image.jpg 位於原始伺服器上的影像資料夾中，則 URL 將為：

   `https://d111111abcdef8.cloudfront.net/images/image.jpg`

1. 將 HTML 程式碼儲存在副檔名為 .html 的檔案中。

1. 在瀏覽器中開啟您的網頁，以確保您可以查看物件。

瀏覽器傳回具有從 CloudFront 判斷適用來提供物件的節點所提供的內嵌圖片檔案的網頁。

# 更新分佈
<a name="HowToUpdateDistribution"></a>

在 CloudFront 主控台中，您可看到與 AWS 帳戶相關的 CloudFront 分佈、檢視分佈設定和更新大多數的設定。請注意，在分佈傳播到 AWS 節點之前，您所做的更新不會生效。

## 在主控台中更新分佈
<a name="update-distribution-console"></a>

下列程序說明如何在主控台中更新 CloudFront 分佈。

------
#### [ Multi-tenant ]<a name="HowToUpdateDistributionProcedure"></a>

**更新多租用戶分佈**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 搜尋並選擇多租用戶分佈的 ID。

1. 選擇您要更新之設定的索引標籤。

1. 進行更新，接著若要儲存變更，請選擇**儲存變更**。如需詳細了解您可以更新的設定，請參閱 [預先設定的分佈設定參考](template-preconfigured-origin-settings.md)。

您也可以使用 CloudFront API 更新分佈：
+ 若要更新分佈，請參閱 *Amazon CloudFront API 參考*中的 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)。

**重要**  
當您更新您的分佈時，請注意有多個額外的必要欄位，這些欄位在初次建立分佈時是非必要的。為協助確保在您使用 CloudFront API 更新分佈時已包含所有必要欄位，請依照 *Amazon CloudFront API 參考*中的 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) 所述步驟執行。

若要變更分佈租用戶的多租用戶分佈，請更新分佈租用戶。您也可以更新分佈租用戶，以更新其網域、憑證、自訂或參數值。如需更新分佈租用戶憑證的詳細資訊，請參閱 [新增網域和憑證 (分佈租用戶)](managed-cloudfront-certificates.md#vanity-domain-tls-tenant)。

**更新分佈租用戶**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在 **SaaS** 下，選擇**分佈租用戶**。

1. 搜尋分佈租用戶。使用搜尋列中的下拉式功能表，並且依網域、名稱、分佈 ID、憑證 ID、連線群組 ID 或 Web ACL ID 進行篩選。

1. 選擇分佈租用戶的名稱。

1. 若要更新一般**詳細資訊**，請選擇**編輯**、進行更新，然後選擇**更新分佈租用戶**。

1. 選擇相應的索引標籤以更新其他設定，完成更新後儲存變更。如需您可自訂之分布租用戶設定的詳細資訊，請參閱 [分佈租用戶自訂](tenant-customization.md)。

------
#### [ Standard ]

**更新標準分佈**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 選取分佈的 ID。此清單包括與您用於登入 CloudFront 主控台之 AWS 帳戶相關聯的所有分發。

1. 若要更新一般設定，請選擇 **Edit (編輯)**。否則，請選擇您要更新之設定的索引標籤。

1. 進行更新，然後選擇**儲存變更**。如需欄位的詳細資訊，請參閱下列主題：
   + **一般設定：**[分佈設定](DownloadDistValuesGeneral.md)
   + **原始伺服器設定：**[原始設定](DownloadDistValuesOrigin.md)
   + **快取行為設定：**[快取行為設定](DownloadDistValuesCacheBehavior.md)

1. 如果您想要在分佈中刪除原始伺服器，請執行下列動作：

   1. 選擇 **Behaviors (行為)**，然後確認您已將任何與原始伺服器相關的預設快取行為移動至另一個原始伺服器。

   1. 選擇 **Origins (原始伺服器)**，然後選取一個原始伺服器。

   1. 選擇 **Delete (刪除)**。

您也可以使用 CloudFront API 更新分佈：
+ 若要更新分佈，請參閱 *Amazon CloudFront API 參考*中的 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)。

**重要**  
當您更新您的分佈時，請注意有多個額外的必要欄位，這些欄位在建立分佈時是非必要的。為協助確保在您使用 CloudFront API 更新分佈時已包含所有必要欄位，請依照 *Amazon CloudFront API 參考*中的 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) 所述步驟執行。

------

當您儲存變更至分佈組態時，CloudFront 開始將變更傳播到所有節點。連續的組態變更依照其各自的順序傳播。直到更新您節點中的組態，CloudFront 才根據之前的組態繼續從該位置提供內容。更新您節點中的組態後，CloudFront 便立即根據新組態從該位置提供內容。

您的變更不會同時傳播到每個邊緣節點。儘管 CloudFront 會傳播您的變更，我們仍無法根據先前的組態或新組態來判斷指定邊緣節點是否提供內容。

**注意**  
在極少數情況下，當主機或網路連結中斷時，某些分佈租用戶流量可能會使用較舊的組態短暫提供，直到您的變更通過網路為止。

若要查看您的變更何時傳播，請在主控台中檢視您的分佈**詳細資訊**。**上次修改**欄位會從**部署中**變更為部署完成時的日期和時間。

# 標記分佈
<a name="tagging"></a>

標籤是您可以用來識別和組織 AWS 資源的單字或片語。您可以為每個資源新增多個標籤，每個標籤都包含您定義的索引鍵和值。例如，金鑰可能是「網域」，而值可能是「example.com」。您可以根據新增的標籤來搜尋和篩選資源。

您可以搭配 CloudFront 使用標籤，例如下列範例：
+ 在 CloudFront 分佈上強制使用以標籤為基礎的許可。如需詳細資訊，請參閱[ABAC 搭配 CloudFront](security_iam_service-with-iam.md#security_iam_service-with-iam-tags)。
+ 追蹤不同類別中的帳單資訊。當您將標籤套用至 CloudFront 分佈或其他 AWS 資源 （例如 Amazon EC2 執行個體或 Amazon S3 儲存貯體） 並啟用標籤時， 會以逗號分隔值 (CSV 檔案） 的形式 AWS 產生成本分配報告，其中包含作用中標籤彙總的用量和成本。

  您可以套用代表業務類別 (例如成本中心、應用程式名稱或擁有者) 的標籤，來整理多個服務中的成本。如需有關使用成本分配標籤的詳細資訊，請參閱 *AWS Billing 使用者指南*中的[使用成本分配標籤](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)。

**備註**  
您可以標記分佈，但無法標記原始存取身分或失效。
[Tag Editor](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html) 和 [Resource groups](https://docs.aws.amazon.com/ARG/latest/userguide/resource-groups.html) 目前不支援 CloudFront。
如需了解目前可新增到分發的標籤數量上限的詳細資訊，請參閱[一般配額](cloudfront-limits.md#limits-general)。

**Contents**
+ [標籤限制](#tagging-restrictions)
+ [新增、編輯和刪除分佈的標籤](#tagging-add-edit-delete)
+ [程式設計標記](#tagging-related-information)

## 標籤限制
<a name="tagging-restrictions"></a>

以下基本限制適用於 標籤：
+ 如需每個分佈的標籤數量上限，請參閱 [一般配額](cloudfront-limits.md#limits-general)。
+ 金鑰長度上限 - 128 個 Unicode 字元
+ 數值長度上限 - 256 個 Unicode 字元
+ 金鑰與值的有效值 – a-z、A-Z、0-9、空格和下列字元：\$1 . : / = \$1 - 及 @
+ 標記金鑰與值皆區分大小寫
+ 請不要使用 `aws:` 做為索引鍵的字首。此字首已保留供 AWS 使用。

## 新增、編輯和刪除分佈的標籤
<a name="tagging-add-edit-delete"></a>

您可以使用 CloudFront 主控台來管理分佈的標籤。<a name="tagging-add-edit-delete-procedure"></a>

**若要為分佈新增標籤、編輯或刪除標籤**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 選擇您希望更新的分佈 ID。

1. 選擇 **Tags** (標籤) 索引標籤。

1. 選擇**管理標籤**。

1. 在 **Manage tags** (管理標籤) 頁面上，可以執行下列操作：
   + 若要新增標籤，請鍵入一個金鑰，並輸入標籤的值 (選擇性)。選擇**新增新標籤**以新增更多標籤。
   + 若要編輯標籤，請變更標籤的金鑰或其值，或兩者均變更。可以刪除標籤的值，但仍須金鑰。
   + 若要刪除標籤，請選擇 **Remove** (移除)。

1. 選擇**儲存變更**。

## 程式設計標記
<a name="tagging-related-information"></a>

您也可以使用 CloudFront API、 AWS Command Line Interface (AWS CLI)、 AWS SDKs和 AWS Tools for Windows PowerShell 來套用標籤。如需詳細資訊，請參閱下列主題：
+ CloudFront API 操作：
  + [ListTagsForResource](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListTagsForResource.html) 
  + [TagResource](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_TagResource.html) 
  + [UntagResource](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UntagResource.html) 
+ AWS CLI – 請參閱《 *AWS CLI 命令參考*》中的 [cloudfront](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudfront/index.html) 
+ AWS SDKs – 請參閱 文件頁面上適用的開發套件[AWS 文件](https://docs.aws.amazon.com/index.html) 
+ Tools for Windows PowerShell – 請參閱 [AWS Tools for PowerShell Cmdlet 參考](https://docs.aws.amazon.com/powershell/latest/reference/)中的 [Amazon CloudFront](https://docs.aws.amazon.com/powershell/latest/reference/items/CloudFront_cmdlets.html)

# 刪除 分發
<a name="HowToDeleteDistribution"></a>

下列程序會使用 CloudFront 主控台刪除分佈。如需使用 CloudFront API 刪除的資訊，請參閱《Amazon CloudFront API 參考》**中的 [DeleteDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DeleteDistribution.html)。

如果您需要刪除連接到 S3 儲存貯體的 OAC 分佈，請參閱 [刪除含附加至 S3 儲存貯體之 OAC 的分佈](private-content-restricting-access-to-s3.md#delete-oac-distribution-s3) 以取得重要詳細資訊。

**警告**  
您必須先停用分佈，然後才能刪除它，而這需要更新分佈的許可。分佈一旦刪除，即無法復原。
若您停用具有與其建立關聯備用網域名稱的分佈，CloudFront 會停止接受該網域名稱 (例如 www.example.com) 的流量，即使另一個分佈具有包含萬用字元 (\$1) 的其他網域名稱，符合相同的網域 (例如 \$1.example.com) 也一樣。
您無法刪除訂閱 [CloudFront 固定費率定價計劃的](flat-rate-pricing-plan.md)分佈。您會收到錯誤，指出「您無法在訂閱定價計劃時刪除此分佈。」 您必須先取消定價計劃，然後在目前的計費週期之後刪除分佈。

------
#### [ Multi-tenant ]

您必須先刪除所有關聯的分佈租用戶，才能刪除多租用戶分佈。<a name="HowToDeleteDistributionProcedure"></a>

**刪除多租用戶分佈**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在 CloudFront 主控台的右側窗格中，選取您要刪除的多租用戶分佈名稱。

1. 針對**租用戶**，選取並刪除所有相關聯的分佈租用戶。

1. 選擇 **停用**以停用分佈，然後選擇**停用分佈**以確認。

1. 等到新的時間戳記出現在**上次修改**的資料欄下方。
   + CloudFront 可能需要幾分鐘的時間將您的變更傳播到所有邊緣節點。

1. 選擇**刪除**、**刪除分佈**。

**刪除分佈租用戶**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在 **SaaS** 下，選擇**分佈租用戶**。

1. 搜尋分佈租用戶。使用搜尋列中的下拉式功能表，並且依網域、名稱、分佈 ID、憑證 ID、連線群組 ID 或 Web ACL ID 進行篩選。

1. 選取要刪除的分佈租用戶。

1. 選擇**刪除租用戶**、**刪除分佈租用戶**。

------
#### [ Standard ]

**刪除標準分佈**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在適當的 CloudFront 主控台窗格中，請找到您要刪除的分佈。
   + 如果**狀態**欄顯示分佈已**停用**，請跳至步驟 6。
   + 如果**狀態**顯示**已啟用**，但分佈仍然在**上次修改**欄中顯示**部署中**，請等待部署完成，然後再繼續步驟 3。

1. 在 CloudFront 主控台的右側窗格中，選取您要刪除的分佈核取方塊。

1. 選擇 **Disable (停用)** 來停用分佈，然後選擇 **Yes, Disable (是，停用)** 以進行確認。然後，選擇 **Close (關閉)**。
   + **狀態**欄的值會立即變更為**已停用**。

1. 等到新的時間戳記出現在**上次修改**的資料欄下方。
   + CloudFront 可能需要幾分鐘的時間將您的變更傳播到所有邊緣節點。

1. 選擇您要刪除的分佈的核取方塊。

1. 選擇**刪除**，**刪除**。
   + 如果無法使用**刪除**選項，表示 CloudFront 仍在將您的變更傳播到邊緣節點。等到新的時間戳記出現在**上次修改**的資料欄下，然後重複步驟 6-7。

------

# 將各種原始伺服器與 CloudFront 分佈搭配使用
<a name="DownloadDistS3AndCustomOrigins"></a>

建立分佈後，您必須指定 CloudFront 為檔案傳送請求的*原始伺服器*。CloudFront 可以與多種不同類型的原始伺服器搭配使用，例如，您可以使用 Amazon S3 儲存貯體、MediaStore 容器、MediaPackage 頻道、Application Load Balancer 或 AWS Lambda 函數 URL。當您建立 CloudFront 分佈時，CloudFront 會根據您的內容原始伺服器類型設定大部分的分佈設定。如需詳細資訊，請參閱[預先設定的分佈設定參考](template-preconfigured-origin-settings.md)。

如果您在私有子網路中有 Application Load Balancer、Network Load Balancer 或 EC2 執行個體，則可以將其用作 VPC 原始伺服器。使用 VPC 原始伺服器時，您的應用程式只能在具有 CloudFront 分佈的私有子網路中存取，以防止您的應用程式在公有網際網路上存取。如需詳細資訊，請參閱[使用 VPC 原始伺服器限制存取](private-content-vpc-origins.md)。

**注意**  
您可以使用邊緣函數，為每個請求動態選取適當的原始伺服器。透過使用 CloudFront Functions 或 Lambda@Edge，您可以根據檢視器的地理位置、請求標頭或查詢字串參數等因素，將請求路由到不同的原始伺服器。如需詳細資訊，請參閱[使用函數在邊緣自訂](edge-functions.md)。

**Topics**
+ [使用 Amazon S3 儲存貯體](#using-s3-as-origin)
+ [使用 MediaStore 容器或 MediaPackage 頻道](#concept_AWS_Media)
+ [使用 Application Load Balancer](#concept_elb_origin)
+ [使用 Network Load Balancer](#concept_nlb_origin)
+ [使用 Lambda 函數 URL](#concept_lambda_function_url)
+ [使用 Amazon EC2 (或其他自訂原始伺服器)](#concept_CustomOrigin)
+ [使用 CloudFront 原始伺服器群組](#concept_origin_groups)
+ [使用 Amazon API Gateway](#use-api-gate-way-origin)

## 使用 Amazon S3 儲存貯體
<a name="using-s3-as-origin"></a>

下列主題介紹了多種方法，可協助您將 Amazon S3 儲存貯體用做 CloudFront 分佈的原始伺服器。

**Topics**
+ [使用標準 Amazon S3 儲存貯體](#concept_S3Origin)
+ [使用 Amazon S3 Object Lambda](#using-S3-Object-Lambda)
+ [使用 Amazon S3 Access Point](#using-S3-Access-Point)
+ [使用設定為網站端點的 Amazon S3 儲存貯體](#concept_S3Origin_website)
+ [將 CloudFront 新增至現有 Amazon S3 儲存貯體](#adding-cloudfront-to-s3)
+ [將 Amazon S3 儲存貯體移至不同的 AWS 區域](#move-s3-bucket-different-region)
+ [使用 Amazon S3 多區域存取點](#using-s3-mrap-as-origin)

### 使用標準 Amazon S3 儲存貯體
<a name="concept_S3Origin"></a>

使用 Amazon S3 做為分佈的原始伺服器時，可以將想讓 CloudFront 傳送的物件放置在 Amazon S3 儲存貯體中。您可以使用 Amazon S3 支援的任何方法將物件放入 Amazon S3，例如 Amazon S3 主控台或 API，也可使用第三方工具。如同使用其他標準 Amazon S3 儲存貯體一樣，您可以在儲存貯體中建立階層結構以存放物件。

使用現有 Amazon S3 儲存貯體做為您的 CloudFront 原始伺服器，不會以任何方式變更儲存貯體；您可以繼續像平常一樣按標準 Amazon S3 價格使用它來存放和存取 Amazon S3 物件。您需要定期支付 Amazon S3 費用才能將物件存放在儲存貯體中。如需 CloudFront 服務使用費的詳細資訊，請參閱 [Amazon CloudFront 定價](https://aws.amazon.com/cloudfront/pricing/)。如需進一步瞭解如何將 CloudFront 與現有 S3 儲存貯體搭配使用，請參閱[將 CloudFront 新增至現有 Amazon S3 儲存貯體](#adding-cloudfront-to-s3)。

**重要**  
為了讓您的儲存貯體使用 CloudFront，該名稱必須符合 DNS 命名請求。如需詳細資訊，請參閱 *Amazon Simple Storage Service 使用者指南*中的[儲存貯體命名規則](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)。

將 Amazon S3 儲存貯體指定為 CloudFront 的原始伺服器時，建議使用以下格式：

`bucket-name.s3.region.amazonaws.com`

當您以此格式指定儲存貯體名稱，可以使用以下 CloudFront 功能：
+ 將 CloudFront 設定為使用 SSL/TLS 與 Amazon S3 儲存貯體進行通訊。如需詳細資訊，請參閱[透過 CloudFront 使用 HTTPS](using-https.md)。
+ 使用原始存取控制來請求檢視器使用 CloudFront URL 存取您的內容，而不是使用 Amazon S3 URL。如需詳細資訊，請參閱[限制對 Amazon S3 原始伺服器的存取](private-content-restricting-access-to-s3.md)。
+ 透過向 CloudFront 提交 `POST` 和 `PUT` 請求，更新您的儲存貯體的內容。如需詳細資訊，請參閱 [CloudFront 如何處理和轉送請求至您的 Amazon S3 原始伺服器](RequestAndResponseBehaviorS3Origin.md#RequestBehaviorS3Origin) 主題中的 [HTTP 方法](RequestAndResponseBehaviorS3Origin.md#RequestS3HTTPMethods)。

請勿使用以下格式指定儲存貯體：
+ Amazon S3 路徑樣式：`s3.amazonaws.com/bucket-name`
+ Amazon S3 CNAME

**注意**  
CloudFront 支援使用任何儲存類別的 S3 原始伺服器，包括 S3 Intelligent-Tiering。當 CloudFront 從 S3 原始伺服器請求物件時，無論物件目前位於哪個儲存層，都會進行物件擷取。搭配 S3 Intelligent-Tiering 使用 CloudFront 不會影響分佈的效能或功能。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的使用 [Amazon S3 Intelligent-Tiering 管理儲存成本](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering.html)。

### 使用 Amazon S3 Object Lambda
<a name="using-S3-Object-Lambda"></a>

在您[建立 Object Lambda 存取點](https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-create.html)時，Amazon S3 會自動為您的 Object Lambda 存取點產生唯一的別名。您可以[使用此別名](https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-use.html#ol-access-points-alias)，而非 Amazon S3 儲存貯體名稱作為 CloudFront 發佈的原始伺服器。

在您將 Object Lambda 存取點別名用作 CloudFront 的原始伺服器時，建議使用以下格式：

`alias.s3.region.amazonaws.com`

如需有關尋找 `alias` 的詳細資訊，請參閱《Amazon S3 使用者指南》**中的[如何為您的 S3 儲存貯體 Object Lambda 存取點使用儲存貯體式別名](https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-use.html#ol-access-points-alias)。

**重要**  
在您使用 Object Lambda 存取點做為 CloudFront 的原始伺服器時，您必須使用[原始伺服器存取控制](private-content-restricting-access-to-s3.md)。

如需範例使用案例，請參閱[將 Amazon S3 Object Lambda 與 Amazon CloudFront 搭配使用，以為最終使用者量身打造內容](https://aws.amazon.com/blogs/aws/new-use-amazon-s3-object-lambda-with-amazon-cloudfront-to-tailor-content-for-end-users/)。

CloudFront 會將 Object Lambda 存取點原始伺服器視為與[標準 Amazon S3 儲存貯體原始伺服器](#concept_S3Origin)相同。

如您要使用 Amazon S3 Object Lambda 作為分佈的原始伺服器，則必須設定以下四個許可。

------
#### [ Object Lambda Access Point ]

**新增 Object Lambda 存取點的許可**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在導覽窗格中，選擇 **物件 Lambda 存取點**。

1. 選擇您要使用的 Object Lambda 存取點。

1. 選擇**許可**索引標籤。

1. 在 **物件 Lambda 存取點政策** 部分中選擇 **編輯**。

1. 將以下政策貼入 **政策** 欄位。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "cloudfront.amazonaws.com"
               },
               "Action": "s3-object-lambda:Get*",
               "Resource": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/Object-Lambda-Access-Point-name",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceArn": "arn:aws:cloudfront::123456789012:distribution/CloudFront-distribution-ID"
                   }
               }
           }
       ]
   }
   ```

------

1. 選擇**儲存變更**。

------
#### [ Amazon S3 Access Point ]

**新增 Amazon S3 Access Point 的許可**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在導覽窗格中，選擇 **存取點**。

1. 選擇您要使用的 Amazon S3 存取點。

1. 選擇**許可**索引標籤。

1. 在 **存取點政策** 部分中選擇 **編輯**。

1. 將以下政策貼入 **政策** 欄位。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "default",
       "Statement": [
           {
               "Sid": "s3objlambda",
               "Effect": "Allow",
               "Principal": {
                   "Service": "cloudfront.amazonaws.com"
               },
               "Action": "s3:*",
               "Resource": [
                   "arn:aws:s3:us-east-1:123456789012:accesspoint/Access-Point-name",
                   "arn:aws:s3:us-east-1:123456789012:accesspoint/Access-Point-name/object/*"
               ],
               "Condition": {
                   "ForAnyValue:StringEquals": {
                       "aws:CalledVia": "s3-object-lambda.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. 選擇**儲存**。

------
#### [ Amazon S3 bucket ]

**新增許可至 Amazon S3 儲存貯體**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 在導覽窗格中，選擇 **儲存貯體**。

1. 選擇您要使用的 Amazon S3 儲存貯體。

1. 選擇**許可**索引標籤。

1. 在 **儲存貯體政策** 區段中，選擇 **編輯**。

1. 將以下政策貼入 **政策** 欄位。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "*"
               },
               "Action": "*",
               "Resource": [
                   "arn:aws:s3:::bucket-name",
                   "arn:aws:s3:::bucket-name/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "s3:DataAccessPointAccount": "AWS-account-ID"
                   }
               }
           }
       ]
   }
   ```

------

1. 選擇**儲存變更**。

------
#### [ AWS Lambda function ]

**新增許可至 Lambda 函數**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/) 開啟 AWS Lambda 主控台。

1. 在導覽視窗中，選擇**函數**。

1. 選擇您要使用的 AWS Lambda 函數。

1. 依序選擇 **組態** 索引標籤和 **許可**。

1. 在 **基於資源的政策聲明** 區段中選擇 **新增許可**。

1. 選擇 **AWS 帳戶**。

1. 輸入 **聲明 ID** 的名稱。

1. 在 **主體** 輸入 `cloudfront.amazonaws.com`。

1. 從 **動作** 下拉式選單中選擇 `lambda:InvokeFunction`。

1. 選擇**儲存**。

------

### 使用 Amazon S3 Access Point
<a name="using-S3-Access-Point"></a>

當您[使用 S3 Access Point](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-access-points.html) 時，Amazon S3 會自動為您產生唯一的別名。您可以使用此別名，而非 Amazon S3 儲存貯體名稱作為 CloudFront 發佈的原始伺服器。

在您將 Amazon S3 Access Point 別名用作 CloudFront 的原始伺服器時，建議使用以下格式：

`alias.s3.region.amazonaws.com`

如需有關尋找 `alias` 的詳細資訊，請參閱《Amazon S3 使用者指南》**中的[為您的 S3 儲存貯體存取點使用儲存貯體式別名](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-alias.html)。

**重要**  
在您使用 Amazon S3 Access Point 做為 CloudFront 的原始伺服器時，您必須使用[原始存取控制](private-content-restricting-access-to-s3.md)。

CloudFront 會將 Amazon S3 Access Point 原始伺服器視為與[標準 Amazon S3 儲存貯體原始伺服器](#concept_S3Origin)相同。

如您要使用 Amazon S3 Object Lambda 作為分佈的原始伺服器，則必須設定以下二個許可。

------
#### [ Amazon S3 Access Point ]

**新增 Amazon S3 Access Point 的許可**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 在導覽窗格中，選擇 **存取點**。

1. 選擇您要使用的 Amazon S3 存取點。

1. 選擇**許可**索引標籤。

1. 在 **存取點政策** 部分中選擇 **編輯**。

1. 將以下政策貼入 **政策** 欄位。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "default",
       "Statement": [
           {
               "Sid": "s3objlambda",
               "Effect": "Allow",
               "Principal": {"Service": "cloudfront.amazonaws.com"},
               "Action": "s3:*",
               "Resource": [
                   "arn:aws:s3:us-east-1:123456789012:accesspoint/Access-Point-name",
                   "arn:aws:s3:us-east-1:123456789012:accesspoint/Access-Point-name/object/*"
               ],
               "Condition": {
                   "StringEquals": {"aws:SourceArn": "arn:aws:cloudfront::123456789012:distribution/CloudFront-distribution-ID"}
               }
           }
       ]
   }
   ```

------

1. 選擇**儲存**。

------
#### [ Amazon S3 bucket ]

**新增許可至 Amazon S3 儲存貯體**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 在導覽窗格中，選擇 **儲存貯體**。

1. 選擇您要使用的 Amazon S3 儲存貯體。

1. 選擇**許可**索引標籤。

1. 在 **儲存貯體政策** 區段中，選擇 **編輯**。

1. 將以下政策貼入 **政策** 欄位。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "*"
               },
               "Action": "*",
               "Resource": [
                   "arn:aws:s3:::bucket-name",
                   "arn:aws:s3:::bucket-name/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "s3:DataAccessPointAccount": "AWS-account-ID"
                   }
               }
           }
       ]
   }
   ```

------

1. 選擇**儲存變更**。

------

### 使用設定為網站端點的 Amazon S3 儲存貯體
<a name="concept_S3Origin_website"></a>

您可以將設定為網站端點的 Amazon S3 儲存貯體當做自訂原始伺服器，與 CloudFront 搭配使用。當您配置 CloudFront 分佈時，在原始伺服器中為您的儲存貯體輸入 Amazon S3 靜態網站託管端點。這個值會顯示在 [Amazon S3 主控台](https://console.aws.amazon.com/s3/) **Properties** (屬性) 索引標籤中的 **Static website hosting** (靜態網站託管) 窗格裡。例如：

`http://bucket-name.s3-website-region.amazonaws.com`

如需指定 Amazon S3 靜態網站端點的詳細資訊，請參閱 *Amazon Simple Storage Service 使用者指南*中的[網站端點](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteEndpoints.html)。

當您以此格式指定儲存貯體名稱做為您的原始伺服器時，可以使用 Amazon S3 重新引導和 Amazon S3 自訂錯誤文件。如需詳細資訊，請參閱 *Amazon Simple Storage Service 使用者指南*中的[設定自訂錯誤文件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CustomErrorDocSupport.html)和[設定重新引導](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-page-redirect.html)部分。(CloudFront 還提供自訂錯誤頁面。如需詳細資訊，請參閱[針對特定的 HTTP 狀態碼建立自訂錯誤頁面](creating-custom-error-pages.md)。)

使用 Amazon S3 儲存貯體做為 CloudFront 的原始伺服器，不會導致儲存貯體出現任何變動。您可以如一般情況般繼續使用，且需支付一般 Amazon S3 費用。如需 CloudFront 服務使用費的詳細資訊，請參閱 [Amazon CloudFront 定價](https://aws.amazon.com/cloudfront/pricing/)。

**注意**  
如果您使用 CloudFront API 來透過已設為網站端點的 Amazon S3 儲存貯體建立分發，您必須使用 `CustomOriginConfig` 來配置，雖然網站託管於 Amazon S3 儲存貯體。如需使用 CloudFront API 建立分佈的詳細資訊，請參閱 *Amazon CloudFront API 參考*中的 [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html)。

### 將 CloudFront 新增至現有 Amazon S3 儲存貯體
<a name="adding-cloudfront-to-s3"></a>

如果您將物件存放於 Amazon S3 儲存貯體，您可以讓使用者直接從 S3 取得您的物件，或配置 CloudFront 從 S3 取得物件，然後將它們分配給使用者。如果您的使用者經常存取您的物件，則使用 CloudFront 更具成本效益，因為在較高用量，CloudFront 資料傳輸的價格低於 Amazon S3 資料傳輸的價格。此外，使用 CloudFront 下載的速度比單獨使用 Amazon S3 要快，因為物件存放在較靠近使用者的位置。

**注意**  
如果您希望 CloudFront 尊重 Amazon S3 跨原始伺服器資源共享配置，請配置 CloudFront 將 `Origin` 標頭轉送到 Amazon S3。如需詳細資訊，請參閱[根據請求標頭快取內容](header-caching.md)。

如果您目前使用自己的網域名稱 (例如 example.com) 直接從 Amazon S3 儲存貯體分配內容，而非從 Amazon S3 儲存貯體的網域名稱 (例如 amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com)，您可以使用下列程序不受干擾的新增 CloudFront。<a name="migrate-s3-to-cloudfront-process"></a>

**在您已經從 Amazon S3 分佈內容時新增 CloudFront**

1. 建立 CloudFront 分佈。如需詳細資訊，請參閱[建立分發](distribution-web-creating-console.md)。

   當您建立分佈時，請指定 Amazon S3 儲存貯體的名稱做為原始伺服器。
**重要**  
為了讓您的儲存貯體使用 CloudFront，該名稱必須符合 DNS 命名請求。如需詳細資訊，請參閱 *Amazon Simple Storage Service 使用者指南*中的[儲存貯體命名規則](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)。

   如果您將 Amazon S3 與 CNAME 搭配使用，也請為您的分佈指定 CNAME。

1. 建立一個在 Amazon S3 儲存貯體中包含公開可讀取物件的連結之測試 Web 頁面，並測試該連結。針對此初始測試，請使用物件 URL 中分佈的 CloudFront 網域名稱，例如 `https://d111111abcdef8.cloudfront.net/images/image.jpg`。

   如需 CloudFront URL 格式的詳細資訊，請參閱 [自訂 CloudFront 中檔案的 URL 格式](LinkFormat.md)。

1. 如果您目前使用 Amazon S3 CNAME，您的應用程式會使用網域名稱 (例如 example.com) 參照 Amazon S3 儲存貯體中的物件，而不是使用儲存貯體的名稱 (例如 amzn-s3-demo-bucket.s3.amazonaws.com)。若要繼續使用您的網域名稱來參考物件，而不是使用分佈的 CloudFront 網域名稱 (例如 d111111abcdef8.cloudfront.net)，您需要透過 DNS 服務供應商來更新設定。

   針對使用 Amazon S3 CNAME，您的 DNS 服務供應商必須有網域的 CNAME 資源紀錄集，該記錄目前將網域查詢路由到您的 Amazon S3 儲存貯體。例如，如果使用者請求該物件：

   `https://example.com/images/image.jpg`

   該請求會自動重新路由，且使用者看到此物件：

   `https://amzn-s3-demo-bucket.s3.amazonaws.com/images/image.jpg`

   若要路由查詢到 CloudFront 分佈，而非 Amazon S3 儲存貯體，您需要使用 DNS 服務供應商提供的方法來更新網域的 CNAME 資源紀錄集。這項經過更新的 CNAME 記錄會將 DNS 查詢從您的網域重新引導到您的分佈的 CloudFront 網域名稱。如需詳細資訊，請參閱 DNS 服務供應商提供的說明文件。
**注意**  
如果您使用 Route 53 做為 DNS 服務，您可以使用 CNAME 資源紀錄集或別名資源紀錄集。如需編輯資源紀錄集的詳細資訊，請參閱[編輯記錄](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-editing.html)。如需別名資源紀錄集的詳細資訊，請參閱[選擇別名或非別名記錄](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-choosing-alias-non-alias.html)。這兩個主題都在 *Amazon Route 53 開發人員指南*中。

   如需搭配 CloudFront 使用 CNAME 的詳細資訊，請參閱 [透過新增備用網域名稱 (CNAME) 使用自訂 URL](CNAMEs.md)。

   在您更新 CNAME 資源紀錄集後，傳播變更到整個 DNS 系統需要 72 小時，但通常更快。這段期間內，會持續將一些內容的請求路由到 Amazon S3 儲存貯體，並將其他的內容路由到 CloudFront。

### 將 Amazon S3 儲存貯體移至不同的 AWS 區域
<a name="move-s3-bucket-different-region"></a>

如果您使用 Amazon S3 做為 CloudFront 分佈的原始伺服器，並將儲存貯體移至不同的 AWS 區域，則當下列兩者都成立時，CloudFront 最多可能需要一小時的時間來更新其記錄以使用新區域：
+ 您使用 CloudFront 原始存取身分 (OAI) 限制對儲存貯體的存取。
+ 您將儲存貯體移至需要簽章版本 4 進行身分驗證的 Amazon S3 區域。

當您使用 OAI 時，CloudFront 使用區域 (其他值中)，以計算用來從儲存貯體請求物件的簽章。如需 OAI 的詳細資訊，請參閱[使用原始存取身分 (舊版，不建議使用)](private-content-restricting-access-to-s3.md#private-content-restricting-access-to-s3-oai)。如需支援 Signature 第 2 版 AWS 區域 的清單，請參閱 中的 [Signature 第 2 版簽署程序](https://docs.aws.amazon.com/general/latest/gr/signature-version-2.html)*Amazon Web Services 一般參考*。

若要強制執行更快速的 CloudFront 記錄更新，您可以更新 CloudFront 分佈，例如更新 CloudFront 主控台中 **General** (一般) 索引標籤裡的 **Description** (描述) 欄位；您更新分佈後，CloudFront 便會立即檢查儲存貯體所在的區域。將變更傳播到所有節點只需幾分鐘即可完成。

### 使用 Amazon S3 多區域存取點
<a name="using-s3-mrap-as-origin"></a>

您也可以使用 Amazon S3 多區域存取點做為 CloudFront 原始伺服器。Amazon S3 多區域存取點提供全域端點，可根據網路延遲自動將請求路由至最近的 Amazon S3 儲存貯體。當您使用 Amazon S3 多區域存取點做為原始伺服器時，請將多區域存取點主機名稱指定為原始伺服器網域名稱：

`multi-region-access-point-alias.accesspoint.s3-global.amazonaws.com`

若要限制對 S3 多區域存取點的存取，以便只能透過 CloudFront 分佈存取，請參閱 [限制對 Amazon S3 多區域存取點原始伺服器的存取](private-content-restricting-access-to-s3-mrap.md)。

## 使用 MediaStore 容器或 MediaPackage 頻道
<a name="concept_AWS_Media"></a>

若要使用 CloudFront 串流視訊，您可以設定已配置為 MediaStore 容器的 Amazon S3 儲存貯體，或使用 MediaPackage 建立頻道和端點。然後，您可在 CloudFront 中建立及配置分佈來串流視訊。

如需詳細資訊和逐步說明，請參閱以下主題：
+ [使用 AWS Elemental MediaStore 做為原始伺服器來提供影片](live-streaming.md#video-streaming-mediastore)
+ [提供格式化為 的即時影片 AWS Elemental MediaPackage](live-streaming.md#live-streaming-with-mediapackage)

## 使用 Application Load Balancer
<a name="concept_elb_origin"></a>

您可以使用 CloudFront 將流量路由到內部和面向網際網路的 Application Load Balancer。

如果您的原始伺服器是託管在一或多個 Amazon EC2 執行個體上的一或多個 HTTP 伺服器 (Web 伺服器)，您可以使用面向網際網路的 Application Load Balancer 將流量分配到執行個體。面對網際網路的負載平衡器具有可公開解析的 DNS 名稱，並會透過網際網路將用戶端的請求路由至目標。

如想進一步了解如何使用面向網際網路的 Application Load Balancer 做為 CloudFront 的原始伺服器，包括如何確保檢視器只能透過 CloudFront (無法直接透過負載平衡器) 存取您的 web 伺服器，請參閱 [限制對 Application Load Balancers 的存取](restrict-access-to-load-balancer.md)。

或者，您可以使用 VPC 原始伺服器，從虛擬私有雲端 (VPC) 私有子網路中以內部 Application Load Balancer 託管的應用程式交付內容。VPC 原始伺服器可防止您的應用程式在公有網際網路上被存取。如需詳細資訊，請參閱[使用 VPC 原始伺服器限制存取](private-content-vpc-origins.md)。

## 使用 Network Load Balancer
<a name="concept_nlb_origin"></a>

您可以將內部和面向網際網路的 Network Load Balancer 與 Amazon CloudFront 搭配使用。您可以使用 VPC 原始伺服器，將私有子網路內的內部 Network Load Balancer 與 CloudFront 搭配使用。CloudFront VPC 來源可讓您從私有 VPC 子網路中託管的應用程式提供內容，而無需將其暴露至公共網際網路。如需詳細資訊，請參閱[使用 VPC 原始伺服器限制存取](private-content-vpc-origins.md)。

或者，您也可以使用 CloudFront 從面向網際網路的 Network Load Balancer 交付流量。面向網際網路的負載平衡器具有可公開解析的 DNS 名稱，並且可以在網際網路和 CloudFront 分佈上接收來自用戶端的請求。

## 使用 Lambda 函數 URL
<a name="concept_lambda_function_url"></a>

[Lambda 函數 URL](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) 是 Lambda 函數專用的 HTTPS 端點。使用 Lambda 函數 URL，您便可以在 Lambda 內完成所有無伺服器 Web 應用程式建置作業。您可以直接透過這個函數 URL 叫用 Lambda Web 應用程式，完全無需與 API Gateway 或 Application Load Balancer 進行整合。

使用含有函數 URL 的 Lambda 函數建置無伺服器 Web 應用程式，可讓 CloudFront 享有一系列優勢。
+ 在更接近檢視者的位置快取內容，加快應用程式的速度
+ 讓您的 Web 應用程式使用自訂網域
+ 使用 CloudFront 快取行為將不同的 URL 路徑轉送至不同的 Lambda 函數
+ 使用 CloudFront 地理限制和/或 AWS WAF 封鎖特定請求
+  AWS WAF 搭配 CloudFront 使用 可協助保護您的應用程式免受惡意機器人攻擊、協助防止常見的應用程式入侵，以及增強對 DDoS 攻擊的保護

若要使用 Lambda 函數 URL 做為 CloudFront 分佈的原始伺服器，請將 Lambda 函數 URL 的完整網域名稱指定為原始伺服器網域。Lambda 函數 URL 網域名稱必須使用以下格式：

`function-URL-ID.lambda-url.AWS-Region.on.aws`

使用 Lambda 函數 URL 做為 CloudFront 分佈的原始伺服器時，必須確保函數 URL 可供公開存取。若要執行此操作，請使用下列其中一個選項：
+ 如果您使用原始存取控制 (OAC)，Lambda 函數 URL 的 `AuthType` 參數必須使用 `AWS_IAM`值，並在資源型政策中允許 `lambda:InvokeFunctionUrl`和 `lambda:InvokeFunction`許可。如需有關 Lambda 函數 URL 用於 OAC 的詳細資訊，請參閱 [限制對 AWS Lambda 函數 URL 原始伺服器的存取](private-content-restricting-access-to-lambda.md)。
+ 若您不使用 OAC，可將函數 URL 的 `AuthType` 參數設定為 `NONE`，並在資源型政策中啟用 `lambda:InvokeFunctionUrl` 許可。



您也可以在 CloudFront 傳送至原始伺服器的請求中[新增自訂原始伺服器標頭](add-origin-custom-headers.md)，並編寫函數程式碼，讓系統在收到不含該標頭的請求時傳回錯誤回應，以確保使用者只能透過 CloudFront (無法直接使用 Lambda 函數 URL) 存取您的 Web 應用程式。

如需 Lambda 函數 URL 的詳細資訊，請參閱 *AWS Lambda 開發人員指南*：
+ [Lambda 函數 URL](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) – Lambda 函數 URL 功能的一般概觀
+ [叫用 Lambda 函數 URL](https://docs.aws.amazon.com/lambda/latest/dg/urls-invocation.html) – 針對編寫無伺服器 Web 應用程式程式碼時須用到的請求和回應承載，提供詳細資訊
+ [Lambda 函數 URL 的安全與驗證模型](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html) – 包含 Lambda 驗證類型的詳細資訊

## 使用 Amazon EC2 (或其他自訂原始伺服器)
<a name="concept_CustomOrigin"></a>

您可以將內部和面向網際網路的 EC2 執行個體與 Amazon CloudFront 搭配使用。您可以使用 VPC 原始伺服器，將私有子網路內的內部 EC2 執行個體與 CloudFront 搭配使用。CloudFront VPC 來源可讓您從私有 VPC 子網路中託管的應用程式提供內容，而無需將其暴露至公共網際網路。如需詳細資訊，請參閱[使用 VPC 原始伺服器限制存取](private-content-vpc-origins.md)。

自訂原始伺服器是 HTTP(S) Web 伺服器，具有可公開解析的 DNS 名稱，可透過網際網路將請求從用戶端路由到目標。HTTP(S) 伺服器可以託管在 AWS Amazon EC2 執行個體上，也可以託管在其他地方。設為網站端點的 Amazon S3 原始伺服器也會被視為自訂原始伺服器。如需詳細資訊，請參閱[使用設定為網站端點的 Amazon S3 儲存貯體](#concept_S3Origin_website)。

使用自有的 HTTP 伺服器做為自訂原始伺服器時，您可以指定伺服器的 DNS 名稱，以及 CloudFront 從您的原始伺服器擷取物件時使用的 HTTP 與 HTTPS 連接埠和通訊協定。

使用自訂原始伺服器時，大多數 CloudFront 功能都受支援，但私有內容除外：雖然您可以使用已簽署的 URL 來分配自訂原始伺服器的內容，但是為了讓 CloudFront 存取自訂原始伺服器，該伺服器必須維持在可公開存取的狀態。如需詳細資訊，請參閱[使用已簽署 URL 和已簽署 Cookie 提供私有內容](PrivateContent.md)。

請依照這些準則，以便使用 Amazon EC2 執行個體和在 CloudFront 下的其他自訂原始伺服器原始伺服器。
+ 在所有伺服器上託管與服務相同內容，這些伺服器為相同的 CloudFront 原始伺服器提供的內容。如需詳細資訊，請參閱 [所有分佈設定參考](distribution-web-values-specify.md) 主題中的 [原始設定](DownloadDistValuesOrigin.md)。
+ 如果您需要 支援 或 CloudFront 使用此值進行偵錯，請在所有伺服器上記錄`X-Amz-Cf-Id`標頭項目。
+ 限制對您自訂原始伺服器所監聽的 HTTP 與 HTTPS 連接埠提出請求。
+ 同步實作中所有伺服器的時鐘。請注意，CloudFront 對已簽署 URL 和已簽署 Cookie、日誌及報告皆使用國際標準時間 (UTC)。此外，如果您使用 CloudWatch 指標來監控 CloudFront 活動，請注意，CloudWatch 也會使用 UTC。
+ 使用冗餘伺服器來處理故障。
+ 如需有關使用自訂原始伺服器來提供私有內容的詳細資訊，請參閱[在自訂原始伺服器上限制存取檔案](private-content-overview.md#forward-custom-headers-restrict-access)。
+ 如需有關請求和回應行為，以及有關支援的 HTTP 狀態代碼的詳細資訊，請參閱[請求和回應行為](RequestAndResponseBehavior.md)。

如果您使用 Amazon EC2 做為自訂原始伺服器，建議您執行以下操作：
+ 使用 Amazon Machine Image，會自動為 Web 伺服器安裝軟體。如需詳細資訊，請參閱 [Amazon EC2 說明文件](https://docs.aws.amazon.com/ec2/index.html)。
+ 使用 Elastic Load Balancing 負載平衡器來處理多個 Amazon EC2 執行個體的流量，並將應用程式與 Amazon EC2 執行個體的變更隔離。例如，如果您使用負載平衡器，則可以新增和刪除 Amazon EC2 執行個體，無需變更應用程式。如需詳細資訊，請參閱 [Elastic Load Balancing 說明文件](https://docs.aws.amazon.com/elasticloadbalancing/index.html)。
+ 當您建立 CloudFront 分佈時，請為您的原始伺服器的網域名稱指定負載平衡器的 URL。如需詳細資訊，請參閱[建立分發](distribution-web-creating-console.md)。

## 使用 CloudFront 原始伺服器群組
<a name="concept_origin_groups"></a>

例如，當您需要高可用性時，若想要針對案例配置原始伺服器容錯移轉，則您可以為 CloudFront 原始伺服器指定原始伺服器群組。使用原始伺服器容錯移轉來指定 CloudFront 的主要原始伺服器，另外再建立第二部原始伺服器，當主要原始伺服器傳回特定 HTTP 狀態碼故障回應時，CloudFront 會自動切換到第二部伺服器。

如需詳細資訊，包括原始伺服器群組的設定步驟，請參閱[透過 CloudFront 原始伺服器容錯移轉最佳化高可用性](high_availability_origin_failover.md)。

## 使用 Amazon API Gateway
<a name="use-api-gate-way-origin"></a>

您可以使用 API Gateway 做為 CloudFront 分佈的自訂原始伺服器。如需詳細資訊，請參閱下列主題：
+ [使用 Amazon CloudFront 部落格文章使用安全密碼來保護 Amazon API Gateway Amazon CloudFront](https://aws.amazon.com/blogs/networking-and-content-delivery/securing-amazon-api-gateway-with-secure-ciphers-using-amazon-cloudfront/) AWS 
+ [如何使用自己的 CloudFront 分佈來設定 API Gateway？](https://repost.aws/knowledge-center/api-gateway-cloudfront-distribution) AWS re:Post

# 為 CloudFront 分佈啟用 IPv6
<a name="cloudfront-enable-ipv6"></a>

Amazon CloudFront 支援從用戶端到 AWS 節點的 IPv4 和 IPv6。CloudFront 亦支援 IPv6，以及對原始伺服器的雙重堆疊 (IPv4 與 IPv6) 連線。這可協助您實現端對端 IPv6 交付。

IPv6 是新一代網際網路通訊協定，旨在取代 IPv4。雖然 IPv4 使用 32 位元位址 (例如 192.0.2.44)，但 IPv6 使用 128 位元位址 (例如 2001:0db8:85a3::8a2e:0370:7334)。IPv6 提供擴充的位址空間，以容納更多的網際網路連線裝置。

**Topics**
+ [IPv6 檢視器請求](#ipv6-viewer-requests)
+ [IPv6 原始伺服器請求](#ipv6-origin-requests)

## IPv6 檢視器請求
<a name="ipv6-viewer-requests"></a>

一般而言，如果在 IPv6 網路上有需要存取您的內容的使用者，則應該啟用 IPv6。不過，如果您使用簽章的 URL 或簽章的 Cookie 來限制對內容的存取，並且如果您使用自訂政策，包含 `IpAddress` 參數以限制存取您的內容的 IP 位址，請不要啟用 IPv6。如果您想要透過 IP 位址限制存取一些內容，並且不限制對其他內容的存取 (或限制存取但不透過 IP 位址)，則可以建立兩個分佈。如需有關使用自訂政策建立簽章的 URL 的詳細資訊，請參閱[使用自訂政策建立已簽署 URL](private-content-creating-signed-url-custom-policy.md)。如需有關使用自訂政策建立簽章的 Cookie 的詳細資訊，請參閱[使用自訂政策設定已簽署 Cookie](private-content-setting-signed-cookie-custom-policy.md)。

如果您使用 Route 53 別名資源紀錄集將流量路由至 CloudFront 分佈，則在滿足以下兩個條件時，您必須建立第二個別名資源紀錄集：
+ 您為分佈啟用 IPv6
+ 您在物件的 URL 中使用備用網域名稱

如需詳細資訊，請參閱 *Amazon Route 53 開發人員指南*中的[使用網域名稱將流量路由傳送到 Amazon CloudFront 分佈](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html)。

如果您透過 Route 53 或其他 DNS 服務建立了 CNAME 資源紀錄集，則不需要進行任何變更。無論檢視器請求的 IP 位址格式如何，CNAME 記錄都會把流量路由到您的分佈。

如果您啟用 IPv6 和 CloudFront 存取日誌，`c-ip` 欄會包含 IPv4 和 IPv6 格式的值。如需詳細資訊，請參閱[日誌檔案欄位](standard-logs-reference.md#BasicDistributionFileFormat)。

**注意**  
為了保持較高的客戶可用性，如果我們的資料建議 IPv4 將提供更好的使用者體驗，CloudFront 會透過使用 IPv4 來回應檢視器請求。要了解 CloudFront 透過 IPv6 提供請求的百分比，請為您的分佈啟用 CloudFront 記錄，並剖析 `c-ip` 列，其中包含發出請求的檢視器的 IP 位址。這個百分比應該隨著時間的推移而增長，但它仍然是少數的流量，因為 IPv6 還沒有得到全球所有檢視器網路的支援。有些檢視器網路擁有優異的 IPv6 支援，但其他檢視器網路則完全不支援 IPv6。(檢視器網路類似於家用網路或無線電信業者)。  
如需我們對 IPv6 的支援的詳細資訊，請參閱 [CloudFront 常見問答集](https://aws.amazon.com/cloudfront/faqs/)。如需有關啟用存取日誌的詳細資訊，請參閱 [標準記錄](DownloadDistValuesGeneral.md#DownloadDistValuesLoggingOnOff)、和 [日誌字首](DownloadDistValuesGeneral.md#DownloadDistValuesLogPrefix) 欄位。

## IPv6 原始伺服器請求
<a name="ipv6-origin-requests"></a>

當您使用自訂原始伺服器 (不含 Amazon S3 和 VPC 原始伺服器) 時，您可以自訂分佈的原始伺服器設定，以選擇 CloudFront 如何使用 IPv4 或 IPv6 位址連接到原始伺服器。對於自訂原始伺服器 (不含 Amazon S3 和 VPC 原始伺服器)，您有下列連線選項：
+ **僅限 IPv4 (預設)** – 這是 CloudFront 用來透過 IPv4 連線至原始伺服器的預設組態。
+ **僅限 IPv6 **– 需要您的原始伺服器網域解析為 IPv6 地址。CloudFront 將專門使用 IPv6 位址進行原始伺服器連線。
+ **雙堆疊** – 啟用透過 IPv4 和 IPv6 的連線。CloudFront 會自動選擇 IPv4 或 IPv6 原始伺服器連線，以排定效能和可用性的優先順序，讓您可以使用 CloudFront 做為 Web 應用程式的 IPv6 和 IPv4 雙堆疊網際網路閘道。

選擇符合您原始伺服器網路組態和連線需求的選項。如需詳細資訊，請參閱[為 IPv6 設計 DNS](https://docs.aws.amazon.com/whitepapers/latest/ipv6-on-aws/designing-dns-for-ipv6.html) 和 [IPv6 安全性和監控考量](https://docs.aws.amazon.com/whitepapers/latest/ipv6-on-aws/ipv6-security-and-monitoring-considerations.html)。

# 使用 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 的分佈與持續部署。

# 透過新增備用網域名稱 (CNAME) 使用自訂 URL
<a name="CNAMEs"></a>

建立分佈後，CloudFront 會為該分佈提供網域名稱，例如 d111111abcdef8.cloudfront.net。您可以使用替代網域名稱 (也稱為 CNAME)，而不是使用此提供的網域名稱。

若要了解如何使用自己的網域名稱 (例如 www.example.com)，請參閱下列主題：

**Topics**
+ [使用備用網域名稱的需求](#alternate-domain-names-requirements)
+ [使用備用網域名稱的限制](#alternate-domain-names-restrictions)
+ [新增替代網域名稱](CreatingCNAME.md)
+ [移動替代網域名稱](alternate-domain-names-move.md)
+ [移除替代網域名稱](alternate-domain-names-remove-domain.md)
+ [在備用網域名稱中使用萬用字元](alternate-domain-names-wildcard.md)

## 使用備用網域名稱的需求
<a name="alternate-domain-names-requirements"></a>

當您將備用網域名稱 (例如 www.example.com) 新增至 CloudFront 分佈時，下列為必要項目：

**備用網域名稱必須是小寫**  
所有替代網域名稱 (CNAME) 都必須是小寫。

**備用網域名稱必須由有效的 TLS 憑證涵蓋**  
若要將替代網域名稱 (CNAME) 新增到 CloudFront 分佈，必須將信任、有效且涵蓋替代網域名稱的 TLS 憑證連接到您的分佈。這可確保只有具備存取您網域憑證權限的人員能將與您網域相關的 CNAME 與 CloudFront 建立關聯。  
信任憑證是由 AWS Certificate Manager (ACM) 或其他有效憑證授權機構 (CA) 發行的憑證。您可以使用自我簽署憑證來驗證現有的 CNAME，但*不能*用於新的 CNAME。CloudFront 支援與 Mozilla 相同的憑證授權機構。如需目前的清單，請參閱 [Mozilla 內建 CA 憑證清單](https://wiki.mozilla.org/CA/Included_Certificates)。如需有關在使用第三方 CA 時的中繼憑證資訊，請參閱 [中繼憑證](cnames-and-https-requirements.md#https-requirements-intermediate-certificates)。  
為了使用您連線的憑證驗證備用網域名稱 (包括包含萬用字元的備用網域名稱)，CloudFront 會檢查憑證上的主體別名 (SAN)。您新增的備用網域名稱必須由 SAN 涵蓋。  
一次只能有一個憑證能連線到 CloudFront 分佈。
您可以執行以下作業，證明您已獲得授權，將特定的備用網域名稱新增到您的分佈：  
+ 附加包含替代網域名稱的憑證，例如 product-name.example.com。
+ 連接網域名稱開頭包含 \$1 萬用字元的憑證，以使用單一憑證涵蓋多個子網域。當您指定萬用字元時，您可以在 CloudFront 中新增多個子網域做為備用網域名稱。
以下範例會示範如何在憑證作業中，於網域名稱內使用萬用字元來授權您在 CloudFront 中新增特定備用網域名稱。  
+ 您想要新增 marketing.example.com 做為替代網域名稱。在您的憑證中列出以下網域名稱：\$1.example.com。將此憑證連接到 CloudFront 後，您可以為您的分佈新增任何替代網域名稱，取代該層級的萬用字元，包括 marketing.example.com。您也可以新增下列備用網域名稱 (範例)：
  + product.example.com
  + api.example.com

  但是，您無法新增比萬用字元層級高或低的備用網域名稱。例如，您無法新增替代網域名稱 example.com 或 marketing.product.example.com。
+ 您想要新增 mexample.com 做為替代網域名稱。若要執行此作業，您必須在您連接到分佈的憑證上列出網域名稱 example.com 本身。
+ 您想要新增 marketing.product.example.com 做為替代網域名稱。若要執行此作業，您可以在憑證上列出 \$1.example.com，或是在憑證上列出 marketing.product.example.com。

**變更 DNS 組態的許可**  
新增備用網域名稱時，必須建立 CNAME 紀錄，將替代網域名稱的 DNS 查詢路由到您的 CloudFront 分佈。若要執行此作業，您必須擁有為您正在使用備用網域名稱，使用 DNS 服務提供者建立 CNAME 記錄的許可。一般而言，這表示您擁有此網域，但您也可能是在為網域擁有者開發應用程式。

**備用網域名稱和 HTTPS**  
若您希望檢視器搭配備用網域名稱使用 HTTPS，您必須完成額外設定。如需詳細資訊，請參閱[使用備用網域名稱和 HTTPS](using-https-alternate-domain-names.md)。

## 使用備用網域名稱的限制
<a name="alternate-domain-names-restrictions"></a>

請在使用備用網域名稱時，注意以下限制：

**備用網域名稱的數量上限**  
如需您可為分發新增之備用網域名稱數量的目前上限，或是有關請求更高配額 (先前稱為限制) 的詳細資訊，請參閱[分佈的一般配額](cloudfront-limits.md#limits-web-distributions)。

**重複和重疊的備用網域名稱**  
如果另一個 CloudFront 分佈中已存在相同的替代網域名稱，即使您 AWS 帳戶 擁有另一個分佈，您也無法將替代網域名稱新增至 CloudFront 分佈。  
不過，您可以新增萬用字元替代網域名稱，例如 \$1.example.com，其中包含 (重疊) 非萬用字元的替代網域名稱，例如 www.example.com。如果您在兩個分佈中有重疊的備用網域名稱，無論 DNS 記錄指向哪個分佈，CloudFront 都會將請求傳送至名稱相符程度更具體的分佈。例如，marketing.domain.com 比 \$1.domain.com 更為具體。  
如果您有指向 CloudFront 分佈的現有萬用字元 DNS 項目，且在嘗試新增具有更特定名稱的新 CNAME 時，收到設定不正確的 DNS 錯誤，請參閱 [當我嘗試新增 CNAME 時，CloudFront 會傳回 DNS 記錄設定不正確的錯誤](troubleshooting-distributions.md#troubleshoot-incorrectly-configured-DNS-record-error)。

**網域 Fronting**  
CloudFront 在不同 AWS 帳戶中發生的網域 Fronting 擁有保護。當非標準用戶端建立與網域名稱的 TLS/SSL 連線 AWS 帳戶，然後在另一個 中對不相關的網域名稱提出 HTTPS 請求時，就會發生這種情況 AWS 帳戶。  
 例如，TLS 連線可能會連線到 www.example.com，接著又發出 www.example.org 請求。  
為了判斷請求是否為網域前端，CloudFront 會執行下列檢查：  
+ SNI 延伸項目等於 HTTP 請求 `Host` 標頭
+ 憑證屬於 AWS 帳戶 與請求分佈相同的 。
+ HTTP 請求 `Host` 被涵蓋在 TLS 交握期間提供的憑證中
如果這些條件均不符合，則 CloudFront 會判斷請求是網域前端。CloudFront 會使用 421 HTTP 錯誤回應拒絕請求。  
如果用戶端未提供 SNI 延伸模組，而是取得預設的 \$1.cloudfront.net 憑證，則 CloudFront 會接受傳入的請求。

**CloudFront 如何識別請求的分佈**  
CloudFront 會根據 `Host` 標頭識別 HTTP 請求的分佈。CloudFront 不依賴您連線的 CloudFront IP 位址，或在 TLS 交握期間提供的 SNI 交握。  
當 CloudFront 收到請求時，將使用 `Host` 標頭的值，將請求與特定分佈進行比對。  
例如，假設您有兩個分佈，而且已更新 DNS 組態，因此備用網域名稱會路由至下列端點：  
+ primary.example.com 指向 d111111primary.cloudfront.net 
+ secondary.example.com 指向 d222222secondary.cloudfront.net 
如果您向 https://primary.example.com 提出請求，但將 `Host` 標頭指定為 secondary.example.com，例如 `curl https://primary.example.com -H "Host: secondary.example.com"`，則請求將改為路由至次要分佈。

**在網域的頂端節點 (Zone Apex) 新增備用網域名稱**  
如果您將備用網域名稱新增到分佈，您通常會在 DNS 組態中建立 CNAME 記錄以將網域名稱的 DNS 查詢路由到 CloudFront 分佈。不過，您不能為 DNS 命名空間，也稱為 Zone Apex 的頂端節點建立 CNAME 記錄；DNS 通訊協定不允許此操作。例如，如果您註冊 DNS 名稱 example.com，Zone Apex 就是 example.com。您無法為 example.com 建立 CNAME 紀錄，但可以為 www.example.com、newproduct.example.com 等建立 CNAME 紀錄。  
如果您使用 Route 53 做為您的 DNS 服務，則可以建立別名資源紀錄集，其與 CNAME 記錄相比有以下優勢：  
+ 您可以在頂端節點 (example.com) 建立網域名稱的別名資源紀錄集。
+ 如果用戶端支援，您可以為替代網域名稱建立 HTTPS 記錄，以允許通訊協定交涉做為 DNS 查詢的一部分。如需詳細資訊，請參閱[Create alias resource record set](CreatingCNAME.md#alternate-domain-https)。
+ 在使用別名資源紀錄集時，您不需要支付 Route 53 查詢。
如果您啟用 IPv6，必須建立兩個別名資源紀錄集：一個給路由 IPv4 流量 (A 紀錄)，一個給路由 IPv6 流量 (AAAA 紀錄)。如需詳細資訊，請參閱 [所有分佈設定參考](distribution-web-values-specify.md) 主題中的 [啟用 IPv6 (檢視器請求)](DownloadDistValuesGeneral.md#DownloadDistValuesEnableIPv6)。
如需詳細資訊，請參閱 *Amazon Route 53 開發人員指南*中的[使用網域名稱將流量路由傳送到 Amazon CloudFront Web 分佈](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html)。  
如果您不是針對 DNS 使用 Route 53，您可以請求 Anycast 靜態 IP 位址，將 example.com 等 Apex 網域路由至 CloudFront。如需詳細資訊，請參閱[請求用於列入允許清單的 Anycast 靜態 IP](request-static-ips.md)。

# 新增替代網域名稱
<a name="CreatingCNAME"></a>

以下任務清單會說明如何使用 CloudFront 主控台，將備用網域名稱新增到您的分佈，讓您可以在連結中使用您自己的網域名稱，而非 CloudFront 網域名稱。如需使用 CloudFront API 更新分發的詳細資訊，請參閱[設定分佈](distribution-working-with.md)。

**注意**  
如果您要檢視器使用具有備用網域名稱的 HTTPS，請參閱[使用備用網域名稱和 HTTPS](using-https-alternate-domain-names.md)。

**在您開始進行前：**請先確認您已執行以下作業，再更新您的分佈以新增備用網域名稱：
+ 向 Route 53 或其他網域註冊商註冊網域名稱。
+ 從涵蓋網域名稱的授權憑證認證機構 (CA) 取得 TLS 憑證。將憑證新增至您的分佈，來驗證您是否已獲得使用網域的授權。如需詳細資訊，請參閱[使用備用網域名稱的需求](CNAMEs.md#alternate-domain-names-requirements)。<a name="CreatingCNAMEProcess"></a>

**新增替代網域名稱**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 選擇您希望更新的分佈 ID。

1. 在**一般**索引標籤上，選擇**新增網域**。

1. 輸入最多五個要服務的網域。

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

1. 對於 **TLS 憑證**，如果 CloudFront 在 AWS 帳戶 的 中找不到網域的現有 AWS Certificate Manager (ACM) 憑證`us-east-1` AWS 區域，您可以選擇自動建立憑證或在 ACM 中手動建立憑證。

1. 佈建憑證時，您必須使用 DNS 提供者更新您的 DNS 記錄，以證明網域擁有權。您需要對 DNS 記錄進行的項目會在 CloudFront 主控台中提供給您。

1. 更新 DNS 記錄後，請選擇**驗證憑證**。

1. 驗證憑證時，請選擇**下一步**。

1. 檢閱您的變更，然後選擇**新增網域**。

1. 在分佈的 **General (一般)** 索引標籤上，請確認 **Distribution Status (分佈狀態)** 是否已變更為 **Deployed (已部署)**。如果您在部署分佈的更新之前，嘗試使用備用網域名稱，則您在下列步驟中建立的連結可能無法運作。

1. 設定替代網域名稱 (例如 www.example.com) 的 DNS 服務，以便將流量路由至分佈的 CloudFront 網域名稱 (例如 d111111abcdef8.cloudfront.net)。您使用的方法取決於您是使用 Route 53 做為網域的 DNS 服務提供者，還是其他提供者。如需詳細資訊，請參閱[將網域新增至您的 CloudFront 標準分佈](add-domain-existing-distribution.md)。  
**Route 53**  
請建立別名資源紀錄集。使用別名資源紀錄集時，您不需要支付 Route 53 查詢。您也可以建立根網域名稱 (example.com) 的別名資源紀錄集，該 DNS 不允許 CNAME。如需建立別名資源記錄集的詳細資訊，請參閱《Amazon Route 53 開發人員指南》**中的[使用網域名稱將流量路由傳送到 Amazon CloudFront Web 分佈](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html)。  
或者，如果用戶端支援，您可以為替代網域名稱建立 HTTPS 記錄，以允許通訊協定交涉做為 DNS 查詢的一部分。  

**使用 HTTPS 記錄建立別名資源記錄集 (選用)**

   1. 在 CloudFront 分佈設定中啟用 HTTP/2 或 HTTP/3。如需詳細資訊，請參閱[支援的 HTTP 版本](DownloadDistValuesGeneral.md#DownloadDistValuesSupportedHTTPVersions)及[更新分佈](HowToUpdateDistribution.md)。

   1. 在 Route 53 主控台中，建立別名資源紀錄集。依照[使用網域名稱將流量路由到 Amazon CloudFront Web 分佈](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html)的程序執行。

   1. 當您建立別名資源紀錄集時，請使用記錄類型 **HTTPS** 建立別名紀錄。  
**其他 DNS 服務供應商**  
使用 DNS 服務供應商提供的方法，為您的網域新增 CNAME 記錄。這個新的 CNAME 紀錄會將 DNS 查詢從您的替代網域名稱 (例如 www.example.com) 重新引導到分佈的 CloudFront 網域名稱 (例如 d111111abcdef8.cloudfront.net)。如需詳細資訊，請參閱 DNS 服務供應商提供的說明文件。  
如果您的替代網域名稱已有現有的 CNAME 紀錄，請更新該紀錄或將其替換為指向分佈 CloudFront 網域名稱的新紀錄。

1. 使用 `dig` 或類似 DNS 工具，請確認您在先前步驟建立的 DNS 組態，是否指向分佈的網域名稱。

   以下範例顯示了一個在 www.example.com 網域的 `dig` 請求和回應的相關部分。

   ```
   PROMPT> dig www.example.com
   
   ; <<> DiG 9.3.3rc2 <<> www.example.com
   ;; global options:	printcmd
   ;; Got answer:
   ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15917
   ;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 2, ADDITIONAL: 0
   
   ;; QUESTION SECTION:
   ;www.example.com.     IN    A
   
   ;; ANSWER SECTION:
   www.example.com. 10800 IN	CNAME	d111111abcdef8.cloudfront.net.
   ...
   ```

   答案區段會顯示一個 CNAME 記錄，將 www.example.com 查詢路由傳送至 CloudFront 分佈網域名稱 d111111abcdef8.cloudfront.net。如果 `CNAME` 右側的名稱為 CloudFront 分佈的網域名稱，則 CNAME (正式名稱記錄) 記錄配置正確。如果它是任何其他值，例如，Amazon S3 儲存貯體的網域名稱，則 CNAME 紀錄配置錯誤。在這種情況下，請回到步驟 7 並更正 CNAME 紀錄以指向分佈的網域名稱。

1. 使用您的網域名稱造訪 URL，而非您分佈的 CloudFront 網域名稱，以測試備用網域名稱。

1. 在您的應用程式中，請為您的物件變更 URL 以使用備用網域名稱，而非 CloudFront 分佈的網域名稱。

# 移動替代網域名稱
<a name="alternate-domain-names-move"></a>

如果您嘗試將替代網域名稱新增至標準分佈或分佈租用戶，且替代網域名稱已與不同的資源建立關聯，您會收到錯誤訊息。

例如，當您嘗試將 www.example.com 新增至標準分佈或分佈租用戶時，若該替代網域名稱已與其他資源建立關聯，您會收到 `CNAMEAlreadyExists` 錯誤訊息 (您所提供的一個或多個 CNAME 已與不同的資源關聯)。

在這種情況下，您可能想要將現有的替代網域名稱從一個資源移至另一個資源。這是*來源分佈*和*目標分佈*。您可以在標準分佈和/或分佈租用戶之間移動替代網域名稱。

若要移動替代網域名稱，請參閱下列主題：

**Topics**
+ [設定目標標準分佈或分佈租用戶](alternate-domain-names-move-create-target.md)
+ [尋找來源標準分佈或分佈租用戶](alternate-domain-names-move-find-source.md)
+ [移動替代網域名稱](alternate-domain-names-move-options.md)

# 設定目標標準分佈或分佈租用戶
<a name="alternate-domain-names-move-create-target"></a>

您必須先設定目標資源，才能移動替代網域名稱。這是您要移動替代網域名稱的目標標準分佈或分佈租用戶。

------
#### [ Standard distribution ]

**設定目標標準分佈**

1. 請求 TLS 憑證。此憑證包含替代網域名稱做為主體或主體備用網域 (SAN)，或涵蓋您正在移動之替代網域名稱的萬用字元 (\$1)。如果沒有憑證，可以在 AWS Certificate Manager (ACM) 中申請一個憑證，或是從另一個憑證認證機構 (CA) 取得憑證，然後將其匯入 ACM。
**注意**  
您必須在美國東部 (維吉尼亞北部) (`us-east-1`) 區域請求或匯入憑證。

   如需詳細資訊，請參閱《AWS Certificate Manager 使用者指南》**中的[使用主控台申請公有憑證](https://docs.aws.amazon.com/acm/latest/userguide/acm-public-certificates.html#request-public-console)與[在 AWS Certificate Manager 中匯入憑證](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html)章節。

1. 如果尚未建立目標標準分佈，請立即建立。在建立標準分佈的過程中，請將憑證與此標準分佈建立關聯。如需詳細資訊，請參閱[建立分發](distribution-web-creating-console.md)。

   如果您已經有目標標準分佈，請將憑證與標準分佈建立關聯。如需詳細資訊，請參閱[更新分佈](HowToUpdateDistribution.md)。

1. **如果您要在相同 內移動替代網域名稱 AWS 帳戶，請略過此步驟。**

   若要將備用網域名稱從一個移至 AWS 帳戶 另一個，您必須在 DNS 組態中建立 TXT 記錄。此驗證步驟有助於防止未經授權的網域傳輸。CloudFront 會使用此 TXT 記錄來驗證您對替代網域名稱的擁有權。

   在您的 DNS 設定中，建立一筆 DNS TXT 紀錄，將替代網域名稱與目標標準分佈建立關聯。TXT 記錄格式可能會因網域類型而有所不同。
   + 對於子網域，請在替代網域名稱前面指定底線 (`_`)。以下顯示範例 TXT 紀錄。

     `_www.example.com TXT d111111abcdef8.cloudfront.net`
   + 對於 Apex (或根網域)，請在網域名稱前面指定底線和句點 (`_.`)。以下顯示範例 TXT 紀錄。

     `_.example.com TXT d111111abcdef8.cloudfront.net`

------
#### [ Distribution tenant ]

**設定目標分佈租用戶**

1. 請求 TLS 憑證。此憑證包含替代網域名稱做為主體或主體備用網域 (SAN)，或涵蓋您正在移動之替代網域名稱的萬用字元 (\$1)。如果沒有憑證，可以在 AWS Certificate Manager (ACM) 中申請一個憑證，或是從另一個憑證認證機構 (CA) 取得憑證，然後將其匯入 ACM。
**注意**  
您必須在美國東部 (維吉尼亞北部) (`us-east-1`) 區域請求或匯入憑證。

   如需詳細資訊，請參閱《AWS Certificate Manager 使用者指南》**中的[使用主控台申請公有憑證](https://docs.aws.amazon.com/acm/latest/userguide/acm-public-certificates.html#request-public-console)與[在 AWS Certificate Manager 中匯入憑證](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html)章節。

1. 如果尚未建立目標分佈租用戶，請立即建立。做為建立分佈租用戶的一部分，請將憑證與分佈租用戶建立關聯。如需詳細資訊，請參閱[建立分發](distribution-web-creating-console.md)。

   如果您已經有目標分佈租用戶，請將憑證與分佈租用戶建立關聯。如需詳細資訊，請參閱[新增網域和憑證 (分佈租用戶)](managed-cloudfront-certificates.md#vanity-domain-tls-tenant)。

1. **如果您要在相同 內移動替代網域名稱 AWS 帳戶，請略過此步驟。**

   若要將備用網域名稱從一個移至 AWS 帳戶 另一個，您必須在 DNS 組態中建立 TXT 記錄。此驗證步驟有助於防止未經授權的網域傳輸，CloudFront 會使用此 TXT 記錄來驗證替代網域名稱的擁有權。

   在您的 DNS 設定中，建立一筆 DNS TXT 紀錄，將替代網域名稱與目標分佈租用戶建立關聯。TXT 記錄格式可能會因網域類型而有所不同。
   + 對於子網域，請在替代網域名稱前面指定底線 (`_`)。以下顯示範例 TXT 紀錄。

     `_www.example.com TXT d111111abcdef8.cloudfront.net`
   + 對於 Apex (或根網域)，請在網域名稱前面指定底線和句點 (`_.`)。以下顯示範例 TXT 紀錄。

     `_.example.com TXT d111111abcdef8.cloudfront.net`

------

接下來，請參閱下列主題，尋找已與替代網域名稱相關聯的來源標準分佈或分佈租用戶。

# 尋找來源標準分佈或分佈租用戶
<a name="alternate-domain-names-move-find-source"></a>

在您可以將替代網域名稱從一個分佈 (標準或租用戶) 移至另一個分佈之前，請先尋找*來源分佈*。這是替代網域名稱已關聯的資源。當您知道來源和目標分佈資源的 AWS 帳戶 ID 時，您可以決定如何移動替代網域名稱。

**備註**  
我們建議您使用 [ListDomainConflicts](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListDomainConflicts.html) API 操作，因為它同時支援標準分佈和分佈租用戶。
[ListConflictingAliases](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListConflictingAliases.html) API 操作僅支援標準分佈。

請依照這些範例來尋找來源分佈 (標準或租用戶)。

------
#### [ list-domain-conflicts ]

**提示**  
對於標準分佈，您必須擁有 `cloudfront:GetDistribution` 和 `cloudfront:ListDomainConflicts` 許可。
對於分佈租用戶，您必須擁有 `cloudfront:GetDistributionTenant` 和 `cloudfront:ListDomainConflicts` 許可。

**使用 `list-domain-conflicts` 尋找來源標準分佈或分佈租用戶**

1. 請使用 `list-domain-conflicts` 指令，如下列範例所示。

   1. 以網域名稱取代 *www.example.com*。

   1. 針對 `domain-control-validation-resource`，指定[您先前設定的](alternate-domain-names-move-create-target.md)目標標準分佈或分佈租用戶 ID。您必須擁有與涵蓋指定網域的憑證相關聯的標準分佈或分佈租用戶。

   1. 使用 AWS 帳戶 與目標標準分佈或分佈租用戶位於相同 的登入資料來執行此命令。

   **請求**

    此範例會指定分佈租用戶。

   ```
   aws cloudfront list-domain-conflicts \
   --domain www.example.com \
   --domain-control-validation-resource "DistributionTenantId=dt_2x9GhoK0TZRsohWzv1b9It8JABC"
   ```

   **回應**

   對於命令輸出中的每個網域名稱，您可以看到以下內容：
   + 與網域相關聯的資源類型
   + 資源 ID
   + 擁有資源的 AWS 帳戶 ID

   資源 ID 和帳戶 ID 會部分隱藏。這可讓您識別屬於您帳戶的標準分佈或分佈租用戶，並協助保護非您擁有的分佈或分佈租用戶的資訊。

   ```
   {
       "DomainConflicts": [
           {
               "Domain": "www.example.com",
               "ResourceType": "distribution-tenant",
               "ResourceId": "***************ohWzv1b9It8JABC",
               "AccountId": "******112233"
           }
       ]
   }
   ```

   回應會列出與您指定的網域名稱衝突或重疊的所有網域名稱。

**範例**
   + 如果您指定 *tenant1.example.com*，回應會包含 tenant1.example.com 和重疊的萬用字元備用網域名稱 (\$1.example.com，如果有的話)。
   + 如果您指定 *\$1.tenant1.example.com*，回應會包含 \$1.tenant1.example.com 和該萬用字元涵蓋的任何備用網域名稱 (例如 test.tenant1.example.com、dev.tenant1.example.com 等)。

1. 在回應中，尋找您要移動之替代網域名稱的來源標準分佈或分佈租用戶，並記下 AWS 帳戶 ID。

1. 將*來源*標準分佈或分佈租用戶的帳戶 ID，與您在[上一個步驟](alternate-domain-names-move-create-target.md)中建立*目標*標準分佈或分佈租用戶的帳戶 ID 進行比較。然後，您可以判斷來源和目標是否位於相同的 AWS 帳戶中。這可協助您判斷如何移動替代網域名稱。

   如需詳細資訊，請參閱《AWS Command Line Interface 參考》**中的 [https://docs.aws.amazon.com/cli/latest/reference/cloudfront/list-domain-conflicts.html](https://docs.aws.amazon.com/cli/latest/reference/cloudfront/list-domain-conflicts.html) 命令。

------
#### [ list-conflicting-aliases (standard distributions only) ]

**提示**  
您必須擁有目標標準分佈的 `cloudfront:GetDistribution` 和 `cloudfront:ListConflictingAliases` 許可。

**使用 `list-conflicting-aliases` 尋找來源標準分佈**

1. 請使用 `list-conflicting-aliases` 指令，如下列範例所示。

   1. 以替代網域名稱取代 *www.example.com*，用[您先前設定之](alternate-domain-names-move-create-target.md)目標標準分佈的 ID 取代 *EDFDVBD6EXAMPLE*。

   1. 使用與目標標準分佈相同 AWS 帳戶 中的憑證來執行此命令。

   **請求**

    此範例會指定標準分佈。

   ```
   aws cloudfront list-conflicting-aliases \
   --alias www.example.com \
   --distribution-id EDFDVBD6EXAMPLE
   ```

   **回應**

   針對命令輸出中的每個替代網域名稱，您可以看到與替代網域名稱關聯之標準分佈的 ID，以及擁有該標準分佈的 AWS 帳戶 ID。標準分佈和帳戶 ID 會部分隱藏，這樣既可以讓您識別出您擁有的標準分佈和帳戶，同時又可以避免洩漏非您擁有之標準分佈和帳戶的資訊。

   ```
   {
       "ConflictingAliasesList": {
           "MaxItems": 100,
           "Quantity": 1,
           "Items": [
               {
                   "Alias": "www.example.com",
                   "DistributionId": "*******EXAMPLE",
                   "AccountId": "******112233"
               }
           ]
       }
   }
   ```

   回應會列出與您指定的網域名稱衝突或重疊的備用網域名稱。

**範例**
   + 如果您指定 *www.example.com*，則回應會包含 www.example.com 以及 (如果存在) 重疊的萬用字元替代網域名稱 (\$1.example.com)。
   + 如果您指定 *\$1.example.com*，則回應會包含 \$1.example.com 以及該萬用字元所涵蓋的任何替代網域名稱 (例如，www.example.com、test.example.com、dev.example.com 等)。

1. 尋找您要移動之備用網域名稱的標準分佈，並記下 AWS 帳戶 ID。將此帳戶 ID 與您在[上一個步驟](alternate-domain-names-move-create-target.md)中建立目標標準分佈的帳戶 ID 進行比較。然後，您可以判斷這兩個標準分佈是否位於相同 ， AWS 帳戶 以及如何移動替代網域名稱。

   如需詳細資訊，請參閱《AWS Command Line Interface 參考》**中的 [https://docs.aws.amazon.com//cli/latest/reference/cloudfront/list-conflicting-aliases.html](https://docs.aws.amazon.com//cli/latest/reference/cloudfront/list-conflicting-aliases.html) 命令。

------

然後，請參閱下列主題以移動替代網域名稱。

# 移動替代網域名稱
<a name="alternate-domain-names-move-options"></a>

根據您的狀況，從以下內容選擇移動替代網域名稱的方式：

**來源和目標分佈 (標準或租用戶) 位於相同的 AWS 帳戶**  
使用 AWS Command Line Interface (AWS CLI) 中的 **update-domain-association** 命令來移動替代網域名稱。  
此命令適用於所有相同帳戶的移動，包括當替代網域名稱是 Apex 網域時 (也稱為*根網域*，例如 example.com)。

**來源和目標分佈 (標準或租用戶) 位於不同的 AWS 帳戶**  
如果您具有來源標準分佈或分佈租用戶的存取權，替代網域名稱*不是* Apex 網域，而且您尚未使用與該替代網域名稱重疊的萬用字元，請使用萬用字元來移動替代網域名稱。如需詳細資訊，請參閱[使用萬用字源來移動替代網域名稱](#alternate-domain-names-move-use-wildcard)。  
如果您無法存取 AWS 帳戶 具有來源標準分佈或分佈租用戶的 ，您可以嘗試使用 **update-domain-association**命令來移動替代網域名稱。您必須先停用來源標準分佈或分佈租用戶，才能移動替代網域名稱。如需其他說明，請參閱[聯絡 AWS 支援 以移動替代網域名稱](#alternate-domain-names-move-contact-support)。

**注意**  
您可以使用 **associate-alias** 命令，但此命令僅支援標準分佈。請參閱《Amazon CloudFront API 參考》**中的 [AssociateAlias](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_AssociateAlias.html)。

------
#### [ update-domain-association (standard distributions and distribution tenants) ]

**如要使用 `update-domain-association` 移動替代網域名稱**

1. 使用 `update-domain-association` 命令，如下列範例所示。

   1. 以替代網域名稱取代 *example.com*，並指定目標標準分佈或分佈租用戶的 ID。

   1. 使用與目標標準分佈或分佈租用戶相同 AWS 帳戶 中的憑證來執行此命令。
**請注意以下限制**  
除了 `cloudfront:UpdateDomainAssociation` 許可之外，您還必須擁有更新標準分佈的 `cloudfront:UpdateDistribution` 許可。若要更新分佈租用戶，您必須擁有 `cloudfront:UpdateDistributionTenant` 許可。
如果來源和目標分佈 （標準或租用戶） 位於不同位置 AWS 帳戶，您必須先停用來源，才能移動網域。
目標分佈必須依照 [設定目標標準分佈或分佈租用戶](alternate-domain-names-move-create-target.md) 所述的方式設定。

   **請求**

   ```
   aws cloudfront update-domain-association \
     --domain "www.example.com" \
     --target-resource DistributionTenantId=dt_9Fd3xTZq7Hl2KABC \
     --if-match E3UN6WX5ABC123
   ```

   **回應**

   ```
   {
       "ETag": "E7Xp1Y3N9DABC",
       "Domain": "www.example.com",
       "ResourceId": "dt_9Fd3xTZq7Hl2KABC"
   }
   ```

   此命令會從來源標準分佈或分佈租用戶中移除替代網域名稱，並將其新增至目標標準分佈或分佈租用戶。

1. 完全部署目標分佈之後，請更新您的 DNS 組態，將您的網域名稱指向 CloudFront 路由端點。例如，您的 DNS 記錄會將您的備用網域名稱 (`www.example.com`) 指向 CloudFront 提供的網域名稱 d111111abcdef8.cloudfront.net。如果目標是分佈租用戶，請指定連線群組端點。如需詳細資訊，請參閱[將網域指向 CloudFront](managed-cloudfront-certificates.md#point-domains-to-cloudfront)。

------
#### [ associate-alias (standard distributions only) ]

**如要使用 `associate-alias` 移動替代網域名稱**

1. 使用 `associate-alias` 命令，如下列範例所示。

   1. 以替代網域名稱取代 *www.example.com*，以具有目標準分佈 ID 取代 *EDFDVBD6EXAMPLE*。

   1. 使用與目標標準分佈相同 AWS 帳戶 中的憑證來執行此命令。
**請注意以下限制**  
您必須擁有目標標準分佈的 `cloudfront:AssociateAlias` 和 `cloudfront:UpdateDistribution` 許可。
如果來源和目標標準分佈位於相同 中 AWS 帳戶，您必須擁有來源標準分佈的`cloudfront:UpdateDistribution`許可。
如果來源標準分佈和目標標準分佈不同 AWS 帳戶，您必須先停用來源標準分佈。
目標標準分佈必須依照 [設定目標標準分佈或分佈租用戶](alternate-domain-names-move-create-target.md) 所述的方式設定。

      **請求**

      ```
      aws cloudfront associate-alias \
      --alias www.example.com \
      --target-distribution-id EDFDVBD6EXAMPLE
      ```

      此命令會從來源標準分佈中移除該替代網域名稱，並將其移動至目標標準分佈。

1. 目標標準分佈完全部署之後，請更新 DNS 組態，將替代網域名稱的 DNS 紀錄指向目標標準分佈的分佈網域名稱。例如，您的 DNS 記錄會將您的備用網域名稱 (`www.example.com`) 指向 CloudFront 提供的網域名稱 d111111abcdef8.cloudfront.net。

如需詳細資訊，請參閱《AWS CLI 命令參考》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudfront/associate-alias.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudfront/associate-alias.html) 命令。

------

## 使用萬用字源來移動替代網域名稱
<a name="alternate-domain-names-move-use-wildcard"></a>

如果來源分佈與目標分佈 AWS 帳戶 不同，且來源分佈已啟用，您可以使用萬用字元來移動替代網域名稱。

**注意**  
無法使用萬用字元來移動 Apex 網域 (例如 example.com)。若要在來源分佈和目標分佈位於不同的 AWS 帳戶時移動 Apex 網域，請聯絡 支援。如需詳細資訊，請參閱[聯絡 AWS 支援 以移動替代網域名稱](#alternate-domain-names-move-contact-support)。

**使用萬用字源來移動替代網域名稱**
**注意**  
此程序涉及對分佈的多次更新。等待每個分佈完整部署最新的變更後，再進行下一步。

1. 更新目標分佈，以新增涵蓋您要移動之替代網域名稱的萬用字元替代網域名稱。例如，如果您要移動的替代網域名稱為 www.example.com，請將該替代網域名稱 \$1.example.com 新增到目標分佈。若要執行這項操作，目標分佈上的 SSL/TLS 憑證必須包含萬用字元網域名稱。如需詳細資訊，請參閱 [更新分佈](HowToUpdateDistribution.md)。

1. 更新替代網域名稱的 DNS 設定，以指向目標分佈的網域名稱。例如，如果您要移動的替代網域名稱是 www.example.com，請更新 www.example.com 的 DNS 紀錄，以將流量路由至目標分佈的網域名稱 (例如，d111111abcdef8.cloudfront.net)。
**注意**  
在您更新 DNS 設定後，替代網域名稱仍會由來源分佈提供，因為這是替代網域名稱目前設定的所在位置。

1. 更新來源分佈來移除替代網域名稱。如需詳細資訊，請參閱 [更新分佈](HowToUpdateDistribution.md)。

1. 更新目標分佈來新增替代網域名稱。如需詳細資訊，請參閱 [更新分佈](HowToUpdateDistribution.md)。

1. 使用 **dig** (或類似的 DNS 查詢工具)，以驗證替代網域名稱的 DNS 紀錄是否解析為目標分佈的網域名稱。

1. (選用) 更新目標分佈來移除萬用字源替代網域名稱。

## 聯絡 AWS 支援 以移動替代網域名稱
<a name="alternate-domain-names-move-contact-support"></a>

如果來源和目標分佈位於不同的 中 AWS 帳戶，而且您無法存取來源分佈的 AWS 帳戶 或 無法停用來源分佈，您可以聯絡 支援 來移動替代網域名稱。

**聯絡 支援 以移動替代網域名稱**

1. 設定目標分佈，包括指向目標分佈的 DNS TXT 紀錄。如需詳細資訊，請參閱 [設定目標標準分佈或分佈租用戶](alternate-domain-names-move-create-target.md)。

1. [請聯絡 支援](https://console.aws.amazon.com/support/home) 來請求他們驗證您是否擁有該網域，並為您將網域新增到新的 CloudFront 分佈。

1. 完全目標分佈部署之後，請更新 DNS 組態，將替代網域名稱的 DNS 紀錄指向目標分佈的分佈網域名稱。

# 移除替代網域名稱
<a name="alternate-domain-names-remove-domain"></a>

如果您想要停止路由網域或子網域的流量到 CloudFront 分佈，請依照此節中的下列步驟來更新 DNS 組態和 CloudFront 分佈。

您務必要從分佈移除備用網域名稱，並更新您的 DNS 組態。若您想要將網域名稱與另一個 CloudFront 分佈建立關聯，將有助於避免之後發生問題。如果備用網域名稱已與一個分佈建立關聯，即無法以另一個分佈設定。

**注意**  
如果您想要從這個分發移除備用網域名稱來將該地址新增到另一個分發，請按照 [移動替代網域名稱](alternate-domain-names-move.md) 中的步驟。如果您依據此處的步驟 (來移除網域)，然後新增網域到另一個分佈，將有一段時間內網域不會連結到新的分佈，因為 CloudFront 正在傳輸更新到節點。<a name="RemovingADomain"></a>

**從分佈移動備用網域名稱**

1. 若要開始，請將網域的網際網路流量路由至不是 CloudFront 分佈的其他資源，例如 Elastic Load Balancing 負載平衡器。或者，您可以刪除不將流量路由傳送到 CloudFront 的 DNS 記錄。

   執行以下其中一項，取決於您網域的 DNS 服務：
   + **如果您使用的是 Route 53**，請更新或刪除別名記錄或 CNAME 記錄。如需詳細資訊，請參閱[編輯記錄](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-editing.html)或[刪除記錄](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-deleting.html)。
   + **如果您使用的是另一個 DNS 服務供應商**，請使用由 DNS 服務供應商提供的方法更新或刪除將流量導向 CloudFront 的 CNAME 記錄。如需詳細資訊，請參閱 DNS 服務供應商提供的說明文件。

1. 在您更新網域的 DNS 紀錄，請等待變更傳播且 DNS 解析程式會路由流量到新的資源。您可以建立一些使用 URL 中網域的測試連結來確認此步驟是否完成。

1. 登入 AWS 管理主控台 並開啟位於 的 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)，然後執行下列動作來更新您的 CloudFront 分佈以移除網域名稱：

   1. 選擇您希望更新的分佈 ID。

   1. 在 **General (一般)** 索引標籤上，選擇 **Edit (編輯)**。

   1. 在 **Alternate Domain Names (CNAMEs) (正式名稱記錄 (CNAME))** 中，請移除您已不想再用於分佈的備用網域名稱 (或網域名稱)。

   1. 請選擇 **Yes, Edit (是，編輯)**。

# 在備用網域名稱中使用萬用字元
<a name="alternate-domain-names-wildcard"></a>

當您新增備用網域名稱時，可以改為在網域名稱的開頭使用 \$1 萬用字元，而非新增個別子網域。例如，使用替代網域名稱 \$1.example.com，您可以在 URL 中使用任何結尾為 example.com 的網域名稱，例如 www.example.com、product-name.example.com、marketing.product-name.example.com 等。不管網域名稱為何，物件的路徑都是一樣的，例如：
+ www.example.com/images/image.jpg
+ product-name.example.com/images/image.jpg
+ marketing.product-name.example.com/images/image.jpg

按照這些包括萬用字元的備用網域名稱要求：
+ 替代網域名稱必須以星號和點號 (\$1.) 開頭。
+ 您*不能*使用萬用字元來取代子網域名稱的部分，例如：\$1domain.example.com。
+ 您不得取代網域名稱中的子網域，例如：subdomain.\$1.example.com。
+ 所有備用網域名稱 (包括使用萬用字元的備用網域名稱) 都必須涵蓋在憑證的主體別名 (SAN) 下。

萬用字元替代網域名稱 (例如 \$1.example.com) 可以包含其他正在使用中的替代網域名稱，例如 example.com。

# 使用 WebSockets 搭配 CloudFront 分佈
<a name="distribution-working-with.websockets"></a>

Amazon CloudFront 支援使用 WebSocket，這是一種 TCP 型通訊協定，當您在用戶端與伺服器之間需要長時間的雙向連線時，此通訊協定很有用。持久性連線通常是即時應用程式的一項要求。您可能在其中使用 WebSockets 的案例包括社交聊天平台、線上協作工作區、多玩家遊戲，以及可提供即時資料饋送的服務，像是金融交易平台。若為全雙工通訊，透過 WebSocket 連線的資料可以雙向流通。

WebSocket 功能會自動啟用，以使用任何分佈。若要使用 WebSocket，請在連接至分佈的快取行為中設定下列其中一項：
+ 轉送所有檢視器請求標頭到原始伺服器。您可以使用 [AllViewer 受管原始伺服器請求政策](using-managed-origin-request-policies.md#managed-origin-request-policy-all-viewer)。
+ 具體轉送您原始伺服器請求政策中的 `Sec-WebSocket-Key` 和 `Sec-WebSocket-Version` 請求標頭。

## WebSocket 通訊協定的運作方式
<a name="distribution-working-with.websockets.how-it-works"></a>

WebSocket 通訊協定是一種獨立的 TCP 型通訊協定，可讓您避免一些負荷，但可能增加 HTTP 的延遲。

若要建立 WebSocket 連線，用戶端會傳送一般 HTTP 請求，其會使用 HTTP 的升級語意來變更通訊協定。然後，伺服器便可以完成交握。WebSocket 連線會保持開啟狀態，而且用戶端或伺服器可以彼此傳送資料框架，而無需每次建立新連線。

根據預設，WebSocket 通訊協定會使用連接埠 80，進行一般 WebSocket 連線，以及使用連接埠 443，進行透過 TLS 的 WebSocket 連線。您為 CloudFront [檢視器通訊協定政策](DownloadDistValuesCacheBehavior.md#DownloadDistValuesViewerProtocolPolicy) 和 [通訊協定 (僅限自訂原始伺服器)](DownloadDistValuesOrigin.md#DownloadDistValuesOriginProtocolPolicy) 選擇的選項適用於 WebSocket 連線，也適用於 HTTP 流量。

## WebSocket 要求
<a name="distribution-working-with.websockets.requirements"></a>

WebSocket 請求必須必須採取以下標準格式，以符合 [RFC 6455](https://datatracker.ietf.org/doc/html/rfc6455)。

**Example 範例用戶端請求**  

```
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: https://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
```

**Example 範例伺服器回應**  

```
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Protocol: chat
```

如果 WebSocket 連線是由用戶端或伺服器中斷，或由於網路干擾而中斷，則預期用戶端應用程式會重新啟動與伺服器的連線。

## 建議的 WebSocket 標頭
<a name="distribution-working-with.websockets.recomended-settings"></a>

為了避免在使用 WebSockets 時發生非預期的壓縮相關問題，建議您在[原始伺服器請求政策](origin-request-create-origin-request-policy.md)中包含下列標頭：
+ `Sec-WebSocket-Key`
+ `Sec-WebSocket-Version`
+ `Sec-WebSocket-Protocol`
+ `Sec-WebSocket-Accept`
+ `Sec-WebSocket-Extensions`

**注意**  
目前，CloudFront 僅支援透過 HTTP/1.1 通訊協定的 WebSocket 連線。

# 請求用於列入允許清單的 Anycast 靜態 IP
<a name="request-static-ips"></a>

您可以從 CloudFront 請求 Anycast 靜態 IP 以搭配您的分佈使用。任何傳送靜態 IP 清單只能包含 IPv4 IP 地址或 IPv4 和 IPv6 IP 地址。這些 IP 地址專用於您的 AWS 帳戶 ，並分散到各個地理區域。

您可以申請 21 個 Anycast 靜態 IP 位址，並將它們加入網路提供者的允許清單，以便讓存取您應用程式的使用者免除資料傳輸費用。或者，您可以在輸出安全防火牆內使用這些靜態 IP，以控制與已核准應用程式的流量交換。Anycast 靜態 IP 清單可與一或多個分佈搭配使用。

如果您想要直接為 CloudFront 分佈啟用 Apex 網域路由 (例如 example.com)，您可以為此使用案例請求 3 個 Anycast 靜態 IP 位址。然後，在您的 DNS 中新增 A 記錄，將 Apex 網域指向 CloudFront。

Anycast 靜態 IP 可與[伺服器名稱指示 (SNI)](https://en.wikipedia.org/wiki/Server_Name_Indication) 搭配使用。如需詳細資訊，請參閱[使用 SNI 提供 HTTPS 請求 (適用於大部分用戶端)](cnames-https-dedicated-ip-or-sni.md#cnames-https-sni)。

## 先決條件
<a name="anycast-static-ip-prereqs"></a>

若要將 Anycast 靜態 IP 清單與 CloudFront 分佈搭配使用，您必須為分佈的價格分級選取**使用所有節點**。如需定價的詳細資訊，請參閱 [CloudFront 定價](https://aws.amazon.com/cloudfront/pricing/)。

## 請求 Anycast 靜態 IP 清單
<a name="request-static-ip-list"></a>

請求 Anycast 靜態 IP 清單以搭配 CloudFront 分佈使用。

**請求 Anycast 靜態 IP 清單**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在左側導覽窗格中，選擇**靜態 IP**。

1. 針對**請求**，請選擇連結以聯絡 CloudFront 支援工程。

1. 提供工作負載資訊 (每秒請求位元組數和每秒請求數)。

1. CloudFront 支援工程審查您的請求。審核程序最多可能需要兩天的時間。

請求獲准後，您可以建立 Anycast 靜態 IP 清單，並將其與一或多個分佈建立關聯。

## 建立 Anycast 靜態 IP 清單
<a name="create-static-ip-list"></a>

在開始之前，請先請求 Anycast 靜態 IP 清單，如上一節所述。

**建立 Anycast 靜態 IP 清單**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在左側導覽窗格中，選擇**靜態 IP**。

1. 選擇**建立 Anycast IP 清單**。

1. 針對**名稱**，輸入名稱。

1. 針對**靜態 IP 使用案例**，選取適當的使用案例。

1. 針對 **IP 地址類型**，指定下列其中一個選項：
   + **IPv4** – 配置僅 IPv4 地址的清單 
   + **Dualstack** – 配置 IPv4 和 IPv6 地址的清單

1. 檢閱服務條款和定價，然後選擇**提交**。

建立靜態 IP 清單後，您可以在靜態 IP 清單詳細資訊頁面上檢視配置的 IP 位址。您也可以將分佈與靜態 IP 清單建立關聯。

## 將 Anycast 靜態 IP 清單與現有分佈建立關聯
<a name="associate-static-ip-list-existing"></a>

在開始之前，請求並建立 Anycast 靜態 IP 清單，如前幾節所述。

確認下列分佈設定與您的 Anycast 靜態 IP 清單相容：
+ [價格分級](DownloadDistValuesGeneral.md#DownloadDistValuesPriceClass) 具有**使用所有節點 （最佳效能）** 設定。
+ 如果啟用 [IPv6](cloudfront-enable-ipv6.md)，您可以關聯雙堆疊 Anycast 靜態 IP 清單。僅具有 IPv4 地址的 Anycast 靜態 IP 清單無法與已啟用 IPv6 的分佈建立關聯。

**將 Anycast 靜態 IP 清單與現有分佈建立關聯**
+ 執行以下任意一項：
  + 從靜態 IP 清單詳細資訊頁面關聯靜態 IP 清單：

    1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

    1. 在左側導覽窗格中，選擇 **固定 IP**。

    1. 選擇固定 IP 清單的名稱。

    1. 選擇**關聯分佈**。

    1. 選取一或多個分佈，然後選擇**關聯分佈**。
  + 從分佈詳細資訊頁面關聯靜態 IP 清單：

    1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

    1. 在左側導覽窗格中，選擇**分佈**。

    1. 選擇您分佈的名稱。

    1. 在**設定**窗格下的**一般**標籤中，選擇**編輯**。

    1. 針對 **Anycast IP 清單**，選取要與此分佈搭配使用的 Anycast 靜態 IP 清單。

    1. 選擇**儲存變更**。

## 將 Anycast 靜態 IP 清單與新分佈建立關聯
<a name="associate-static-ip-list-new"></a>

在開始之前，請求並建立 Anycast 靜態 IP 清單，如前幾節所述。

**將 Anycast 靜態 IP 清單與新分佈建立關聯**
+ 建立新的 分佈。如需詳細資訊，請參閱[在主控台中建立 CloudFront 分佈](distribution-web-creating-console.md#create-console-distribution)。針對**設定**，您必須進行下列選擇，才能使用 Anycast 靜態 IP 清單：
  + 針對 **Anycast IP 清單**，從下拉式清單中選取您的 Anycast 靜態 IP 清單。
  + 針對**價格方案**，選擇**使用所有邊緣節點 (最佳效能)**。
  + **注意：**如果您的 Anycast 靜態 IP 僅使用 IPv4 而非雙堆疊，請在 **IPv6** 中選取**關閉**。

完成建立分佈。您可以根據您的需求，選擇 Anycast 靜態 IP 清單中不需要的任何其他設定和組態。

如需 Anycast 靜態 IP 清單相關配額的詳細資訊，請參閱 *AWS 一般參考* 中的 [Amazon CloudFront 端點和配額](https://docs.aws.amazon.com/general/latest/gr/cf_region.html#limits_cloudfront)。

## 將 Anycast 靜態 IP 清單與連線群組建立關聯
<a name="associate-anycast-ip-connection-group"></a>

開始之前，請請求並建立 Anycast 靜態 IP 清單，如前幾節所述。

**將 Anycast 靜態 IP 清單與新的連線群組建立關聯**

1. 請確定您已在**設定**下啟用連線群組。

1. 建立連線群組。如需詳細資訊，請參閱[建立自訂連線群組](custom-connection-group.md)。

1. 針對**設定**，您必須進行下列選擇，才能使用 Anycast 靜態 IP 清單。

   1. 針對 **Anycast IP 清單**，從下拉式清單中選取您的 Anycast 靜態 IP 清單。

1. 完成建立連線群組。

**注意**  
如果您的 Anycast 靜態 IP 僅使用 IPv4 而非雙堆疊，請針對 **IPv6** 選取**關閉**。

如需 Anycast 靜態 IP 清單相關配額的詳細資訊，請參閱 *Amazon Web Services 一般參考* 中的 [Amazon CloudFront 端點和配額](https://docs.aws.amazon.com/general/latest/gr/cf_region.html#limits_cloudfront)。

## 更新 Anycast 靜態 IP 清單
<a name="update-static-ip-list"></a>

建立 Anycast 靜態 IP 地址並將其關聯至分佈之後，您可以變更 Anycast 靜態 IP 清單的 IP 地址類型。

**更新 Anycast 靜態 IP 清單**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在左側導覽窗格中，選擇**靜態 IP**。

1. 選擇固定 IP 清單的名稱。

1. 選擇**編輯**。

1. 針對 **IP 地址類型**，指定下列其中一個選項：
   + **IPv4** – 配置僅 IPv4 地址的清單 
   + **Dualstack** – 配置 IPv4 和 IPv6 地址的清單
**注意**  
如果您的關聯分佈已啟用 IPv6，則無法選擇 **IPv4**。 IPv6 若要這麼做，請先停用 IPv6，然後才能更新 Anycast 靜態 IP 的 IP 地址類型。如需詳細資訊，請參閱[為 CloudFront 分佈啟用 IPv6](cloudfront-enable-ipv6.md)。

1. 選擇**提交**以儲存變更並更新 Anycast 靜態 IP 清單。

# 使用 IPAM 在 CloudFront 使用自有 IP
<a name="bring-your-own-ip-address-using-ipam"></a>

本教學課程說明如何使用 IPAM 來管理 CloudFront Anycast 靜態 IP 清單的 BYOIP CIDRs。

**Topics**
+ [什麼是 Anycast 靜態 IPs的 BYOIP？](#what-is-byoip-anycast)
+ [為什麼要使用此功能？](#why-use-byoip)
+ [先決條件](#byoip-prerequisites)
+ [步驟 1：請求 Anycast 靜態 IP 清單](#request-anycast-static-ip-list)
+ [步驟 2：建立 Anycast 靜態 IP 清單](#create-anycast-static-ip-list)
+ [步驟 3：建立 CloudFront 分佈](#create-cloudfront-distribution)
+ [步驟 4：與 CloudFront 資源建立關聯](#associate-with-cloudfront-resources)
+ [步驟 5：準備遷移](#prepare-for-migration)
+ [步驟 6：全域公告 CIDR](#advertise-cidr-globally)

## 什麼是 Anycast 靜態 IPs的 BYOIP？
<a name="what-is-byoip-anycast"></a>

CloudFront 支援透過 IPAM 全球服務的 BYOIP 攜帶您自己的 IPv4 和 IPv6 地址。透過 IPAM 的統一界面，客戶可以使用自己的 IP 地址 (BYOIP) 建立專用 IP 地址集區，並將其指派給 CloudFront 分發，同時利用 AWS 全球內容交付網路來交付其應用程式和內容。您的 IP 地址會使用任何廣播路由，從多個 CloudFront 節點同時公告。

## 為什麼要使用此功能？
<a name="why-use-byoip"></a>

**在允許清單中控制網路存取，以：**
+ 允許列出網路供應商的 IP 地址，以免除已核准瀏覽者的資料費用
+ 設定傳出安全防火牆，將流量限制為僅核准的應用程式

**簡化操作和遷移**
+ 透過新增指向靜態 IPs 的 A 記錄，將頂點網域 (example.com：//) 直接路由至 CloudFront 
+ 從其他 CDNs 遷移而不更新 IP 基礎設施或防火牆組態
+ 與合作夥伴和用戶端維護現有的 IP 允許清單
+ 在多個 CloudFront 分佈之間共用單一 Anycast 靜態 IP 清單

**一致的品牌**
+ 移至 時，請保留現有的 IP 地址空間以保持一致的品牌 AWS

## 先決條件
<a name="byoip-prerequisites"></a>

若要搭配 CloudFront 分佈使用 Anycast 靜態 IP 清單，您必須為分佈的價格分級選取**使用所有節點**。如需定價的詳細資訊，請參閱 [CloudFront 定價](https://aws.amazon.com/cloudfront/pricing/)。對於自攜 IP (BYOIP)，在使用僅限 IPv6的 IPv6。 IPv4-only 對於雙堆疊 BYOIP，請關聯雙堆疊 Anycast 靜態 IP 清單，並為分發或連線群組啟用 IPv6。

請先完成下列步驟，再開始：
+ IPAM 設定：請參閱[整合 IPAM 與帳戶](https://docs.aws.amazon.com/vpc/latest/ipam/enable-integ-ipam.html)和[建立 IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html)。
+ 網域驗證：[驗證網域控制](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam-domain-verification-methods.html)。
+ 建立頂層集區：請遵循[將您自己的 IPv4 CIDR 帶到 IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam-console-ipv4.html) 和/或[將您自己的 IPv6 CIDR 帶到 IPAM 中的步驟 1 到 ](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam-console-ipv6.html)2。
+ 建立具有全域地區設定的 IPAM 集區，以搭配 CloudFront 使用。如需詳細資訊，請參閱[使用 IPAM 將您自己的 IP 帶到 CloudFront](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-cloudfront.html)。

**注意**  
需要**三個 /24 和/或 /48** IPv4 CIDR 區塊。

## 步驟 1：請求 Anycast 靜態 IP 清單
<a name="request-anycast-static-ip-list"></a>

請求 Anycast 靜態 IP 清單以搭配 CloudFront 分佈使用。<a name="request-anycast-static-ip-list-procedure"></a>

**請求 Anycast 靜態 IP 清單**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在左側導覽窗格中，選擇**靜態 IP**。

1. 針對**請求**，請選擇連結以聯絡 CloudFront 支援工程。

1. 提供工作負載資訊 (每秒請求位元組數和每秒請求數)。

1. CloudFront 支援工程審查您的請求。審核程序最多可能需要兩天的時間。

1. 請求獲准後，您可以建立 Anycast 靜態 IP 清單，並將其與一或多個分佈建立關聯。

## 步驟 2：建立 Anycast 靜態 IP 清單
<a name="create-anycast-static-ip-list"></a>

在開始之前，請先請求 Anycast 靜態 IP 清單，如上一節所述。<a name="create-anycast-static-ip-list-procedure"></a>

**建立 Anycast 靜態 IP 清單**

1. 登入 AWS 管理主控台 ，並在 開啟 CloudFront 主控台[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在左側導覽窗格中，選擇**靜態 IP**。

1. 選擇**建立 Anycast IP 清單**。

1. 針對**名稱**，輸入名稱。

1. 針對**靜態 IP 使用案例**，選取 **BYOIP** 做為您的使用案例。

1. 針對 **IP 地址類型**，挑選 **IPv4** 或 **Dualstack**。

1. 對於 **IPAM 集**區，請從它們中挑選您透過 IPAM 和 CIDR 群組佈建的 IPAM 集區 (s)。

下列步驟與標準區域 BYOIP 程序不同，並建立全域服務的模式：

### AWS CLI
<a name="create-anycast-cli"></a>

安裝或更新至最新版本的 AWS CLI。如需詳細資訊，請參閱[「AWS Command Line Interface 使用者指南」](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

1. 擷取佈建 CIDR 區塊之 IPAM 集區的 IpamPoolArn。如需詳細資訊，請參閱[僅使用 CLI 將您自己的公有 IPv4 CIDR 帶到 IPAM AWS ，](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam-ipv4.html)或[僅使用 CLI AWS 將您自己的公有 IPv6 CIDR 帶到 IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam-ipv6.html)。

1. 使用 CIDR 區塊和 IPAM 組態建立 Anycast IP 清單：

   對於 IPv4：

   ```
   aws cloudfront create-anycast-ip-list \
       --name byoip-aip-1 \
       --ip-count 3 \
       --region us-east-1 \
       --ip-address-type ipv4 \
       --ipam-cidr-configs '[{"Cidr":"1.1.1.0/24","IpamPoolArn":"arn:aws:ec2::123456789012:ipam-pool/ipam-pool-005d58a8aa8147abc"},{"Cidr":"2.2.2.0/24","IpamPoolArn":"arn:aws:ec2::123456789012:ipam-pool/ipam-pool-005d58a8aa8147abc"},{"Cidr":"3.3.3.0/24","IpamPoolArn":"arn:aws:ec2::123456789012:ipam-pool/ipam-pool-005d58a8aa8147abc"}]'
   ```

   對於 IPv6：

   ```
   aws cloudfront create-anycast-ip-list \
       --name byoip-aip-dualstack \
       --ip-count 3 \
       --region us-east-1 \
       --ip-address-type dualstack \
       --ipam-cidr-configs '[{"Cidr":"1.1.1.0/24","IpamPoolArn":"arn:aws:ec2::123456789012:ipam-pool/ipam-pool-005d58a8aa8147abc"},{"Cidr":"2.2.2.0/24","IpamPoolArn":"arn:aws:ec2::123456789012:ipam-pool/ipam-pool-005d58a8aa8147abc"},{"Cidr":"3.3.3.0/24","IpamPoolArn":"arn:aws:ec2::123456789012:ipam-pool/ipam-pool-005d58a8aa8147abc"},{"Cidr":"2600:9000:a100::/48","IpamPoolArn":"arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a3b7c9e2f41d6789"},{"Cidr":"2600:9000:a200::/48","IpamPoolArn":"arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a3b7c9e2f41d6789"},{"Cidr":"2600:9000:a300::/48","IpamPoolArn":"arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a3b7c9e2f41d6789"}]'
   ```

**注意**  
您無法從集區中選取特定 IP 地址。CloudFront 會自動執行此操作。

## 步驟 3：建立 CloudFront 分佈
<a name="create-cloudfront-distribution"></a>

對於 CloudFront，您可以遵循指示[來建立標準分佈](distribution-web-creating-console.md)或使用[多租用戶分佈](distribution-config-options.md)。

## 步驟 4：與 CloudFront 資源建立關聯
<a name="associate-with-cloudfront-resources"></a>
+ [建立 Anycast 靜態 IP 清單與現有分佈的關聯](request-static-ips.md#associate-static-ip-list-existing)
+ [將 Anycast 靜態 IP 清單與新分佈建立關聯](request-static-ips.md#associate-static-ip-list-new)
+ [將 Anycast 靜態 IP 清單與連線群組建立關聯](request-static-ips.md#associate-anycast-ip-connection-group)

## 步驟 5：準備遷移
<a name="prepare-for-migration"></a>

如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的[步驟 4：準備遷移](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-cloudfront.html#step-4-prepare-for-migration)。

## 步驟 6：全域公告 CIDR
<a name="advertise-cidr-globally"></a>

如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的[步驟 5：全域公告 CIDR](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-cloudfront.html#step-5-advertise-cidr-globally)。

# 使用 gRPC 搭配 CloudFront 分佈
<a name="distribution-using-grpc"></a>

Amazon CloudFront 支援 gRPC，這是一種以 HTTP/2 為基礎建置的開放原始碼遠端程序呼叫 (RPC) 架構。gRPC 提供雙向串流和二進位通訊協定緩衝承載，因此非常適合需要低延遲通訊的應用程式。

CloudFront 會接收您的 gRPC 請求，並將其直接代理到您的原始伺服器。您可以使用 CloudFront 來代理四種類型的 gRPC 服務：
+ 一元 RPC
+ 伺服器串流 RPC
+ 用戶端串流 RPC
+ 雙向串流 RPC

## gRPC 如何在 CloudFront 中運作
<a name="how-grpc-works-cloudfront"></a>

若要在 CloudFront 中設定 gRPC，請將提供 gRPC 服務的原始伺服器設定為分佈的原始伺服器。您可以使用同時提供非 gRPC 和 gRPC 服務的原始伺服器。CloudFront 會根據 `Content-Type` 標頭判斷傳入請求是 gRPC 請求還是 HTTP/HTTPS 請求。如果請求的 `Content-Type` 標頭值為 `application/grpc`，則該請求會被視為 gRPC 請求，且 CloudFront 會將請求代理到您的原始伺服器。

**注意**  
如要啟用發佈以處理 gRPC 請求，請將 HTTP/2 納入為支援的 HTTP 版本之一，並允許 HTTP 方法 (包括 `POST`)。您的 gRPC 原始伺服器端點必須設定為支援 HTTPS，因為 CloudFront 端僅支援安全 (以 HTTP 為基礎的) gRPC 連線。gRPC 僅支援端對端 HTTPS。如果您使用的是自訂原始伺服器，請確認您的[通訊協定](DownloadDistValuesOrigin.md#DownloadDistValuesOriginProtocolPolicy)設定支援 HTTPS。

若要為您的分佈啟用 gRPC 支援，請完成下列步驟：

1. 更新分佈的快取行為以允許 HTTP 方法，包括 `POST` 方法。

1. 在您選取 `POST` 方法後，選取出現的 gRPC 核取方塊。

1. 將 **HTTP/2** 指定為其中一個支援的 HTTP 版本。

如需詳細資訊，請參閱下列主題：
+ [允許透過 HTTP/2 進行 gRPC 請求](DownloadDistValuesCacheBehavior.md#enable-grpc-distribution)
+ 《*Amazon CloudFront API 參考*》中的 [GrpcConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GrpcConfig.html)

由於 gRPC 僅適用於不可快取的 API 流量，因此您的快取設定不會影響 gRPC 請求。您可以使用原始伺服器請求政策將自訂標頭新增至傳送至 gRPC 原始伺服器的 gRPC 請求。您可以搭配 CloudFront 使用 AWS WAF 來管理對 gRPC 分佈的存取、控制機器人，以及保護您的 gRPC 應用程式免受網路入侵攻擊。CloudFront gRPC 支援 [CloudFront Functions](cloudfront-functions.md)。

除了 HTTPS 狀態之外，您還會收到 gRPC 回應的 grpc-status。如需 grpc-status 的可能值清單，請參閱[狀態碼及其在 gRPC 中的使用狀況](https://grpc.github.io/grpc/core/md_doc_statuscodes.html)。

**備註**  
gRPC 不支援以下 CloudFront 功能：  
[自訂錯誤回應](GeneratingCustomErrorResponses.md)
 gRPC 不支援[原始伺服器容錯移轉](high_availability_origin_failover.md)，因為 gRPC 使用 `POST` 方法。只有當檢視器請求的 HTTP 方法為 `GET`、`HEAD` 或 `OPTIONS` 時，CloudFront 才會容錯移轉至次要原始伺服器。
CloudFront 會將 gRPC 請求直接傳送至原始伺服器，並略過區域邊緣快取 (REC)。由於 gRPC 會略過 REC，所以 gRPC 不支援 [Lambda@Edge](lambda-at-the-edge.md) 或 [Origin Shield](origin-shield.md)。
gRPC 不支援 AWS WAF 請求內文檢查規則。如果您在 Web ACL 上為分佈啟用這些規則，任何使用 gRPC 的請求都會忽略請求本文檢查規則。所有其他 AWS WAF 規則仍將適用。如需詳細資訊，請參閱[為分佈啟用 AWS WAF](WAF-one-click.md)。