設定與 MediaTailor 的基本 CloudFront 整合 - AWS Elemental MediaTailor

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

設定與 MediaTailor 的基本 CloudFront 整合

AWS Elemental MediaTailor 與 Amazon CloudFront 整合可改善瀏覽者的內容交付效能。本主題會引導您設定 MediaTailor 的基本 CloudFront 分佈。透過此整合,您的瀏覽者可以透過 CloudFront 網路存取個人化內容。您也將了解如何為不同的內容類型設定適當的快取。

如需透過 CloudFront 傳遞查詢參數以進行授權和路由的資訊,請參閱 MediaTailor 資訊清單查詢參數。如需使用動態變數的進階路由,請參閱 多個內容來源的 MediaTailor 網域變數

先決條件

使用 MediaTailor 設定 CloudFront 之前,請確定您有下列項目:

  • 具備建立和管理 CloudFront 分佈許可的作用中 AWS 帳戶

  • 設定的 MediaTailor 播放組態 (請參閱 使用 AWS Elemental MediaTailor 插入廣告)

  • 您的內容原始伺服器已正確設定並可存取

  • 對影片串流概念的基本了解 (HLS/DASH)

設定 CloudFront 分佈

請依照下列步驟建立和設定 MediaTailor 的 CloudFront 分佈:

建立 MediaTailor 的 CloudFront 分佈
  1. 登入 AWS 管理主控台,並在 https://https://console.aws.amazon.com/cloudfront/v3/home 開啟 CloudFront 主控台。

  2. 選擇 Create Distribution (建立分佈)

  3. 對於原始網域,輸入您的 MediaTailor 端點 URL (例如 a1b2c3d4.mediatailor.us-west-2.amazonaws.com)。

  4. 對於通訊協定僅選取 HTTPS

  5. 針對名稱,輸入可協助您識別此原始伺服器的名稱 (例如 mediatailor-origin)。

  6. 設定預設快取行為設定:

    1. 對於路徑模式,請使用預設值 (*)。

    2. 對於自動壓縮物件,選取

    3. 針對檢視器通訊協定政策,選取將 HTTP 重新導向至 HTTPS

    4. 針對允許的 HTTP 方法,選取 GET、HEAD

    5. 針對快取政策,選取 CachingDisabled

    6. 針對原始伺服器請求政策,選取 AllViewer 轉送預設行為的所有標頭。

      注意

      預設行為使用 AllViewer 安全地處理不符合特定路徑模式的任何內容。資訊清單和區段的特定快取行為將使用適當的政策單獨設定。

  7. 設定分佈設定:

    1. 針對價格類別,選取最符合您對象位置的選項。

    2. 針對 AWS WAF Web ACL,選取現有的 Web ACL 或保留為不啟用安全性保護

    3. 對於預設根物件,請保留空白。

    4. 針對標準記錄,選取開啟以啟用記錄。

  8. 選擇 Create Distribution (建立分佈)

設定快取行為

建立分佈之後,您需要設定其他快取行為,以適當處理不同類型的內容。本節涵蓋 CloudFront 的基本快取行為設定。

如需完整的快取最佳化,包括進階 TTL 設定、快取金鑰組態和效能調校,請參閱 CDN 最佳化指南CDN 和 MediaTailor 整合的快取最佳化中的 。

設定資訊清單快取行為

請勿快取資訊清單,因為其中包含個人化內容。請依照下列步驟設定快取行為:

設定資訊清單快取行為
  1. 在 CloudFront 主控台中,選取您的分佈。

  2. 選擇 Behaviors (動作) 索引標籤。

  3. 選擇 Create behavior (建立行為)

  4. 對於路徑模式,輸入 *.m3u8 以符合 HLS 多變量和媒體播放清單。

  5. 針對原始伺服器,選取您的 MediaTailor 原始伺服器。

  6. 針對快取政策,選取 CachingDisabled

  7. 針對原始伺服器請求政策,選取 AllViewer 轉送動態內容的所有必要標頭。

  8. 選擇建立

  9. 使用路徑模式對 DASH 資訊清單重複這些步驟*.mpd,以符合 MPDs。

此組態可確保每個瀏覽者都會收到具有其特定廣告內容的個人化資訊清單。CDN 不會快取這些資訊清單,因此每個請求都會直接前往 MediaTailor。

設定區段快取行為

設定廣告區段和內容區段的個別快取行為,以最佳化效能並確保適當的 CORS 處理。

設定廣告區段快取行為

透過/tm/*路徑模式提供的廣告區段需要特定組態才能正確處理 CORS。請遵循下列步驟:

設定廣告區段快取行為
  1. 在 CloudFront 主控台中,選取您的分佈。

  2. 選擇 Behaviors (動作) 索引標籤。

  3. 選擇 Create behavior (建立行為)

  4. 對於路徑模式,輸入 /tm/*以符合 MediaTailor 提供的廣告區段。

  5. 針對原始伺服器,選取您的 MediaTailor 區段原始伺服器 (使用segments.mediatailor.region.amazonaws.com主機名稱)。

  6. 針對快取政策,選取CachingOptimized

  7. 針對原始伺服器請求政策,選取

  8. 針對回應標頭政策,選取 CORS-with-preflight-and-SecurityHeadersPolicy,以確保回應中包含適當的 CORS 標頭。

  9. 選擇建立

設定內容區段快取行為

內容區段可以使用標準快取政策來獲得最佳效能。為不同的客群格式設定不同的行為:

設定內容區段快取行為
  1. 在 CloudFront 主控台中,選取您的分佈。

  2. 選擇 Behaviors (動作) 索引標籤。

  3. 選擇 Create behavior (建立行為)

  4. 對於路徑模式,輸入 *.ts以符合 HLS 內容區段。

  5. 針對原始伺服器,選取您的內容原始伺服器。

  6. 針對快取政策,選取CachingOptimized

  7. 針對原始伺服器請求政策,選取

  8. 針對回應標頭政策,選取 CORS-with-preflight-and-SecurityHeadersPolicy,以確保所有內容類型的 CORS 處理一致。

  9. 選擇建立

  10. 使用適當的路徑模式,針對其他內容區段格式重複這些步驟:

    • *.mp4 適用於 MP4 區段

    • *.m4s 適用於 DASH 客群

    • *.cmfv CMAF 區段*.cmfa的 和

此組態可確保廣告區段和內容區段透過適當的 CORS 處理進行適當的快取。廣告區段使用 MediaTailor 區段原始伺服器搭配 CORS 保護,而內容區段則使用內容原始伺服器搭配最佳化快取政策。

更新 MediaTailor 組態

設定 CloudFront 分佈之後,請更新您的 MediaTailor 組態以使用 CloudFront 網域:

更新您的 MediaTailor 組態
  1. 開啟 MediaTailor 主控台

  2. 選取您要更新的組態。

  3. CDN 組態區段中,在 CDN 內容區段字首欄位中輸入 CloudFront 分佈網域名稱 (例如 d1234abcdef.cloudfront.net)。

  4. 儲存您的變更。

透過此組態,MediaTailor 會產生指向 CloudFront 分佈而非直接指向原始伺服器的 URLs 資訊清單。

測試您的整合

設定 CloudFront 分佈並更新您的 MediaTailor 組態後,請測試整合:

測試 CloudFront 和 MediaTailor 整合
  1. 透過 CloudFront 分佈請求資訊清單 (例如,https://d1234abcdef.cloudfront.net/v1/master/12345/my-config/index.m3u8)。

  2. 確認資訊清單包含指向 CloudFront 網域URLs。

  3. 透過影片播放器播放內容,並確認內容和廣告都能正確播放。

  4. 檢查 CloudFront 日誌以確保請求路由正確。

範例組態

以下是具有適當快取行為的 MediaTailor CloudFront 分佈組態範例:

範例 CloudFront 分佈組態範例
{ "DefaultCacheBehavior": { "TargetOriginId": "mediatailor-origin", "ViewerProtocolPolicy": "redirect-to-https", "AllowedMethods": { "Quantity": 2, "Items": ["GET", "HEAD"] }, "CachePolicyId": "4135ea2d-6df8-44a3-9df3-4b5a84be39ad", "OriginRequestPolicyId": "59781a5b-3903-41f3-afcb-af62929ccde1", "Comment": "Default behavior with CachingDisabled and AllViewer" }, "CacheBehaviors": [ { "PathPattern": "*.m3u8", "TargetOriginId": "mediatailor-origin", "ViewerProtocolPolicy": "redirect-to-https", "CachePolicyId": "4135ea2d-6df8-44a3-9df3-4b5a84be39ad", "OriginRequestPolicyId": "59781a5b-3903-41f3-afcb-af62929ccde1", "Comment": "Manifest behavior with CachingDisabled and AllViewer" }, { "PathPattern": "*.ts", "TargetOriginId": "mediatailor-origin", "ViewerProtocolPolicy": "redirect-to-https", "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", "OriginRequestPolicyId": "88a5eaf4-2fd4-4709-b370-b4c650ea3fcf", "Comment": "Segment behavior with CachingOptimized and HostHeaderOnly" } ] }

此範例顯示:

  • 預設行為:使用 CachingDisabledAllViewer 安全地處理不符合特定路徑模式的任何內容

  • 資訊清單行為 (*.m3u8):將 CachingDisabledAllViewer用於動態內容

  • 區段行為 (*.ts):使用 CachingOptimizedCORS-with-preflight-and-SecurityHeadersPolicy

後續步驟

設定與 MediaTailor 的基本 CloudFront 整合後,請考慮下列後續步驟: