Configura un servizio Media CDN

Questa guida rapida mostra come configurare un servizio Media CDN per in un bucket Cloud Storage. Puoi utilizzare questa configurazione per i test o la base di un ambiente di produzione.


Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud, fai clic su Procedura guidata:

Procedura guidata


Questa pagina illustra le seguenti procedure:

  1. Creare un bucket Cloud Storage in cui archiviare i tuoi contenuti.
  2. Abilita i servizi richiesti.
  3. Crea una risorsa EdgeCacheOrigin a cui connettere Media CDN del bucket.
  4. Crea una risorsa EdgeCacheService per configurare il routing delle richieste e per i contenuti nell'origine.
  5. Testa se una risposta è memorizzata nella cache.

Prima di iniziare

Assicurati di disporre di quanto segue:

  • Accesso a Media CDN per il progetto attuale.

  • Hai installato Google Cloud CLI. Usa la versione 345.0.0 o in un secondo momento.

    Se necessario, usa gcloud version per controllare la versione e gcloud components update per aggiornare gcloud CLI installata.

    gcloud CLI fornisce il gruppo di sottocomandi gcloud edge-cache per la gestione di configurazioni di Media CDN nuove ed esistenti.

  • Le autorizzazioni IAM (Identity and Access Management) necessarie per la creazione Risorse Media CDN. CDN multimediale include i seguenti ruoli IAM predefiniti:

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

Crea un bucket Cloud Storage

I contenuti di Media CDN possono provenire da posizioni quali un bucket Cloud Storage, una località di archiviazione di terze parti o un carico con il bilanciatore del carico di rete passthrough esterno regionale.

In questa guida rapida, archivieremo i contenuti in un bucket Cloud Storage.

  1. Crea un bucket Cloud Storage accessibile pubblicamente e assegnagli il nome my-bucket.

    Se preferisci non rendere pubblico il tuo bucket Cloud Storage accessibile, devi concedere a Media CDN le autorizzazioni per accedere di sincronizzare la directory di una VM con un bucket. Per ulteriori informazioni, vedi Utilizzo dei bucket Cloud Storage privati.

  2. Caricare un file nel bucket.

Abilita i servizi richiesti

Per configurare ed eseguire il deployment dei servizi Media CDN, devi abilitare sia l'API Network Services e l'API Certificate Manager per il tuo progetto.

Console

  1. Attiva l'API Network Services.

    Abilitare l'API

  2. Abilita l'API Certificate Manager.

    Abilitare l'API

gcloud

  1. Abilita l'API Network Services:

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

    gcloud services enable certificatemanager.googleapis.com
    

Per ulteriori informazioni sull'attivazione e disattivazione dei servizi, consulta Documentazione sull'utilizzo dei servizi.

Crea una risorsa EdgeCacheOrigin

Crea un'origine che punti al bucket Cloud Storage.

Console

  1. Nella console Google Cloud, vai alla pagina Media CDN.

    Vai a Media CDN

  2. Fai clic sulla scheda Origini.

  3. Fai clic su Crea origine.

  4. Inserisci cloud-storage-origin come nome dell'origine.

  5. (Facoltativo) Inserisci una descrizione per l'origine.

  6. Per Indirizzo di origine, scegli Seleziona un bucket Google Cloud Storage, accedi al bucket Cloud Storage denominato my-bucket e fai clic su Seleziona.

    Se invece hai un'origine esterna, scegli Specifica un FQDN o un IP e inserisci il nome di dominio completo o l'indirizzo IP.

  7. Fai clic su Crea origine.

Dopo circa 10 minuti, la risorsa EdgeCacheOrigin appena creata viene visualizzato nell'elenco delle origini del progetto alla pagina Origini.

Per aggiornare un indirizzo di origine, fai clic sull'origine e poi su Modifica.

gcloud

Usa il comando gcloud edge-cache origins create:

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

Sostituisci quanto segue:

  • ORIGIN: il nome della nuova origine
  • ADDRESS: nome del bucket, gs://my-bucket

    Se invece hai un'origine esterna, sostituisci ADDRESS con il nome di dominio completo o un indirizzo IP.

Per visualizzare l'origine appena creata, utilizza la Comando gcloud edge-cache origins list.

Per aggiornare l'indirizzo di origine, utilizza il Comando gcloud edge-cache origins update.

API

Utilizza la Metodo edgeCacheOrigins.create:

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

Sostituisci quanto segue:

  • PARENT: la risorsa padre nel formato projects/PROJECT/locations/global
  • ORIGIN_ID: il nome breve della nuova origine
  • ADDRESS: nome del bucket, gs://my-bucket

    Se invece hai un'origine esterna, sostituisci ADDRESS con il nome di dominio completo o un indirizzo IP.

Per visualizzare l'origine appena creata, utilizza la Metodo edgeCacheOrigins.list.

Per aggiornare l'indirizzo di origine, utilizza il Metodo 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}"
}

Crea una risorsa EdgeCacheService

La risorsa EdgeCacheService configura il routing, i certificati e la memorizzazione nella cache e può rimandare a EdgeCacheOrigin risorse.

Crea una risorsa EdgeCacheService di base che fa quanto segue:

  • Memorizza nella cache tutte le risposte dall'origine configurata per un'ora
  • Imposta un'intestazione della risposta x-cache-status che restituisce lo stato della cache (ad esempio HIT o MISS)

Facoltativamente, registra un nome di dominio. per questo servizio.

Console

  1. Nella console Google Cloud, vai alla pagina Media CDN.

    Vai a Media CDN

  2. Fai clic sulla scheda Services (Servizi).

  3. Fai clic su Crea servizio.

  4. Inserisci un nome univoco per il tuo servizio, ad esempio my-service, poi fai clic su Avanti.

  5. Nella sezione Routing, fai clic su Aggiungi regola host, quindi inserisci una regola host. o più nomi di dominio host.

  6. In Host inserisci un nome di dominio dell'host, ad esempio web.example.com.

  7. Fai clic su Aggiungi regola di percorso.

    1. In Priorità, specifica 1.
    2. Fai clic su Aggiungi condizione di corrispondenza, per Corrispondenza del percorso specifica /, quindi fai clic su Fine.
    3. Seleziona Recupera da un'origine, quindi seleziona l'origine che hai configurato.
    4. Fai clic su Azioni aggiuntive.
    5. In Azione intestazione, fai clic su Aggiungi un elemento. Poi:
      1. Per Tipo, seleziona Intestazioni di risposta da aggiungere.
      2. Fai clic su Aggiungi intestazione.
      3. Per Nome specifica x-cache-status e per Valore specifica {cdn_cache_status}.
      4. Fai clic su Fine.
    6. In Azione del percorso, fai clic su Aggiungi un elemento. Poi:
      1. In Tipo, seleziona Criterio CDN.
      2. Per Modalità cache, seleziona FORCE_CACHE_ALL.
      3. Fai clic su Fine.
    7. Fai clic su Salva.
  8. Fai clic su Crea servizio.

La risorsa EdgeCacheService appena creata viene visualizzata nella sezione Servizi nell'elenco dei servizi del tuo progetto.

gcloud

  1. In Cloud Shell, utilizza un editor di testo per creare un file locale denominato my-service.yaml.

    Questo file indica quanto segue:

    • Come funziona il routing: abbinando prima l'host e poi il percorso
    • Funzionamento della memorizzazione nella cache, in base a modalità cache e TTL
    • Il modo in cui vengono modificate richieste e risposte, ad esempio inserendo la variabile cdn_cache_status in un'intestazione di risposta
  2. Incolla i seguenti contenuti di esempio nel file e salvalo:

    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}"
    

    Sostituisci quanto segue:

    • SERVICE: nome del servizio
    • DOMAIN: il dominio del nuovo servizio

    Se specifichi il nome di dominio, Media CDN risponde con un 404 errore per gli altri host. * ORIGIN: il nome dell'origine correlata

  3. Usa il comando gcloud edge-cache services import con il file .yaml:

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

    Per visualizzare il servizio appena creato nell'elenco di EdgeCacheService per le risorse del tuo progetto, utilizza Comando gcloud edge-cache services list.

API

Utilizza la Metodo 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}"
                }
              ]
            },
          }
        ]
      }
    ]
  }
}

Sostituisci quanto segue:

  • PARENT: la risorsa padre nel formato projects/PROJECT/locations/global
  • SERVICE_ID: il nome del servizio
  • DOMAIN: il dominio del nuovo servizio

    Se specifichi il nome di dominio, Media CDN risponde con un errore 404 per gli altri host.

  • ORIGIN_NAME: il nome dell'origine correlata

Per visualizzare il servizio appena creato nell'elenco di EdgeCacheService risorse nel tuo progetto, utilizza Metodo 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 creazione del tuo primo servizio potrebbe richiedere diversi minuti. Media CDN esegue il provisioning di indirizzi IP dedicati ed esegue il push dei tuoi configurazione a migliaia di località sul perimetro della rete. I successivi aggiornamenti di un servizio quali la modifica della configurazione di una route o dei parametri di corrispondenza, sono più veloci.

Recupera gli indirizzi IP

Per visualizzare gli indirizzi IP del servizio che hai appena creato, segui questi passaggi:

Console

  1. Nella console Google Cloud, vai alla pagina Media CDN.

    Vai a Media CDN

  2. Fai clic sulla scheda Services (Servizi).

  3. Per gli indirizzi IP del servizio, vedi la cella Indirizzi.

    Se la cella è vuota, aggiorna il browser.

gcloud

Usa il comando gcloud edge-cache services describe:

gcloud edge-cache services describe SERVICE

Sostituisci SERVICE con il nome del servizio.

L'output mostra gli indirizzi IP assegnati al tuo servizio:

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

API

Utilizza la Metodo edgeCacheServices.get:

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

Sostituisci SERVICE_NAME con il nome completo del completamente gestito di Google Cloud. Utilizza il formato seguente:

projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID

Sostituisci SERVICE_ID con il nome breve del servizio.

I dettagli recuperati includono gli indirizzi IP assegnati al servizio:

ipv4Addresses:
    IPV4_ADDRESS
ipv6Addresses:
    IPV6_ADDRESS

Testa se una risposta è memorizzata nella cache

Prima di testare il servizio, assicurati che sia memorizzabile nella cache contenuti archiviati nella tua origine Media CDN può recuperarlo.

Per verificare che il servizio sia configurato correttamente per memorizzare i contenuti nella cache, utilizza lo strumento a riga di comando curl per inviare le richieste e controllare le risposte. curl è disponibile anche in Cloud Shell nella console Google Cloud.

Se desideri utilizzare EdgeCacheService con il tuo dominio, puoi assegnare l'indirizzo IP di EdgeCacheService a un record di dominio. Per istruzioni, vedi Configurare il dominio utilizzando Cloud DNS. Dopo aver configurato il dominio, accedi ai tuoi contenuti con i seguenti curl :

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

Se non hai configurato il DNS in modo che punti agli indirizzi IP di cui è stato eseguito il provisioning, utilizza Opzione resolve per eseguire l'override dell'indirizzo utilizzato da curl.

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

Sostituisci quanto segue:

  • DOMAIN_NAME : il dominio host specificato mentre crei il servizio
  • IP_ADDRESS: l'indirizzo IP del servizio come visibile nella colonna Indirizzi nell'elenco dei servizi
  • FILE_NAME: il nome del file che hai caricato il bucket

Esempio:

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

Il comando produce inizialmente un output simile al seguente, con stato miss, perché Media CDN non dispone della richiesta dati già recuperati dall'origine:

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

Quando invii nuovamente la stessa richiesta un numero qualsiasi di volte, viene generata una simile al seguente, con stato hit:

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

Se non mostra lo stato hit, controlla quanto segue:

  • La risposta può essere memorizzata nella cache.
  • La modalità cache configurata consente la memorizzazione nella cache dei contenuti.
  • L'origine non imposta direttive relative alla cache che impediscono la memorizzazione nella cache. Per ulteriori informazioni informazioni, consulta Configurazione della cache.

Ora hai testato una risorsa EdgeCacheService di base che può essere pubblicata contenuti a livello globale. Un servizio di livello enterprise potrebbe richiedere SSL (TLS) certificati, più origini e un Criterio di sicurezza di Google Cloud Armor.

(Facoltativo) Eseguire la pulizia

Elimina tutte le risorse che non intendi utilizzare di nuovo.

Console

  1. Nella console Google Cloud, vai alla pagina Media CDN.

    Vai a Media CDN

  2. Fai clic sulla scheda Services (Servizi).

  3. Seleziona il tuo servizio e fai clic su Elimina.

  4. Fai clic sulla scheda Origini.

  5. Seleziona l'origine e fai clic su Elimina.

gcloud

  1. Per elencare le risorse che hai creato, utilizza Comando gcloud edge-cache origins list e il comando gcloud edge-cache services list.

  2. Per eliminare il servizio, utilizza il metodo Comando gcloud edge-cache services delete:

    gcloud edge-cache services delete SERVICE
    

    Sostituisci SERVICE con il nome del servizio.

  3. Per eliminare l'origine, utilizza il metodo Comando gcloud edge-cache origins delete:

    gcloud edge-cache origins delete ORIGIN
    

    Sostituisci ORIGIN con il nome dell'origine.

API

  1. Per elencare le risorse che hai creato, utilizza Metodo edgeCacheServices.list e il metodo edgeCacheOrigins.list.

  2. Per eliminare il servizio, utilizza il metodo Metodo edgeCacheServices.delete:

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

    Sostituisci SERVICE_NAME con il nome completo del completamente gestito di Google Cloud. Utilizza il formato seguente:

    projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID
    

    Sostituisci SERVICE_ID con il nome breve del servizio.

  3. Per eliminare l'origine, utilizza il metodo Metodo edgeCacheOrigins.delete:

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

    Sostituisci ORIGIN con il nome completo del origine dati. Utilizza il formato seguente:

    projects/PROJECT/locations/global/edgeCacheOrigins/ORIGIN_ID
    

    Sostituisci ORIGIN_ID con il nome breve dell'origine.

Ripeti questa procedura per tutte le altre risorse che hai creato e non vuoi per riutilizzarlo, ad esempio il bucket Cloud Storage.

Passaggi successivi