

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Personnalisez le CloudFormation modèle pour le CDN et les intégrations MediaTailor
<a name="customize-cloudformation-template"></a>

AWS Elemental MediaTailor la personnalisation du modèle permet aux professionnels de la diffusion d'adapter le AWS CloudFormation modèle aux exigences spécifiques du flux de travail. Bien que le modèle de base fonctionne pour de nombreux scénarios, ces personnalisations peuvent vous aider à répondre à des besoins plus complexes.

Les exemples ci-dessous montrent des extraits de code YAML que vous pouvez ajouter au modèle. Si vous ne connaissez pas le langage YAML ou CloudFormation la syntaxe, envisagez de faire appel à un développeur ou à un architecte de AWS solutions pour effectuer ces modifications.

Vous pouvez personnaliser le CloudFormation modèle pour répondre à vos exigences spécifiques en matière de flux de travail.

## Ajouter ou modifier des origines
<a name="add-modify-origins"></a>

Pour les flux de diffusion qui utilisent plusieurs sources de contenu (telles que des sources principales et de sauvegarde, ou différentes bibliothèques de contenu), vous pouvez ajouter des origines supplémentaires à votre CloudFront distribution :

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

Ajoutez ensuite un comportement de cache correspondant pour acheminer des modèles spécifiques vers cette origine :

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

## Création de politiques de cache personnalisées
<a name="create-custom-cache-policies"></a>

Pour les flux de diffusion soumis à des exigences de mise en cache spécifiques (comme les paramètres de sélection de qualité ou l'authentification du spectateur), vous pouvez créer des politiques de cache personnalisées au lieu d'utiliser des politiques de cache gérées. Pour obtenir des conseils détaillés sur les valeurs TTL et les stratégies de mise en cache, voir. [Optimisation de la mise en cache pour le CDN et les intégrations 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
```

## Améliorez la MediaTailor configuration
<a name="enhance-mediatailor-config"></a>

Pour les flux de diffusion nécessitant des fonctionnalités avancées d'insertion de publicités, vous pouvez améliorer la MediaTailor configuration grâce à des options telles que le préchargement des publicités (pour réduire le temps de latence), les seuils de personnalisation et les publicités exceptionnelles.

```
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...
```

Pour plus d'informations sur les options MediaTailor de configuration, consultez[Utilisation AWS Elemental MediaTailor pour insérer des publicités](configurations.md).

## Ajoutez des fonctionnalités de sécurité
<a name="add-security-features"></a>

Pour les flux de diffusion soumis à des exigences de sécurité spécifiques (comme les restrictions géographiques ou la protection contre les attaques DDo S), vous pouvez ajouter des AWS WAF intégrations et des restrictions géographiques :

```
# 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...
```

Pour plus d'informations sur les CloudFormation modèles, consultez le [guide de AWS CloudFormation l'utilisateur](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html).

Pour obtenir des CloudFormation modèles et des exemples spécifiques à la diffusion, consultez le référentiel d'[outils GitHub AWS Media Services](https://github.com/aws-samples/aws-media-services-tools).