

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

# 整合 MediaTailor 與 MediaPackage 和 CDN
<a name="mediapackage-integration"></a>

AWS Elemental MediaTailor 與 整合 AWS Elemental MediaPackage ，透過內容交付網路 (CDN) 提供個人化影片廣告。MediaPackage 是一種just-in-time影片封裝和起始服務，可準備和保護您的影片內容，以便透過網際網路交付。它會取得您的即時或隨需視訊內容，並將其封裝為串流格式，例如 HLS 和 DASH，使其可供各種裝置上的瀏覽者使用。

當您將 MediaPackage 與 MediaTailor 和 CDN 結合時，您可以建立完整的串流工作流程，大規模交付個人化廣告。CDN 會全域分發您的內容，減少延遲並改善瀏覽者體驗，同時 MediaTailor 會將目標性廣告插入您的串流。

本主題著重於讓 MediaTailor、MediaPackage 和 CDN 一起運作的基本整合步驟。如需進階組態選項、疑難排解和監控指引，請參閱 [後續步驟](#emp-cdn-next-steps)。

## 了解 MediaPackage 和 CDN 工作流程
<a name="emp-cdn-overview"></a>

在設定整合之前，請務必了解 MediaPackage、MediaTailor 和 CDN 如何一起運作：

1. **內容準備**：MediaPackage 會接收您的即時或隨需視訊內容，並將其封裝為串流格式 (HLS 或 DASH 資訊清單和區段）。

1. **廣告插入**：MediaTailor 向 MediaPackage 請求資訊清單、插入個人化廣告，並向瀏覽者提供修改的資訊清單。

1. **全域分佈**：您的 CDN 會快取內容區段 （來自 MediaPackage) 和廣告區段 （來自 MediaTailor) 並分發給全球瀏覽者。

1. **觀眾播放**：影片播放器透過 CDN 請求資訊清單，它會在 MediaTailor （資訊清單） 和 MediaPackage （內容區段） 之間適當地路由請求。

此架構提供數種優點：
+ **可擴展性**：CDN 可處理高檢視器負載，而不會影響原始伺服器
+ **效能**：內容從最接近瀏覽者的節點交付
+ **成本效益**：透過快取降低頻寬成本
+ **可靠性**：多個節點提供備援

## 先決條件
<a name="emp-cdn-prerequisites"></a>

開始之前，請確定您已設定下列元件：

1. **MediaPackage 端點**：已設定的 MediaPackage 端點，可接收和封裝您的影片內容。如需設定說明，請參閱 [ MediaPackage 使用者指南中的 MediaPackage 入門](https://docs.aws.amazon.com/mediapackage/latest/ug/getting-started.html)。 MediaPackage 

1. **MediaTailor 組態**：使用 MediaPackage 端點做為內容原始伺服器的 MediaTailor MediaTailor 組態。如需設定說明，請參閱 [整合 MediaTailor 廣告插入的內容來源](integrating-origin.md)。

1. **CDN 分佈**：設定為使用串流媒體的 CDN 分佈 （例如 CloudFront)。如需設定說明，請參閱 CloudFront 開發人員指南中的[建立分佈](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html)。

1. **廣告決策伺服器**：已設定的廣告決策伺服器，會傳回 VAST 或 VMAP 回應以進行廣告插入。

## 步驟 1：設定基本 CDN 設定
<a name="mediapackage-best-practices"></a>

適當的 CDN 組態對於成功的 MediaPackage 整合至關重要。不正確的設定可能會導致播放失敗、快取效能不佳和成本增加。如果沒有正確的快取政策和查詢參數轉送，您的 CDN 可能無法正確交付資訊清單，或可能完全略過快取，導致高原始伺服器負載和降低檢視器體驗。

### 設定基本快取設定
<a name="mediapackage-cache-control"></a>

設定基本快取至關重要，因為 MediaPackage 使用特定的快取控制標頭來最佳化內容交付。如果沒有適當的快取設定，您的 CDN 可能會忽略這些標頭，導致不必要的原始伺服器請求和增加的延遲。請依照下列步驟來確保最佳的快取行為：

若要設定與 MediaPackage 搭配使用的基本快取：

1. 在 CloudFront 主控台中開啟 CloudFront 分佈設定。

1. 選取或建立 MediaPackage 原始伺服器的快取政策。

1. 啟用「原始快取控制標頭」選項。

1. 允許 MediaPackage 透過其快取控制標頭控制快取行為。

此基本組態可讓 MediaPackage 自動為不同的內容類型設定適當的快取持續時間。若要使用特定 TTL 值和效能調校實作進階快取最佳化，請先完成此基本設定，然後繼續 [針對 MediaTailor 和 MediaPackage 內容交付最佳化 CDN 快取](cdn-emp-caching.md)。

### 設定基本查詢參數
<a name="mediapackage-query-strings"></a>

查詢參數組態對 MediaPackage 功能至關重要。您的 CDN 必須轉送特定查詢參數，才能啟用時間轉移檢視和低延遲串流等功能。不正確的查詢參數設定可能會阻止這些功能運作，我擔心會降低快取效率。請依照下列步驟設定查詢參數轉送：

若要確保您的 CDN 轉送所需的查詢參數至 MediaPackage：

1. 在您的 CloudFront 分佈設定中，選取或建立資訊清單請求的快取政策。

1. 在「快取金鑰設定」下，選取「包含指定的查詢字串」。

1. 新增下列基本查詢參數：
   + `start` 和 `end` - 用於時間轉移檢視功能。這些參數會傳遞至 MediaPackage，以定義特定內容時段進行啟動和追查檢視
   + `_HLS_msn` 和 `_HLS_part` - 支援 LL-HLS 播放請求
   + `m` - 用於擷取端點的修改後 ti/compame。MediaPackage 回應一律包含 `?m=###`標籤，以擷取端點的修改時間。如果內容已使用此標籤的不同值快取，CloudFront 會請求新的資訊清單，而不是提供快取的版本
   + `aws.manifestfilter` - 用於資訊清單篩選功能。如果您使用資訊清單篩選，則必須包含此參數來設定分佈，將`aws.manifestfilter`查詢字串轉送至 MediaPackage 原始伺服器，這是資訊清單篩選功能運作所需的

1. 僅包含 MediaPackage 使用的查詢字串。包含不必要的查詢字串可透過為相同內容建立多個快取變化來降低快取效率。

這些參數可透過 CDN 啟用基本 MediaPackage 功能。如果您需要針對不同的訂閱方案或裝置類型實作內容篩選，請先完成此基本查詢參數設定，然後繼續 [使用 MediaTailor、MediaPackage 和 CDN 設定資訊清單篩選](cdn-emp-manifest-filtering.md)。

如需有關 MediaTailor 如何將 `start`和 `end` 等查詢參數傳遞至 MediaPackage 以進行時間轉移檢視的資訊，請參閱 [原始伺服器的 MediaTailor 查詢參數處理](origin-query-parameters.md)中的 [MediaTailor 資訊清單查詢參數](manifest-query-parameters.md)。

### 設定 LL-HLS 的回應逾時
<a name="mediapackage-response-timeout"></a>

逾時組態對於低延遲 HLS 至關重要，因為 LL-HLS 使用「封鎖請求」機制，其中 CDN 會等待新的內容區段。如果您的逾時太短，在 MediaPackage 可以回應新的客群之前，請求將會失敗，導致播放中斷和檢視器體驗不佳。設定適當的逾時，以確保順暢播放 LL-HLS：

如果您使用的是低延遲 HLS，請設定 CDN 逾時設定：

1. 在您的 CDN 設定中，找到原始伺服器逾時組態。

1. 將回應逾時值設定為組件持續時間的至少三倍。

1. 例如，如果您的組件持續時間為 0.3 秒，請將逾時設定為至少 0.9 秒。

這可確保 CDN 在使用封鎖請求機制時，等待 MediaPackage 回應的時間夠長。

## 步驟 2：驗證您的整合
<a name="manifest-filtering-integration"></a>

測試您的整合對於確保所有元件在瀏覽者遇到問題之前都能正確運作至關重要。失敗的整合可能會導致播放中斷、遺失廣告或效能不佳。此驗證程序可協助您識別和解決受控環境中的問題。

設定 CDN 設定後，透過測試從內容請求到廣告插入的完整工作流程，確認您的整合是否正常運作。

### 步驟 2.1：測試基本播放
<a name="manifest-filtering-overview"></a>

基本播放測試會驗證 CDN 是否正確處理資訊清單請求，並將其轉送至 MediaTailor。此測試有助於識別快取政策、查詢參數轉送和資訊清單處理的組態問題。請依照下列步驟測試基本資訊清單交付：

透過 CDN 請求資訊清單，測試您的基本整合是否正常運作：

1. 使用 Web 瀏覽器或 curl 透過 CDN 請求資訊清單 URL。

1. 確認資訊清單載入成功，並同時包含內容和廣告區段。

1. 檢查資訊清單中的內容區段 URLs是否指向您的 CDN 網域。

1. 確認廣告區段 URLs也指向您的 CDN 網域。

如果資訊清單正確載入並包含預期的 URLs，則您的基本整合正在運作。如需完整的測試方法和進階驗證程序，請參閱 [CDN 和 MediaTailor 整合的測試和驗證](cdn-integration-testing.md)。若要設定整合效能和運作狀態的完整監控，請參閱 [監控 MediaPackage、CDN 和 MediaTailor 整合的效能](cdn-emp-monitoring.md)。

### 步驟 2.2：測試影片播放
<a name="manifest-filtering-cdn-config"></a>

影片播放測試可確保您的完整整合end-to-end運作，包括透過 CDN 的廣告插入和內容交付。此測試會驗證內容區段和廣告區段都已正確快取和交付，並且檢視器體驗符合您的品質標準。請依照下列步驟測試完整的播放功能：

測試已插入廣告的影片播放是否正常運作：

1. 使用影片播放器 （例如 Video.js 或 HLS.js) 透過 CDN 播放您的內容。

1. 確認影片播放順暢，而不會緩衝問題。

1. 確認在播放期間的預期時間插入廣告。

1. 檢查內容和廣告區段是否都從 CDN 載入 （而不是直接從原始伺服器載入）。

如果播放與廣告搭配順暢運作，您的整合會正常運作。如需完整的測試方法和進階驗證程序，請參閱 [CDN 和 MediaTailor 整合的測試和驗證](cdn-integration-testing.md)。如果您遇到任何播放問題、緩衝或廣告插入問題，請參閱 [針對 MediaPackage、CDN 和 MediaTailor 整合進行故障診斷](cdn-emp-troubleshooting.md)。

## 後續步驟
<a name="emp-cdn-next-steps"></a>

完成基本整合後，您可以實作進階功能和最佳化：

**進階 CDN 最佳化**  
如需詳細的快取最佳化、TTL 組態和效能調校，請參閱 [針對 MediaTailor 和 MediaPackage 內容交付最佳化 CDN 快取](cdn-emp-caching.md)。

**資訊清單篩選**  
若要實作分層服務、裝置最佳化或存取控制的內容篩選，請參閱 [使用 MediaTailor、MediaPackage 和 CDN 設定資訊清單篩選](cdn-emp-manifest-filtering.md)。

**疑難排解**  
如果您遇到整合問題，請參閱 [針對 MediaPackage、CDN 和 MediaTailor 整合進行故障診斷](cdn-emp-troubleshooting.md)。

**效能監控**  
若要設定全面監控並了解關鍵效能指標，請參閱 [監控 MediaPackage、CDN 和 MediaTailor 整合的效能](cdn-emp-monitoring.md)。

# 使用 MediaTailor、MediaPackage 和 CDN 設定資訊清單篩選
<a name="cdn-emp-manifest-filtering"></a>

AWS Elemental MediaTailor 使用資訊清單篩選搭配 AWS Elemental MediaPackage 來自訂透過內容交付網路 (CDN) 交付給不同檢視器的資訊清單中包含哪些音訊和視訊串流。這對於實作分層服務方案、裝置特定最佳化或內容存取控制特別有用。

本主題特別著重於實作資訊清單篩選功能。實作資訊清單篩選之前，您必須完成基本的內容交付網路整合設定。如果您尚未設定基本 MediaPackage 和內容交付網路整合，請從 開始[整合 MediaTailor 與 MediaPackage 和 CDN](mediapackage-integration.md)。

## 資訊清單篩選功能
<a name="manifest-filtering-overview"></a>

實作資訊清單篩選之前，請先了解您可以使用此功能完成哪些作業：

### 核心篩選功能
<a name="filtering-capabilities"></a>

資訊清單篩選提供多種關鍵功能，可協助您控制內容交付：
+ 限制瀏覽者存取進階內容 （例如 4K HEVC)
+ 以具有適當串流的特定裝置類型為目標
+ 根據音訊取樣率、語言或視訊轉碼器篩選內容
+ 將不同的品質方案交付給不同的訂閱者

### 常用案例
<a name="filtering-use-cases"></a>

這些使用案例示範資訊清單篩選如何解決特定業務需求：

**訂閱方案**  
提供基本訂閱者較低的解析度串流，同時讓高級訂閱者存取 4K 內容  
範例：基本方案限制為 720p，Premium 方案最多可獲得 4K

**裝置最佳化**  
根據裝置功能自動提供適當的串流  
範例：行動裝置獲得較低的位元速率、智慧型TVs獲得更高的品質

**頻寬管理**  
在尖峰用量期間限制串流品質，以管理網路成本  
範例：在高流量事件期間降低最大位元速率

**區域內容**  
根據檢視器位置提供不同的音訊語言或內容變體  
範例：自動篩選本機語言音軌

如需資訊清單篩選概念的詳細資訊，請參閱 AWS Elemental MediaPackage 《 使用者指南》中的[資訊清單篩選](https://docs.aws.amazon.com/mediapackage/latest/ug/manifest-filtering.html)。

## 設定 CDN 進行資訊清單篩選
<a name="cdn-filtering-configuration"></a>

資訊清單篩選的 CDN 組態至關重要，因為您的 CDN 必須轉送`aws.manifestfilter`查詢參數至 MediaPackage，才能篩選運作。如果沒有適當的查詢字串轉送，篩選參數將由 CDN 分割，而且所有檢視器都會收到未篩選的資訊清單，無論其訂閱層或裝置功能為何。此組態可確保您的篩選邏輯達到 MediaPackage 並如預期般運作。

若要透過 CDN 啟用資訊清單篩選，您需要設定查詢字串轉送：

1. 在您的 CloudFront 分佈中，建立或編輯資訊清單請求的快取行為。

1. 針對**快取政策，**建立新的政策或編輯現有的政策。

1. 在**快取金鑰設定**下，選擇「包含指定的查詢字串」。

1. 將 `aws.manifestfilter`新增至允許的查詢字串清單。

1. 如果您也使用其他 MediaPackage 功能，請新增其查詢參數：
   + `start` 和 `end` - 用於時間轉移檢視
   + `time_delay` - 用於時間延遲功能
   + `_HLS_msn` 和 `_HLS_part` - 適用於 LL-HLS

如需建立分佈的詳細資訊，請參閱《Amazon CloudFront 開發人員指南》中的[建立分佈](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html)。

## 實作用戶端篩選
<a name="client-side-filtering-implementation"></a>

用戶端實作可讓您定義影片播放器和應用程式請求篩選內容的方式。此組態會根據每個檢視器的訂閱層級、裝置功能或其他條件，決定檢視器收到的內容。適當的實作可確保瀏覽者只會接收他們應存取的內容，同時維持最佳的 CDN 快取效率。

若要在影片播放器和應用程式中實作資訊清單篩選：

### 篩選的運作方式
<a name="filtering-workflow"></a>

篩選程序的運作方式如下：

1. 您的影片播放器或應用程式會請求包含篩選條件參數的資訊清單 URL

1. CDN 會將請求 （包括查詢參數） 轉送至 MediaTailor

1. 請求原始伺服器資訊清單時，MediaTailor 會將篩選條件參數傳遞至 MediaPackage 

1. MediaPackage 會套用篩選條件，並傳回僅包含符合您條件變體的自訂資訊清單

1. MediaTailor 會處理篩選資訊清單以進行廣告插入，並將其傳回給玩家

### 用於篩選的 URL 格式
<a name="filtering-url-format"></a>

了解正確的 URL 格式對於成功篩選實作至關重要。URL 格式不正確會導致篩選參數遭到忽略或導致 HTTP 錯誤。URL 結構必須包含篩選條件參數，做為您的 CDN 轉送至 MediaPackage 的查詢字串。請依照下列步驟實作適當的 URL 格式：

若要在影片播放器中實作資訊清單篩選：

1. 修改玩家的資訊清單請求 URLs以包含適當的篩選條件參數。

1. 使用下列 URL 格式搭配查詢參數：

   ```
   https://CloudFront-Domain/v1/master/MediaTailor-Config/index.m3u8?aws.manifestfilter=video_codec:h264;audio_language:en-US
   ```

1. 當您的玩家請求此 URL 時，MediaTailor 會將這些參數傳遞至 MediaPackage，產生篩選的資訊清單。

## 常見的篩選案例
<a name="filtering-examples"></a>

使用這些範例來實作常見的篩選案例：

**裝置特定內容交付**  
若要根據裝置功能進行篩選，請將此參數新增至資訊清單請求：  

```
aws.manifestfilter=video_codec:h264;audio_sample_rate:0-44100
```
此範例會將內容限制為 H.264 視訊和音訊，取樣速率最高可達 44.1 kHz，適用於行動裝置。

**Premium 內容限制**  
若要限制對高位元速率內容的存取，請將此參數新增至資訊清單請求：  

```
aws.manifestfilter=video_bitrate:0-9000000
```
此範例將影片位元速率限制為 9 Mbps 或更低，適用於基本訂閱層。

**語言選擇**  
若要篩選特定音訊語言，請將此參數新增至資訊清單請求：  

```
aws.manifestfilter=audio_language:fr,en-US,de
```
此範例僅包含法文、美式英文和德文音軌。

**以解析度為目標**  
若要篩選特定影片解析度，請將此參數新增至資訊清單請求：  

```
aws.manifestfilter=video_height:240-360,720-1080
```
此範例包含高度介於 240-360 像素和 720-1080 像素的影片串流，不包括中範圍解析度。

**以轉碼器為基礎的篩選**  
若要篩選特定視訊轉碼器，請將此參數新增至資訊清單請求：  

```
aws.manifestfilter=video_codec:h264,h265
```
此範例僅包含 H.264 和 H.265 視訊串流，不包括其他轉碼器。

## 特殊考量和限制
<a name="filtering-considerations"></a>

若要避免實作資訊清單篩選時的常見問題：

### 技術限制
<a name="technical-limitations"></a>
+ 對於 TS 資訊清單，請使用音訊轉譯群組，以避免移除使用篩選掉的音訊串流進行多工處理的視訊串流
+ 在 TS 和 CMAF 資訊清單中，音訊取樣率和視訊位元速率不容易在資訊清單中顯示以供驗證
+ 附加至媒體播放清單或區段的請求參數將導致 HTTP 400 錯誤

### 錯誤情況
<a name="error-conditions"></a>
+ 如果篩選結果顯示空白資訊清單 （沒有串流符合篩選條件），MediaPackage 將傳回 HTTP 400 錯誤
+ 衝突的篩選條件組態 （端點篩選條件 \$1 查詢參數） 會導致 HTTP 404 錯誤
+ 無效的篩選條件語法或不支援的篩選條件類型會導致 HTTP 400 錯誤

### 效能考量
<a name="performance-considerations"></a>
+ 每個唯一的篩選條件組合都會建立個別的快取項目，進而降低快取效率
+ 具有許多條件的複雜篩選條件可能會影響資訊清單產生效能
+ 考慮使用端點層級篩選條件進行靜態篩選案例，以改善快取效能

## 測試您的篩選實作
<a name="filtering-testing"></a>

測試資訊清單篩選實作對於確保瀏覽者根據其存取層級和裝置功能接收正確的內容至關重要。失敗的篩選可能會導致瀏覽者收到不正確的品質等級、不支援的格式，或他們不應存取的內容。全面測試有助於在這些問題影響瀏覽者之前識別和解決這些問題。

若要驗證資訊清單篩選是否正常運作：

1. 請求具有不同篩選條件參數的資訊清單，並驗證結果

1. 檢查篩選的資訊清單是否僅包含預期的串流

1. 測試邊緣案例 （空白結果、無效的篩選條件），以確保適當的錯誤處理

1. 確認您的 CDN 已正確轉送篩選條件參數

1. 使用不同的裝置和玩家進行測試，以確保相容性

如需疑難排解篩選問題，請參閱*疑難排解 MediaPackage CDN 整合問題*。

如果您遇到 HTTP 400 錯誤、空白資訊清單或篩選參數無法如預期運作，請參閱 [針對 MediaPackage、CDN 和 MediaTailor 整合進行故障診斷](cdn-emp-troubleshooting.md) 以取得特定資訊清單篩選疑難排解指引。

# 針對 MediaTailor 和 MediaPackage 內容交付最佳化 CDN 快取
<a name="cdn-emp-caching"></a>

AWS Elemental MediaTailor 使用 AWS Elemental MediaPackage 做為內容原始伺服器時， 需要適當的內容交付網路 (CDN) 快取組態，才能獲得最佳效能。MediaPackage 提供特定的快取控制標頭，可告知內容交付網路快取不同類型的內容的時間長度。遵循這些建議可確保順暢播放和高效的內容交付。

本主題特別著重於最佳化快取行為，以最大化效能並降低成本。在實作進階快取最佳化之前，請確定您已完成基本的內容交付網路整合設定。如果您尚未設定基本整合，請從 開始[整合 MediaTailor 與 MediaPackage 和 CDN](mediapackage-integration.md)。

## MediaPackage 快取控制標頭
<a name="emp-cache-control-headers"></a>

MediaPackage 會為不同的內容類型設定特定的 TTL 值，以最佳化快取行為：

**多變體播放清單 (HLS 和 LL-HLS)**  
TTL：媒體區段的一半持續時間  
原因：這些播放清單會隨著新客群的推出而變更，因此需要經常更新

**媒體播放清單 （一般 HLS)**  
TTL：媒體區段的一半持續時間  
原因：與多變體播放清單類似，這些更新會隨著內容進行

**媒體播放清單 (LL-HLS)**  
TTL：1 秒  
原因：低延遲串流需要非常頻繁的更新

**TS 媒體區段和初始化區段**  
TTL：1209600 秒 (14 天）  
原因：媒體區段一旦建立就不會變更，因此可以長時間快取

**CMAF 媒體區段和初始化區段**  
TTL：1209600 秒 (14 天）  
原因：與 TS 區段一樣，這些區段在建立後是不可變的

如需所有 MediaTailor 工作流程和其他快取最佳化策略的完整 TTL 建議，請參閱 [CDN 和 MediaTailor 整合的快取最佳化](cdn-optimize-caching.md)。

## 設定 CDN 快取政策
<a name="cdn-cache-policy-configuration"></a>

適當的快取政策組態對於最佳效能和成本效益至關重要。不同類型的內容 （資訊清單、區段、初始化檔案） 有不同的快取需求。使用個別快取行為可讓您針對每個內容類型最佳化快取、改善快取命中率並減少原始伺服器負載。如果沒有適當的快取政策，您可能會遇到不必要的原始伺服器請求、成本增加和播放效能不佳。

若要正確遵守 MediaPackage 快取控制標頭並最佳化快取：

1. 在 CloudFront 主控台中開啟 CloudFront 分佈設定。

1. 為不同的內容類型建立個別的快取行為：
   + 資訊清單請求 (\$1.m3u8、\$1.mpd)
   + 媒體區段 (\$1.ts、\$1.mp4、\$1.m4s)
   + 初始化區段

1. 對於每個快取行為，請使用下列設定建立或選取快取政策：
   + 啟用「原始快取控制標頭」選項
   + 設定「原始請求政策」以轉送必要的標頭
   + 根據內容類型設定查詢字串轉送

### 資訊清單快取行為
<a name="manifest-cache-behavior"></a>

對於資訊清單請求 (\$1.m3u8、\$1.mpd)：
+ **路徑模式**：\$1.m3u8 和 \$1.mpd
+ **快取政策**：榮譽原始伺服器快取控制標頭
+ **查詢字串**：轉送特定參數 （請參閱 [最佳化查詢字串轉送](#cdn-query-string-optimization))
+ **標頭**：轉送所有標頭 （如需最低需求，請參閱 [MediaTailor CDN 整合所需的標頭](cdn-configuration.md#cdn-required-headers))

### 媒體區段快取行為
<a name="segment-cache-behavior"></a>

對於媒體區段 (\$1.ts、\$1.mp4、\$1.m4s)：
+ **路徑模式**：\$1.ts、\$1.mp4、\$1.m4s
+ **快取政策**：榮譽原始伺服器快取控制標頭 (14 天 TTL)
+ **查詢字串**：無 （區段不使用查詢參數）
+ **壓縮**：啟用 以提高交付效能

## 最佳化查詢字串轉送
<a name="cdn-query-string-optimization"></a>

查詢字串最佳化對於快取效率至關重要，因為不必要的查詢參數會為相同內容建立多個快取變化。每個唯一的查詢參數組合都會建立個別的快取項目，以減少快取命中率並增加原始伺服器請求。透過僅轉送 MediaPackage 實際使用的查詢字串，您可以最大限度地提高快取效率，同時保持完整的功能。

將 CDN 設定為僅轉送 MediaPackage 使用的查詢字串，以提高快取效率：

**基本查詢字串**  
`start` 和 `end` - 用於時間轉移檢視時段  
`time_delay` - 用於在資訊清單內容上套用時間延遲  
`_HLS_msn`、 `_HLS_m`和 `_HLS_part` - 適用於 LL-HLS 播放請求

**功能特定的查詢字串**  
`aws.manifestfilter` - 用於[資訊清單篩選](cdn-emp-manifest-filtering.md)

**重要**  
請勿在快取金鑰中包含任何其他查詢字串。MediaPackage 會忽略無法辨識的參數，並透過建立不必要的快取變化來降低快取效率。

## 效能最佳化技術
<a name="cache-performance-optimization"></a>

這些最佳化是在 CDN （例如 CloudFront) 上設定，而不是在 MediaPackage 或 MediaTailor 中設定。實作這些額外的最佳化，以最大化快取效能：

### 原始伺服器遮罩
<a name="origin-shield-configuration"></a>

原始伺服器遮罩可在 CDN 節點和 MediaPackage 端點之間提供額外的快取層。這可減少到達 MediaPackage 端點的請求數量，這可以改善效能並降低成本，尤其是在流量激增期間或快取命中率低於最佳時。原始伺服器遮罩特別適用於即時串流，其中多個節點可能會同時請求相同的內容。

啟用原始伺服器遮罩以減少 MediaPackage 端點的負載：

1. 在您的 CloudFront 分佈中，為您的 MediaPackage 原始伺服器啟用 Origin Shield。

1. 選取 MediaPackage 端點附近的原始伺服器遮罩區域。

1. 這會建立額外的快取層，以減少對 MediaPackage 的請求。

### 壓縮組態
<a name="compression-settings"></a>

針對文字型回應啟用壓縮：
+ 啟用資訊清單檔案的壓縮 (\$1.m3u8、\$1.mpd)
+ 請勿壓縮媒體區段 （已壓縮）
+ 確保所有標頭都轉送至 MediaPackage （如需最低需求，請參閱 [MediaTailor CDN 整合所需的標頭](cdn-configuration.md#cdn-required-headers))

## 監控快取效能
<a name="cache-monitoring-metrics"></a>

追蹤這些關鍵指標以確保最佳快取效能：

**快取命中率**  
目標：媒體客群為 90% 或更高，資訊清單為 70% 或更高  
低比率可能表示不正確的 TTL 設定或不必要的查詢參數

**原始請求磁碟區**  
監控到達 MediaPackage 端點的請求  
大量可能表示快取問題

**快取金鑰變化**  
檢閱快取金鑰模式以識別不必要的變化  
太多變化會降低快取效率

實作這些快取最佳化之後，請設定監控以追蹤其有效性。如需監控快取命中率、原始伺服器請求模式和其他關鍵效能指標的指引，請參閱 [監控 MediaPackage、CDN 和 MediaTailor 整合的效能](cdn-emp-monitoring.md)。如果您發現快取效能不佳或未預期的原始伺服器請求，請參閱 [針對 MediaPackage、CDN 和 MediaTailor 整合進行故障診斷](cdn-emp-troubleshooting.md) 進行故障診斷步驟。

# 監控 MediaPackage、CDN 和 MediaTailor 整合的效能
<a name="cdn-emp-monitoring"></a>

AWS Elemental MediaTailor 需要有效的監控，才能維持 AWS Elemental MediaPackage 和內容交付網路 (CDN) 整合的最佳效能。本主題針對要追蹤的關鍵指標、要使用的監控工具，以及如何設定主動問題偵測提醒提供指引。

設定監控之前，請確定您的基本整合正常運作。如果您尚未完成基本內容交付網路整合設定，請從 開始[整合 MediaTailor 與 MediaPackage 和 CDN](mediapackage-integration.md)。如果您需要對透過監控發現的問題進行故障診斷，請參閱 [CDN 整合疑難排解](cdn-emp-troubleshooting.md)。

## 關鍵效能指標
<a name="key-performance-metrics"></a>

監控這些基本指標，以確保 MediaPackage 和 CDN 整合的最佳效能：

### CDN 效能指標
<a name="cdn-metrics"></a>

如需完整的 CDN 效能指標，包括快取命中率目標、原始請求磁碟區監控和回應時間基準，請參閱 CDN 最佳化指南[CDN 和 MediaTailor 整合的效能基準](cdn-performance-benchmarks.md)中的 。

CDN 指標的關鍵 EMP 特定考量事項：

**EMP 快取控制標頭**  
**要驗證的內容**：確保您的 CDN 遵守 EMP 的快取控制標頭，以獲得最佳 TTL 行為  
**預期行為**：根據 EMP 的標頭，不同的內容類型應具有不同的快取持續時間  
如需 EMP 快取最佳化的詳細指引，請參閱 [針對 MediaTailor 和 MediaPackage 內容交付最佳化 CDN 快取](cdn-emp-caching.md)。

**查詢參數影響**  
**要監控的內容**：追蹤 EMP 特定的查詢參數如何影響快取效率  
**最佳化目標**：確保快取金鑰中僅包含必要的 EMP 查詢參數

**CDN 回應時間**  
**要監控的內容**：追蹤不同內容類型的回應時間 （資訊清單與區段）。  
**目標值**：  
+ 快取內容：少於 100 毫秒
+ 原始請求：少於 500 毫秒

### MediaPackage 效能指標
<a name="emp-metrics"></a>

**錯誤率**  
**要監控的內容**：從 CDN 和 MediaPackage 端點監控 HTTP 錯誤率。請特別注意 4xx 錯誤，這可能表示組態問題。  
**金鑰錯誤代碼**：  
+ 400 個錯誤：通常與資訊清單篩選問題相關
+ 404 錯誤：可能表示路由或組態問題
+ 504 錯誤：逾時問題，特別是 LL-HLS

**請求磁碟區和模式**  
**要監控的內容**：追蹤 MediaPackage 端點的請求模式，以識別用量趨勢和容量需求。  
**要監看的模式**：  
+ 尖峰使用時間
+ 請求的地理分佈
+ 內容類型分佈 （即時與隨需）

### 延遲指標
<a name="latency-metrics"></a>

**End-to-end延遲**  
**要監控的內容**：對於 LL-HLS 實作，監控從內容擷取到檢視器播放end-to-end延遲。高延遲可能表示 CDN 組態問題。  
**目標值**：  
+ LL-HLS：不到 3 秒的glass-to-glass延遲
+ 一般 HLS：少於 30 秒

**資訊清單產生時間**  
**要監控的內容**：MediaPackage 產生資訊清單所需的時間，尤其是套用篩選時。  
**目標值**：資訊清單產生少於 200 毫秒

## 監控工具和設定
<a name="monitoring-tools"></a>

設定全面的監控工具對於維持最佳效能以及在問題影響瀏覽者之前快速識別問題至關重要。如果沒有適當的監控，效能降低、快取效率低落或整合問題可能會被忽略，直到觀眾的播放品質不佳為止。正確的監控設定可讓您了解 MediaPackage 和 CDN 整合的所有層面。

使用這些 AWS 服務和工具來監控您的 MediaPackage 和 CDN 整合：

### Amazon CloudWatch
<a name="cloudwatch-monitoring"></a>

Amazon CloudWatch 透過從這兩個服務收集和儲存指標，為監控 MediaPackage 和 CDN 整合提供了基礎。適當的 CloudWatch 組態可確保您擁有識別效能趨勢、疑難排解問題和最佳化整合所需的資料。如果沒有 CloudWatch 指標，您將無法看見系統效能，而且在問題變得嚴重之前可能無法偵測到問題。

設定 CloudWatch 監控以進行全方位指標收集：

1. **MediaPackage 指標**：啟用 MediaPackage 端點的 CloudWatch 指標，以追蹤請求磁碟區、錯誤率和回應時間。

1. **CDN 指標**：設定 CloudWatch 以收集 CloudFront 指標，包括快取命中率、原始伺服器請求計數和錯誤率。

1. **自訂指標**：為特定業務 KPIs例如檢視器參與度或內容熱門度。

### CloudWatch 儀表板
<a name="dashboard-setup"></a>

建立全方位儀表板以視覺化您的指標：

1. **概觀儀表板**：顯示整體系統運作狀態的高階指標

1. **CDN 效能儀表板**：詳細 CDN 指標，包括快取效能和地理分佈

1. **MediaPackage 效能儀表板**：MediaPackage 特定的指標，包括請求模式和錯誤率

1. **延遲儀表板**：不同內容類型和區域的End-to-end延遲指標

### 日誌分析
<a name="log-analysis"></a>

設定日誌分析以進行詳細疑難排解：

1. **CDN 存取日誌**：啟用和分析 CDN 存取日誌，以了解請求模式並識別問題

1. **MediaPackage CloudWatch 日誌**：監控 MediaPackage 日誌是否有錯誤和效能問題

1. **日誌彙總**：使用 Amazon CloudWatch Logs Insights 或第三方工具來分析日誌模式

## 設定提醒和通知
<a name="alerting-setup"></a>

警示組態對於主動偵測和解決問題至關重要。如果沒有適當的提醒，問題可能會在大幅影響瀏覽者體驗或導致服務中斷之前未被發現。設定良好的提醒可協助您在問題影響瀏覽者之前識別和解決問題，並確保您的團隊收到需要立即關注的關鍵問題通知。

設定主動提醒，在問題影響瀏覽者之前識別問題：

### 關鍵警示
<a name="critical-alerts"></a>

設定重大問題的立即提醒：
+ **高錯誤率**：當 4xx 或 5xx 錯誤率在 5 分鐘內超過 5% 時發出提醒
+ **快取命中率下降**：當資訊清單的快取命中率低於 70% 或區段的 85% 時發出警示
+ **高延遲**：end-to-end延遲超過目標閾值時發出警示
+ **原始伺服器請求峰值**：原始伺服器請求相較於基準增加 50% 以上時發出警示

### 警告提醒
<a name="warning-alerts"></a>

針對可能表示發生問題的趨勢設定警告提醒：
+ **逐漸效能降低**：回應時間在 30 分鐘期間增加 20% 時發出警示
+ **快取效率趨勢**：當快取命中率顯示隨時間下降的趨勢時發出警示
+ **異常流量模式**：針對請求量或地理分佈中的意外變更發出提醒

## 使用監控資料進行最佳化
<a name="performance-optimization"></a>

利用監控資料來持續改善效能：

### 定期效能審查
<a name="regular-reviews"></a>

1. **每週審查**：分析每週效能趨勢並識別最佳化機會

1. **每月容量規劃**：使用流量模式來規劃容量需求和 CDN 最佳化

1. **每季架構審查**：評估整體架構效率並識別需要改進的領域

### 常見最佳化動作
<a name="optimization-actions"></a>

根據監控資料，請考慮下列最佳化動作：
+ **快取政策調整**：根據實際的內容更新模式修改 TTL 值。如需詳細的 TTL 最佳化指引，請參閱 [CDN 和 MediaTailor 整合的快取最佳化](cdn-optimize-caching.md)。
+ **地理最佳化**：在高流量區域中新增 CDN 節點
+ **查詢參數最佳化**：移除片段快取不必要的查詢參數
+ **原始伺服器遮罩組態**：在具有高原始伺服器請求磁碟區的區域中實作原始伺服器遮罩

如需 MediaPackage 特有的詳細監控指引，請參閱 [ MediaPackage 使用者指南中的監控](https://docs.aws.amazon.com/mediapackage/latest/ug/monitoring.html) MediaPackage。

# 針對 MediaPackage、CDN 和 MediaTailor 整合進行故障診斷
<a name="cdn-emp-troubleshooting"></a>

AWS Elemental MediaTailor 與 AWS Elemental MediaPackage 和 內容交付網路 (CDN) 的整合可能會遇到影響播放、快取或其他整合功能的常見問題。當您遇到播放問題、快取問題或其他整合相關錯誤時，請使用本指南。

如需完整的 CDN 故障診斷指引，包括通用快取效能問題、HTTP 錯誤解決、測試程序和適用於所有 MediaTailor 實作的診斷技術，請參閱 [故障診斷 CDN 整合](cdn-troubleshooting.md)。本節著重於 MediaPackage 特定的疑難排解需求。

在疑難排解之前，請確定您已正確完成基本整合設定。如果您尚未設定整合，或需要檢閱設定步驟，請參閱 [整合 MediaTailor 與 MediaPackage 和 CDN](mediapackage-integration.md)。如需在解決問題後最佳化快取效能的指引，請參閱 [CDN 快取](cdn-emp-caching.md)。

## 資訊清單篩選錯誤
<a name="manifest-filtering-errors"></a>

根據記錄的錯誤條件，MediaPackage 資訊清單篩選功能的問題：

**具有資訊清單篩選的 HTTP 400 錯誤**  
**症狀**：具有`aws.manifestfilter`參數的請求會傳回 HTTP 400 錯誤請求  
**驗證原因 （來自 AWS 文件）**：  
+ 篩選條件會產生空白資訊清單 （沒有串流符合篩選條件）
+ 無效的篩選條件參數名稱或值
+ 格式錯誤的查詢字串語法
+ 重複或重複的篩選條件參數
+ 篩選條件參數字串超過 1024 個字元
+ 套用至媒體播放清單或客群的查詢參數 （不支援）
**解決方案：**  

1. 檢閱您的篩選條件參數，以確保它們符合可用的內容串流。如果篩選導致沒有相符的串流，MediaPackage 會傳回 HTTP 400。

1. 根據支援的參數名稱和值格式驗證篩選條件語法。

1. 檢查查詢字串中是否有重複的參數。

1. 確保篩選條件參數僅套用至多變量播放清單，而非媒體播放清單或區段。

1. 確認您的總參數字串少於 1024 個字元。
**參考**：[AWS Elemental MediaPackage 資訊清單篩選錯誤條件](https://docs.aws.amazon.com/mediapackage/latest/userguide/error-conditions-and-handling.html)

**資訊清單篩選無法運作 (HTTP 200 但未套用篩選）**  
**症狀**：請求傳回 HTTP 200，但資訊清單包含所有串流，而不是篩選的子集  
**可能原因：**  
+ CDN 未轉送`aws.manifestfilter`查詢參數至 MediaPackage
+ 在可用串流中找不到篩選條件參數 （傳回 HTTP 200 的未篩選資訊清單）
**解決方案：**  

1. 確認您的 CDN 快取政策`aws.manifestfilter`包含在轉送的查詢字串清單中。

1. 直接針對 MediaPackage 端點 （繞過 CDN) 測試篩選條件參數，以驗證它們是否如預期般運作。

1. 檢查篩選條件值是否符合內容串流的實際特性。
**參考**：[AWS Elemental MediaPackage 資訊清單篩選錯誤條件](https://docs.aws.amazon.com/mediapackage/latest/userguide/error-conditions-and-handling.html)

## 診斷程序
<a name="validated-diagnostic-steps"></a>

系統化診斷程序可協助您快速且有效率地識別整合問題的根本原因。遵循結構化方法可避免浪費在不正確假設上的時間，並確保您解決實際問題，而不是症狀。這些以證據為基礎的診斷步驟旨在隔離問題，並引導您找到適當的解決方案。

請遵循這些以證據為基礎的診斷步驟來識別問題：

### 分析快取效能
<a name="cache-performance-analysis"></a>

快取效能分析對於 EMP 整合至關重要，因為快取效率不佳會導致原始伺服器負載增加、成本提高和潛在的播放問題。

如需全面的快取效能疑難排解，包括快取命中率分析、快取金鑰最佳化和系統化診斷步驟，請參閱主要 CDN 疑難排解指南[CDN 快取效能問題](diagnose-performance-issues.md#cache-performance-troubleshooting)中的 。

EMP 特定的快取考量事項：
+ **EMP 快取控制標頭**：確認您的 CDN 遵守 EMP 的快取控制標頭，而不是覆寫它們
+ **EMP 查詢參數**：確保快取金鑰中僅包含必要的 EMP 查詢參數
+ **EMP TTL 行為**：確認不同的 EMP 內容類型具有適當的快取持續時間

如需最佳化 EMP 快取政策和 TTL 設定的詳細指導，請參閱 [針對 MediaTailor 和 MediaPackage 內容交付最佳化 CDN 快取](cdn-emp-caching.md)。

### 驗證資訊清單篩選組態
<a name="manifest-filtering-validation"></a>

資訊清單篩選驗證至關重要，因為篩選問題可能會導致瀏覽者收到不正確的內容、不支援的格式或他們不應存取的內容。系統化測試有助於識別問題是否與 CDN 組態、篩選條件參數語法或內容可用性相關。

有系統地測試資訊清單篩選功能：

1. 直接針對 MediaPackage 端點 （繞過 CDN) 測試篩選條件參數，以驗證它們是否正常運作。

1. 比較篩選和未篩選的資訊清單，以確認包含/排除預期的串流。

1. 確認您的 CDN 快取政策轉送`aws.manifestfilter`查詢參數。

1. 檢查 HTTP 400 錯誤，並根據記錄的錯誤條件進行比對。

如果您需要在解決問題後實作或修改資訊清單篩選，請參閱 [使用 MediaTailor、MediaPackage 和 CDN 設定資訊清單篩選](cdn-emp-manifest-filtering.md) 以取得完整的設定指引。

### 驗證查詢參數組態
<a name="query-parameter-validation"></a>

確保您的 CDN 僅轉送必要的查詢參數：

1. 檢閱您的 CDN 快取政策以確認其僅包含 AWS 建議的參數：
   + `aws.manifestfilter` - 用於資訊清單篩選
   + `aws.manifestsettings` - 用於時間轉移檢視
   + `_HLS_msn` 和 `_HLS_part` - 適用於 LL-HLS 支援

1. 從快取金鑰移除任何其他查詢參數，因為 MediaPackage 會忽略它們並降低快取效率。

**參考**：[使用 AWS Elemental MediaPackage 和 CDN CDNs](https://docs.aws.amazon.com/mediapackage/latest/userguide/cdns.html)

## 錯誤碼參考
<a name="documented-error-reference"></a>

記載錯誤條件及其原因的參考：

**HTTP 400 錯誤請求 （資訊清單篩選）**  
**記錄的原因**：  
+ 套用篩選條件會導致空白資訊清單
+ 無效的參數名稱或值
+ 格式錯誤的查詢字串語法
+ 重複的篩選條件參數
+ 參數字串超過 1024 個字元
+ 媒體播放清單或客群上的查詢參數
**參考**：[MediaPackage 資訊清單篩選錯誤條件](https://docs.aws.amazon.com/mediapackage/latest/userguide/error-conditions-and-handling.html)

**HTTP 200 OK （未套用篩選）**  
**記錄的原因**：  
+ 在可用串流中找不到篩選條件參數 （傳回未篩選的資訊清單）
+ 只有篩選後存在的字幕串流 （傳回未篩選的資訊清單）
**參考**：[MediaPackage 資訊清單篩選錯誤條件](https://docs.aws.amazon.com/mediapackage/latest/userguide/error-conditions-and-handling.html)

## 其他疑難排解資源
<a name="additional-resources"></a>

對於本主題未涵蓋的問題，請參閱下列官方 AWS 資源：
+ [從 預覽資訊清單 AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/userguide/endpoints-preview.html) - 使用資訊清單預覽來疑難排解內容封裝問題
+ [提高 CloudFront 快取命中率](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cache-hit-ratio.html) - CDN 快取最佳化的完整指南
+ [資訊清單篩選](https://docs.aws.amazon.com/mediapackage/latest/userguide/manifest-filtering.html) - MediaPackage 篩選功能的完整指南