Media CDN-Dienst einrichten

In dieser Kurzanleitung erfahren Sie, wie Sie einen Media CDN-Dienst vor einem Cloud Storage-Bucket einrichten. Sie können diese Konfiguration für Tests oder als Grundlage für eine Produktionsumgebung verwenden.


Eine detaillierte Anleitung dazu finden Sie direkt in der Google Cloud Console. Klicken Sie dazu einfach auf Anleitung:

Anleitung


Diese Anleitung führt Sie durch die folgenden Verfahren:

  1. Erstellen Sie einen Cloud Storage-Bucket zum Speichern Ihrer Inhalte.
  2. Aktivieren Sie die erforderlichen Dienste.
  3. Erstellen Sie eine EdgeCacheOrigin-Ressource, um Media CDN mit Ihrem Bucket zu verbinden.
  4. Erstellen Sie eine EdgeCacheService-Ressource, um das Anforderungsrouting und das Caching für Inhalte im Ursprung zu konfigurieren.
  5. Testen, ob eine Antwort im Cache gespeichert wird.

Hinweis

Folgende Voraussetzungen müssen erfüllt sein:

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen der Aufgaben in diesem Dokument benötigen:

  • roles/networkservices.edgeCacheAdmin: Zugriff zum Erstellen, Aktualisieren, Löschen und Verwalten aller Edge-Cache-Ressourcen.
  • roles/networkservices.edgeCacheUser: Zugriff zum Ansehen und Verwenden von Edge-Cache-Ressourcen.
  • roles/networkservices.edgeCacheViewer: Nur-Lesezugriff auf Edge-Cache-Ressourcen.

Storage-Bucket erstellen

SSL für Media CDN aktivieren

Sie können die erforderlichen Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Cloud Storage-Bucket erstellen

Media CDN-Inhalte können von Speicherorten wie einem Cloud Storage-Bucket, einem Drittanbieter-Speicherort oder einem Load-Balancer stammen.

In dieser Kurzanleitung speichern wir Inhalte in einem Cloud Storage-Bucket.

  1. Erstellen Sie einen öffentlich zugänglichen Cloud Storage-Bucket und geben Sie ihm den Namen my-bucket.

    Wenn Sie Ihren Cloud Storage-Bucket nicht öffentlich zugänglich machen möchten, müssen Sie Media CDN die Berechtigung zum Zugriff auf den Bucket erteilen. Weitere Informationen finden Sie unter Private Cloud Storage-Buckets verwenden.

  2. Laden Sie eine Datei in den Bucket hoch.

Erforderliche Dienste aktivieren

Zum Konfigurieren und Bereitstellen von Media CDN-Diensten müssen Sie sowohl die Network Services API als auch die Certificate Manager API für Ihr Projekt aktivieren.

Console

  1. Aktivieren Sie die Network Services API.

    API aktivieren

  2. Aktivieren Sie die Certificate Manager API.

    API aktivieren

gcloud

  1. Aktivieren Sie die Network Services API:

    gcloud services enable networkservices.googleapis.com
    
  2. Aktivieren Sie die Certificate Manager API:

    gcloud services enable certificatemanager.googleapis.com
    

Weitere Informationen zum Aktivieren und Deaktivieren von Diensten finden Sie in der Dokumentation zu Service Usage.

EdgeCacheOrigin-Ressource erstellen

Erstellen Sie einen Ursprung, der auf Ihren Cloud Storage-Bucket verweist.

Console

  1. Rufen Sie in der Console von Google Cloud die Seite Media CDN auf.

    Zum Media CDN

  2. Klicken Sie auf den Tab Ursprung.

  3. Klicken Sie auf Ursprung erstellen.

  4. Geben Sie cloud-storage-origin als Namen für den Ursprung ein.

  5. Optional: Geben Sie eine Beschreibung für den Ursprung ein.

  6. Wählen Sie unter Ursprungsadresse die Option Google Cloud Storage-Bucket auswählen aus, suchen Sie den Cloud Storage-Bucket my-bucket und klicken Sie dann auf Auswählen.

    Wenn Sie stattdessen einen externen Ursprung haben, wählen Sie FQDN oder IP-Adresse angeben aus und geben Sie dann den FQDN oder die IP-Adresse ein.

  7. Klicken Sie auf Ursprung erstellen.

Nach etwa 10 Minuten wird die neu erstellte EdgeCacheOrigin-Ressource in der Liste der Ursprünge in Ihrem Projekt auf der Seite Ursprünge angezeigt.

Wenn Sie eine Ursprungsadresse aktualisieren möchten, klicken Sie auf den Ursprung und dann auf Bearbeiten.

gcloud

Führen Sie folgenden gcloud edge-cache origins create-Befehl aus:

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

Ersetzen Sie Folgendes:

  • ORIGIN: der Name des neuen Ursprungs
  • ADDRESS: Der Bucket-Name, gs://my-bucket

Wenn Sie stattdessen einen externen Ursprung haben, ersetzen Sie ADDRESS durch den FQDN oder die IP-Adresse.

Verwenden Sie den Befehl gcloud edge-cache origins list, um den neu erstellten Ursprung aufzurufen.

Verwenden Sie den Befehl gcloud edge-cache origins update, um die Ursprungsadresse zu aktualisieren.

API

Verwenden Sie die Methode edgeCacheOrigins.create:

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

Ersetzen Sie Folgendes:

  • PARENT: die übergeordnete Ressource im Format projects/PROJECT/locations/global
  • ORIGIN_ID: der Kurzname des neuen Ursprungs
  • ADDRESS: Der Bucket-Name, gs://my-bucket

    Wenn Sie stattdessen einen externen Ursprung haben, ersetzen Sie ADDRESS durch den FQDN oder die IP-Adresse.

Verwenden Sie die Methode edgeCacheOrigins.list, um den neu erstellten Ursprung anzuzeigen.

Verwenden Sie zum Aktualisieren der Herkunftsadresse die Methode 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}"
}

EdgeCacheService-Ressource erstellen

Ihre EdgeCacheService-Ressource konfiguriert Routing-, Zertifikats- und Caching-Einstellungen und kann auf EdgeCacheOrigin-Ressourcen verweisen.

Erstellen Sie eine einfache EdgeCacheService-Ressource, die Folgendes ausführt:

  • Speichert alle Antworten von unserem konfigurierten Ursprung eine Stunde im Cache
  • Legt einen x-cache-status-Antwortheader fest, der den Cache-Status zurückgibt (z. B. HIT oder MISS).

Optional können Sie einen Domainnamen für diesen Dienst registrieren.

Console

  1. Rufen Sie in der Console von Google Cloud die Seite Media CDN auf.

    Zum Media CDN

  2. Klicken Sie auf den Tab Services (Dienste).

  3. Klicken Sie auf Dienst erstellen.

  4. Geben Sie einen eindeutigen Namen für den Dienst ein, z. B. my-service, und klicken Sie dann auf Weiter.

  5. Klicken Sie im Bereich Routing auf Hostregel hinzufügen und geben Sie dann einen oder mehrere Hostdomainnamen ein.

  6. Geben Sie für Hosts einen Domainnamen ein, z. B. web.example.com.

  7. Klicken Sie auf Weiterleitungsregel hinzufügen.

    1. Geben Sie unter Priority (Priorität) den Wert 1 an.
    2. Klicken Sie auf Übereinstimmungsbedingung hinzufügen, geben Sie für Pfadübereinstimmung den Wert / an und klicken Sie dann auf Fertig.
    3. Wählen Sie Von einem Ursprung abrufen und dann den von Ihnen konfigurierten Ursprung aus.
    4. Klicken Sie auf Add-on-Aktionen.
    5. Klicken Sie unter Header action (Headeraktion) auf Add an item (Element hinzufügen). Führen Sie anschließend folgende Schritte aus:
      1. Wählen Sie für Type (Typ) die Option Add Header aus, die hinzugefügt werden sollen.
      2. Klicken Sie auf Header hinzufügen.
      3. Geben Sie für Name x-cache-status und für Value {cdn_cache_status} an.
      4. Klicken Sie auf Fertig.
    6. Klicken Sie unter Routenaktion auf Element hinzufügen. Führen Sie anschließend folgende Schritte aus:
      1. Wählen Sie für Typ die Option CDN-Richtlinie aus.
      2. Wählen Sie für Cache-Modus die Option FORCE_CACHE_ALL aus.
      3. Klicken Sie auf Fertig.
    7. Klicken Sie auf Speichern.
  8. Klicken Sie auf Dienst erstellen.

Die neu erstellte EdgeCacheService-Ressource wird auf der Seite Dienste in der Liste der Dienste in Ihrem Projekt angezeigt.

gcloud

  1. Erstellen Sie in Cloud Shell mit einem Texteditor eine lokale Datei mit dem Namen my-service.yaml.

    Eine solche Datei gibt Folgendes an:

    • So funktioniert das Routing: Zuerst wird der Host und dann der Pfad abgeglichen.
    • So funktioniert das Caching – basierend auf dem Cache-Modus und dem TTL-Wert
    • Wie Anfragen und Antworten geändert werden, z. B. durch Einfügen der Variablen cdn_cache_status in einen Antwortheader
  2. Fügen Sie den folgenden Beispielinhalt in die Datei ein und speichern Sie sie:

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

    Ersetzen Sie Folgendes:

    • SERVICE: Name des Dienstes
    • DOMAIN: die Domain für den neuen Dienst

      Wenn Sie den Domainnamen angeben, antwortet Media CDN mit einem 404-Fehler für andere Hosts.

    • ORIGIN: der Name des zugehörigen Ursprungs

  3. Verwenden Sie den Befehl gcloud edge-cache services import mit der YAML-Datei:

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

    Verwenden Sie den gcloud edge-cache services list-Befehl, um den neu erstellten Dienst in der Liste der EdgeCacheService-Ressourcen in Ihrem Projekt aufzurufen.

API

Verwenden Sie die Methode edgeCacheServices.create:

POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheServices?edgeCacheServiceId=SERVICE_NAME
{
  "name": "SERVICE_NAME",
  "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}"
                }
              ]
            },
          }
        ]
      }
    ]
  }
}

Ersetzen Sie Folgendes:

  • PARENT: die übergeordnete Ressource im Format projects/PROJECT/locations/global
  • SERVICE_NAME: der Name des Dienstes
  • DOMAIN: die Domain für den neuen Dienst

    Wenn Sie den Domainnamen angeben, antwortet Media CDN mit einem 404-Fehler für andere Hosts.

  • ORIGIN_NAME: der Name des zugehörigen Ursprungs

Verwenden Sie die Methode edgeCacheServices.list, um den neu erstellten Dienst in der Liste der EdgeCacheService-Ressourcen in Ihrem Projekt aufzurufen.

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 default route rule, priority=10 (low)"
        priority    = 10
        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}"
          }
        }
      }
    }
  }
}

Es kann einige Minuten dauern, bis der erste Dienst erstellt ist. Media CDN stellt dedizierte IP-Adressen bereit und überträgt Ihre Konfiguration an Tausende von Edge-Standorten. Nachfolgende Aktualisierungen eines Dienstes, z. B. das Ändern einer Routenkonfiguration oder von Abgleichsparametern, erfolgen schneller.

IP-Adressen abrufen

So rufen Sie die IP-Adressen für Ihren neu erstellten Dienst auf: