

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

# 自訂 CDN 和 MediaTailor 整合的 CloudFormation 範本
<a name="customize-cloudformation-template"></a>

AWS Elemental MediaTailor 範本自訂可讓廣播專業人員調整 AWS CloudFormation 範本以符合特定的工作流程需求。雖然基本範本適用於許多案例，但這些自訂可協助您解決更複雜的需求。

以下範例顯示您可以新增至範本的 YAML 程式碼片段。如果您不熟悉 YAML CloudFormation 或語法，請考慮與開發人員或 AWS 解決方案架構師合作進行這些變更。

您可以自訂 CloudFormation 範本以符合您的特定工作流程需求。

## 新增或修改原始伺服器
<a name="add-modify-origins"></a>

對於使用多個內容來源 （例如主要和備份來源，或不同的內容程式庫） 的廣播工作流程，您可以將其他原始伺服器新增至 CloudFront 分發：

```
Origins:
  # Add a new origin for additional content
  - Id: SecondaryContentOrigin
    DomainName: secondary-content.example.com
    CustomOriginConfig:
      OriginProtocolPolicy: 'https-only'
      OriginSSLProtocols: 
        - TLSv1.2
```

然後新增對應的快取行為，將特定模式路由到此原始伺服器：

```
CacheBehaviors:
  - PathPattern: '/secondary-content/*'
    TargetOriginId: SecondaryContentOrigin
    ViewerProtocolPolicy: 'https-only'
    CachePolicyId: 658327ea-f89d-4fab-a63d-7e88639e58f6  # Managed-CachingOptimized
```

## 建立自訂快取政策
<a name="create-custom-cache-policies"></a>

對於具有特定快取需求的廣播工作流程 （例如品質選擇參數或檢視器身分驗證），您可以建立自訂快取政策，而不是使用受管快取政策。如需 TTL 值和快取策略的詳細指導，請參閱 [CDN 和 MediaTailor 整合的快取最佳化](cdn-optimize-caching.md)。

```
# Define a custom cache policy
CustomCachePolicy:
  Type: AWS::CloudFront::CachePolicy
  Properties:
    CachePolicyConfig:
      Name: !Sub '${AWS::StackName}-CustomCachePolicy'
      DefaultTTL: 86400  # 24 hours
      MaxTTL: 31536000   # 1 year
      MinTTL: 1          # 1 second
      ParametersInCacheKeyAndForwardedToOrigin:
        CookiesConfig:
          CookieBehavior: none
        HeadersConfig:
          HeaderBehavior: none
        QueryStringsConfig:
          QueryStringBehavior: whitelist
          QueryStrings:
            - quality
            - format

# Reference the custom policy in a cache behavior
CacheBehaviors:
  - PathPattern: '/custom-path/*'
    TargetOriginId: ContentOrigin
    ViewerProtocolPolicy: 'https-only'
    CachePolicyId: !Ref CustomCachePolicy
```

## 增強 MediaTailor 組態
<a name="enhance-mediatailor-config"></a>

對於需要進階廣告插入功能的廣播工作流程，您可以使用廣告預先擷取 （以減少延遲）、個人化閾值和緩衝廣告等選項來增強 MediaTailor 組態。

```
MediaTailorPlaybackConfig:
  Type: AWS::MediaTailor::PlaybackConfiguration
  Properties:
    # Add ad prefetching for improved performance
    AvailSuppression:
      Mode: BEHIND_LIVE_EDGE
      Value: 00:00:00
    # Add personalization parameters
    PersonalizationThresholdSeconds: 2
    # Add bumper ads
    Bumper:
      StartUrl: https://example.com/bumper-start.mp4
      EndUrl: https://example.com/bumper-end.mp4
    # Other existing properties...
```

如需 MediaTailor 組態選項的詳細資訊，請參閱 [使用 AWS Elemental MediaTailor 插入廣告](configurations.md)。

## 新增安全功能
<a name="add-security-features"></a>

對於具有特定安全需求的廣播工作流程 （例如地理限制或防範 DDoS 攻擊），您可以新增 AWS WAF 整合和地理限制：

```
# Create a AWS WAF Web ACL
WebACL:
  Type: AWS::WAFv2::WebACL
  Properties:
    Name: !Sub '${AWS::StackName}-WebACL'
    Scope: CloudFront
    DefaultAction:
      Allow: {}
    VisibilityConfig:
      SampledRequestsEnabled: true
      CloudWatchMetricsEnabled: true
      MetricName: !Sub '${AWS::StackName}-WebACL'
    Rules:
      - Name: RateLimitRule
        Priority: 0
        Action:
          Block: {}
        VisibilityConfig:
          SampledRequestsEnabled: true
          CloudWatchMetricsEnabled: true
          MetricName: RateLimitRule
        Statement:
          RateBasedStatement:
            Limit: 1000
            AggregateKeyType: IP

# Reference the AWS WAF Web ACL in the CloudFront distribution
CloudFrontDistribution:
  Type: AWS::CloudFront::Distribution
  Properties:
    DistributionConfig:
      WebACLId: !GetAtt WebACL.Arn
      # Add geo-restriction
      Restrictions:
        GeoRestriction:
          RestrictionType: whitelist
          Locations:
            - US
            - CA
            - GB
      # Other existing properties...
```

如需 CloudFormation 範本的詳細資訊，請參閱[AWS CloudFormation 《 使用者指南》](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)。

如需廣播特定的 CloudFormation 範本和範例，請參閱 [AWS Media Services Tools GitHub 儲存庫](https://github.com/aws-samples/aws-media-services-tools)。