Configurer un service Media�CDN

Ce guide de d�marrage rapide explique comment configurer un service Media CDN devant dans un bucket Cloud�Storage. Vous pouvez utiliser cette configuration pour les tests ou comme base pour un environnement de production.


Pour obtenir des instructions d�taill�es sur cette t�che directement dans la console Google�Cloud, cliquez sur Visite guid�e�:

Visite guid�e


Cette page d�crit les proc�dures suivantes�:

  1. Cr�ez un bucket Cloud�Storage pour stocker votre contenu.
  2. Activez les services requis.
  3. Cr�er une ressource EdgeCacheOrigin � laquelle connecter Media CDN dans votre bucket.
  4. Cr�ez une ressource EdgeCacheService pour configurer le routage des requ�tes et le cache pour le contenu de l'origine.
  5. V�rifier si une r�ponse est mise en cache

Avant de commencer

Assurez-vous de disposer des �l�ments suivants�:

  • Acc�s � Media CDN pour votre projet actuel.

  • Une installation de Google�Cloud�CLI. Utilisez la version�345.0.0 ou ult�rieure.

    Si n�cessaire, utilisez gcloud version pour v�rifier la version et gcloud components update pour mettre � jour la gcloud CLI install�e.

    La CLI gcloud fournit le groupe de sous-commandes gcloud edge-cache pour g�rer les configurations Media�CDN nouvelles et existantes.

  • Les autorisations IAM (Identity and Access Management) requises pour cr�er Ressources Media CDN. Media�CDN dispose des r�les IAM pr�d�finis suivants�:

    • roles/networkservices.edgeCacheAdmin
    • roles/networkservices.edgeCacheUser
    • roles/networkservices.edgeCacheViewer

Cr�er un bucket Cloud�Storage

Le contenu Media CDN peut provenir d'emplacements tels que un bucket Cloud�Storage, un emplacement de stockage tiers ou une charge de votre �quilibreur de charge.

Dans ce guide de d�marrage rapide, nous allons stocker le contenu dans un bucket Cloud�Storage.

  1. Cr�er un bucket Cloud�Storage accessible publiquement et nommez-la my-bucket.

    Si vous pr�f�rez ne pas rendre votre bucket Cloud�Storage accessible au public, vous devez autoriser Media�CDN � y acc�der. Pour en savoir plus, consultez Utiliser des buckets Cloud�Storage priv�s

  2. Importez un fichier dans le bucket.

Activer les services requis

Pour configurer et d�ployer des services Media�CDN, vous devez activer l'API Network�Services et l'API Certificate�Manager pour votre projet.

Console

  1. Activez l'API Network�Services.

    Activer l'API

  2. Activez l'API Certificate�Manager.

    Activer l'API

gcloud

  1. Activez l'API Network Services:

    gcloud services enable networkservices.googleapis.com
    
  2. Activez l'API Certificate�Manager�:

    gcloud services enable certificatemanager.googleapis.com
    

Pour en savoir plus sur l'activation et la d�sactivation des services, consultez la documentation de Service�Usage.

Cr�er une ressource EdgeCacheOrigin

Cr�ez une origine qui pointe vers votre bucket Cloud�Storage.

Console

  1. Dans la console Google�Cloud, acc�dez � la page Media�CDN.

    Acc�der � Media�CDN

  2. Cliquez sur l'onglet Origines.

  3. Cliquez sur Cr�er une origine.

  4. Saisissez cloud-storage-origin comme nom de point de d�part.

  5. Facultatif: saisissez une description de l'origine.

  6. Dans le champ Adresse d'origine, cliquez sur S�lectionner un bucket Google�Cloud�Storage, acc�dez au bucket Cloud�Storage nomm� my-bucket, puis cliquez sur S�lectionner.

    Si vous disposez d'une origine externe, s�lectionnez Sp�cifier un nom de domaine complet ou une adresse IP , puis saisissez le nom de domaine complet ou l'adresse IP.

  7. Cliquez sur Cr�er une origine.

Apr�s environ 10 minutes, la ressource EdgeCacheOrigin nouvellement cr��e appara�t dans la liste des origines de votre projet sur la page Origins.

Pour mettre � jour une adresse de d�part, cliquez sur celle-ci, puis sur Modifier.

gcloud

Ex�cutez la commande gcloud edge-cache origins create�:

gcloud edge-cache origins create ORIGIN \
    --origin-address="ADDRESS"

Remplacez les �l�ments suivants�:

  • ORIGIN: nom de la nouvelle origine
  • ADDRESS�: nom du bucket, gs://my-bucket

    Si vous avez une origine externe, remplacez ADDRESS par le nom de domaine complet (FQDN). ou son adresse IP.

Pour afficher l'origine que vous venez de cr�er, utilisez la m�thode Commande gcloud edge-cache origins list

Pour mettre � jour l'adresse de d�part, utilisez la m�thode Commande gcloud edge-cache origins update

API

Utilisez la m�thode edgeCacheOrigins.create�:

POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheOrigins?edgeCacheOriginId=ORIGIN_ID
{
  "name": "ORIGIN_ID",
  "originAddress: "ADDRESS"
}

Remplacez les �l�ments suivants�:

  • PARENT: ressource parente au format projects/PROJECT/locations/global
  • ORIGIN_ID: nom court de la nouvelle origine.
  • ADDRESS�: nom du bucket, gs://my-bucket

    Si vous avez une origine externe, remplacez ADDRESS par le nom de domaine complet (FQDN). ou son adresse IP.

Pour afficher l'origine nouvellement cr��e, utilisez la m�thode edgeCacheOrigins.list.

Pour mettre � jour l'adresse de d�part, utilisez la m�thode M�thode edgeCacheOrigins.patch.

Terraform

resource "google_network_services_edge_cache_origin" "default" {
  name           = "cloud-storage-origin"
  origin_address = "gs://my-bucket-${random_id.unique_suffix.hex}"
}

Cr�er une ressource EdgeCacheService

Votre ressource EdgeCacheService configure les param�tres de routage, de certificat et de mise en cache, et peut pointer vers des ressources EdgeCacheOrigin.

Cr�ez une ressource EdgeCacheService de base qui:

  • Mise en cache de toutes les r�ponses de notre origine configur�e pendant une heure.
  • Il d�finit un en-t�te de r�ponse x-cache-status qui renvoie l'�tat du cache. (HIT ou MISS, par exemple)

(Facultatif) Enregistrez un nom de domaine pour ce service.

Console

  1. Dans la console Google�Cloud, acc�dez � la page Media�CDN.

    Acc�der � Media�CDN

  2. Cliquez sur l'onglet Services.

  3. Cliquez sur Cr�er un service.

  4. Saisissez un nom unique pour votre service, par exemple my-service, puis cliquez sur Suivant.

  5. Dans la section Routage, cliquez sur Ajouter une r�gle d'h�te, puis saisissez un ou plusieurs noms de domaine d'h�te.

  6. Pour H�tes, saisissez un nom de domaine h�te (par exemple, web.example.com).

  7. Cliquez sur Ajouter une r�gle de routage.

    1. Pour Priorit�, sp�cifiez 1.
    2. Cliquez sur Ajouter une condition de correspondance. Pour Chemin d'acc�s correspondant, sp�cifiez / puis cliquez sur OK.
    3. S�lectionnez Extraire d'une origine, puis s�lectionnez l'origine que vous avez configur�e.
    4. Cliquez sur Actions compl�mentaires.
    5. Dans Action d'en-t�te, cliquez sur Ajouter un �l�ment. Ensuite, proc�dez comme suit�:
      1. Pour Type, s�lectionnez En-t�tes de r�ponse � ajouter.
      2. Cliquez sur Ajouter un en-t�te.
      3. Pour Nom, sp�cifiez x-cache-status. Pour Valeur, sp�cifiez {cdn_cache_status}.
      4. Cliquez sur OK.
    6. Dans Action de routage, cliquez sur Ajouter un �l�ment. Ensuite, proc�dez comme suit�:
      1. Dans le champ Type, s�lectionnez R�gle CDN.
      2. Pour le mode cache, s�lectionnez FORCE_CACHE_ALL.
      3. Cliquez sur OK.
    7. Cliquez sur Enregistrer.
  8. Cliquez sur Cr�er un service.

La ressource EdgeCacheService que vous venez de cr�er s'affiche sur la page Services dans la liste des services de votre projet.

gcloud

  1. Dans Cloud�Shell, utilisez un �diteur de texte pour cr�er un fichier local appel� my-service.yaml

    Un tel fichier indique ce qui suit:

    • Fonctionnement du routage�: mise en correspondance de l'h�te, puis du chemin d'acc�s
    • Fonctionnement de la mise en cache (en fonction du mode de cache et de la valeur TTL)
    • des modifications apport�es aux requ�tes et aux r�ponses (par exemple, en ins�rant la variable cdn_cache_status dans un en-t�te de r�ponse ;
  2. Collez l'exemple de contenu suivant dans le fichier, puis enregistrez-le�:

    name: SERVICE
    routing:
      hostRules:
      - hosts:
        - DOMAIN 
        pathMatcher: routes
      pathMatchers:
      - name: routes
        routeRules:
        - priority: 1
          matchRules:
          - prefixMatch: /
          origin: ORIGIN
          routeAction:
            cdnPolicy:
              cacheMode: CACHE_ALL_STATIC
              defaultTtl: 3600s
          headerAction:
            responseHeadersToAdd:
            - headerName: "x-cache-status"
              headerValue: "{cdn_cache_status}"
    

    Remplacez les �l�ments suivants�:

    • SERVICE�: nom du service
    • DOMAIN: domaine du nouveau service

    Si vous sp�cifiez le nom de domaine, Media CDN r�pond avec un message Erreur 404 pour les autres h�tes. * ORIGIN: nom de l'origine associ�e

  3. Ex�cutez la commande gcloud edge-cache services import. par le fichier .yaml:

    gcloud edge-cache services import SERVICE \
        --source=my-service.yaml
    

    Afficher le service que vous venez de cr�er dans la liste de EdgeCacheService ressources de votre projet, utilisez commande gcloud edge-cache services list.

API

Utilisez la m�thode edgeCacheServices.create�:

POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheServices?edgeCacheServiceId=SERVICE_ID
{
  "name": "SERVICE_ID",
  "routing": {
    "hostRules": [
      {
        "hosts": ["DOMAIN"],
        "pathMatcher": "routes"
      }
    ],
    "pathMatchers": [
      {
        "name": "routes",
        "routeRules": [
          {
            "priority": "1",
            "matchRules": [
              {
                "prefixMatch": "/"
              }
            ],
            "origin": "ORIGIN",
            "routeAction": {
               "cdnPolicy": {
                 "cacheMode": "CACHE_ALL_STATIC",
                 "defaultTtl": "3600s"
               }
            }
            "headerAction": {
              "responseHeadersToAdd": [
                {
                  "headerName": "x-cache-status",
                  "headerValue": "{cdn_cache_status}"
                }
              ]
            },
          }
        ]
      }
    ]
  }
}

Remplacez les �l�ments suivants�:

  • PARENT: ressource parente au format projects/PROJECT/locations/global
  • SERVICE_ID: nom du service
  • DOMAIN: domaine du nouveau service

    Si vous sp�cifiez le nom de domaine, Media CDN r�pond avec le message une erreur 404 pour les autres h�tes ;

  • ORIGIN_NAME�: nom de l'origine associ�e

Pour afficher le service nouvellement cr�� dans la liste des ressources EdgeCacheService de votre projet, utilisez la m�thode edgeCacheServices.list.

Terraform

resource "google_network_services_edge_cache_service" "default" {
  name = "cloud-media-service"
  routing {
    host_rule {
      hosts        = ["googlecloudexample.com"]
      path_matcher = "routes"
    }
    path_matcher {
      name = "routes"
      route_rule {
        description = "a route rule to match against"
        priority    = 1
        match_rule {
          prefix_match = "/"
        }
        origin = google_network_services_edge_cache_origin.default.name
        route_action {
          cdn_policy {
            cache_mode  = "CACHE_ALL_STATIC"
            default_ttl = "3600s"
          }
        }
        header_action {
          response_header_to_add {
            header_name  = "x-cache-status"
            header_value = "{cdn_cache_status}"
          }
        }
      }
    }
  }
}

La cr�ation de votre premier service peut prendre plusieurs minutes. Media�CDN provisionne des adresses IP d�di�es et transf�re votre configuration vers des milliers d'emplacements p�riph�riques. Les mises � jour ult�rieures d'un service, telles que la modification d'une configuration de route ou de param�tres de correspondance, sont plus rapides.

R�cup�rer les adresses IP

Pour afficher les adresses IP du service que vous venez de cr�er, proc�dez comme suit:

Console

  1. Dans la console Google�Cloud, acc�dez � la page Media�CDN.

    Acc�der � Media�CDN

  2. Cliquez sur l'onglet Services.

  3. Pour conna�tre les adresses�IP de votre service, consultez la cellule Adresses.

    Si la cellule est vide, actualisez le navigateur.

gcloud

Ex�cutez la commande gcloud edge-cache services describe�:

gcloud edge-cache services describe SERVICE

Remplacez SERVICE par le nom du service.

Le r�sultat affiche les adresses IP attribu�es � votre service�:

ipv4Addresses:
    IPV4_ADDRESS
ipv6Addresses:
    IPV6_ADDRESS
name: projects/my-project/locations/global/edgeCacheServices/SERVICE
...

API

Utilisez la m�thode edgeCacheServices.get�:

GET https://networkservices.googleapis.com/v1/SERVICE_NAME

Remplacez SERVICE_NAME par le nom complet du service. Utilisez le format suivant�:

projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID

Remplacez SERVICE_ID par le nom court du service.

Les informations r�cup�r�es incluent les adresses IP attribu�es au service:

ipv4Addresses:
    IPV4_ADDRESS
ipv6Addresses:
    IPV6_ADDRESS

V�rifier si une r�ponse est mise en cache

Avant de tester le service, assurez-vous que les param�tres peuvent �tre mis en cache contenus stock�s � votre origine afin que Media CDN peut la r�cup�rer.

Pour v�rifier que votre service est correctement configur� pour mettre en cache le contenu, utilisez l'outil de ligne de commande curl pour �mettre des requ�tes et v�rifier les r�ponses. curl est �galement disponible dans Cloud�Shell dans la console Google Cloud.

Si vous souhaitez utiliser EdgeCacheService avec votre domaine, vous pouvez attribuer l'adresse IP de EdgeCacheService � un enregistrement de domaine. Pour instructions, consultez la page Configurer votre domaine � l'aide de Cloud DNS. Une fois votre domaine configur�, acc�dez � votre contenu avec l'curl suivant :

curl -svo /dev/null "http://DOMAIN_NAME/FILE_NAME"

Si vous n'avez pas configur� le DNS pour qu'il pointe vers vos adresses IP provisionn�es, utilisez la classe resolve pour remplacer l'adresse utilis�e par curl.

curl -svo /dev/null --resolve DOMAIN_NAME:80:IP_ADDRESS "http://DOMAIN_NAME/FILE_NAME"

Remplacez les �l�ments suivants�:

  • DOMAIN_NAME : domaine de l'h�te que vous avez sp�cifi� lors de la cr�ation du service
  • IP_ADDRESS: adresse IP du service en tant que visible dans la colonne Adresses de la liste des services
  • FILE_NAME: nom du fichier dans lequel vous avez import� le bucket

Exemple�:

curl -svo /dev/null --resolve web.example.com:80:34.104.37.129 "http://web.example.com/file.mp4"

La commande produit initialement un r�sultat semblable au suivant, avec l'�tat miss, car Media�CDN n'a pas encore r�cup�r� les donn�es demand�es � partir de l'origine�:

< HTTP/2 200 OK
...
< x-cache-status: den;miss
...

Lorsque vous soumettez � nouveau la m�me demande autant de fois que vous le souhaitez, une erreur un r�sultat semblable � ce qui suit, avec l'�tat hit:

< HTTP/2 200 OK
...
< x-cache-status: den;hit
...

Si l'�tat hit n'est pas affich�, v�rifiez les points suivants:

  • La r�ponse peut �tre mise en cache.
  • Le mode de cache configur� permet la mise en cache du contenu.
  • L'origine ne d�finit pas d'instructions de cache qui emp�chent la mise en cache. Pour plus plus d'informations, consultez la section Configuration du cache.

Vous avez maintenant test� une ressource EdgeCacheService de base pouvant �tre diffus�e dans le monde entier. Un service de niveau production peut n�cessiter des certificats SSL (TLS), des origines multiples et une strat�gie de s�curit� Google�Cloud�Armor.

Facultatif�: Effectuer un nettoyage

Supprimez toutes les ressources que vous ne pr�voyez pas d'utiliser � nouveau.

Console

  1. Dans la console Google�Cloud, acc�dez � la page Media�CDN.

    Acc�der � Media�CDN

  2. Cliquez sur l'onglet Services.

  3. S�lectionnez votre service, puis cliquez sur Supprimer.

  4. Cliquez sur l'onglet Origines.

  5. S�lectionnez votre origine, puis cliquez sur Supprimer.

gcloud

  1. Pour r�pertorier les ressources que vous avez cr��es, utilisez les commandes gcloud edge-cache origins list et gcloud edge-cache services list.

  2. Pour supprimer le service, utilisez la commande gcloud edge-cache services delete�:

    gcloud edge-cache services delete SERVICE
    

    Remplacez SERVICE par le nom du service.

  3. Pour supprimer l'origine, utilisez la m�thode Commande gcloud edge-cache origins delete:

    gcloud edge-cache origins delete ORIGIN
    

    Remplacez ORIGIN par le nom de l'origine.

API

  1. Pour r�pertorier les ressources que vous avez cr��es, utilisez la m�thode M�thode edgeCacheServices.list et la m�thode edgeCacheOrigins.list.

  2. Pour supprimer le service, utilisez la M�thode edgeCacheServices.delete:

    DELETE https://networkservices.googleapis.com/v1/SERVICE_NAME
    

    Remplacez SERVICE_NAME par le nom complet du service. Utilisez le format suivant�:

    projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID
    

    Remplacez SERVICE_ID par le nom court. du service.

  3. Pour supprimer l'origine, utilisez la m�thode M�thode edgeCacheOrigins.delete:

    DELETE https://networkservices.googleapis.com/v1/ORIGIN
    

    Remplacez ORIGIN par le nom complet du origine. Utilisez le format suivant�:

    projects/PROJECT/locations/global/edgeCacheOrigins/ORIGIN_ID
    

    Remplacez ORIGIN_ID par le nom court de l'origine.

R�p�tez ce processus pour toutes les autres ressources que vous avez cr��es et que vous ne souhaitez pas utiliser. � r�utiliser, comme le bucket Cloud�Storage.

�tape suivante