Media CDN-Dienst einrichten

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


Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt in der Google Cloud Console aufzurufen.

Anleitung


Diese Anleitung führt Sie durch die folgenden Verfahren:

  1. Cloud Storage-Bucket zum Speichern Ihrer Inhalte erstellen
  2. Aktivieren Sie die erforderlichen Dienste.
  3. EdgeCacheOrigin-Ressource erstellen, mit der Media CDN verbunden werden soll Ihren Bucket.
  4. Erstellen Sie eine EdgeCacheService-Ressource, um das Anfragenrouting und Caching für Inhalte im Ursprung.
  5. Testen, ob eine Antwort im Cache gespeichert wird.

Hinweise

Sie benötigen Folgendes:

  • Zugriff auf Media CDN für Ihr aktuelles Projekt.

  • Die installierte Google Cloud CLI. Version 345.0.0 oder .

    Verwenden Sie bei Bedarf gcloud version, um die Version zu prüfen und gcloud components update, um die installierte gcloud CLI zu aktualisieren.

    Die gcloud CLI stellt die Unterbefehlsgruppe gcloud edge-cache bereit. zur Verwaltung neuer und vorhandener Media CDN-Konfigurationen.

  • Die Berechtigungen der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM), die zum Erstellen erforderlich sind Media CDN-Ressourcen Media CDN hat die folgenden vordefinierten IAM-Rollen:

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

Cloud Storage-Bucket erstellen

Media CDN-Inhalte können aus Quellen wie Cloud Storage-Bucket, der Speicherort eines Drittanbieters oder eine Last aus.

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

  1. Öffentlich zugänglichen Cloud Storage-Bucket erstellen und nennen es my-bucket.

    Wenn Sie Ihren Cloud Storage-Bucket nicht öffentlich machen möchten müssen Sie Media CDN Berechtigungen für den Zugriff Bucket. Weitere Informationen finden Sie unter Private Cloud Storage-Buckets verwenden

  2. Laden Sie eine Datei in den Bucket hoch.

Erforderliche Dienste aktivieren

Damit Sie Media CDN-Dienste konfigurieren und bereitstellen können, müssen Sie sowohl die Network Services API und die Certificate Manager API für Ihr Projekt.

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 Google Cloud Console die Seite Media CDN auf.

    Zum Media CDN

  2. Klicken Sie auf den Tab Ursprünge.

  3. Klicken Sie auf Ursprung erstellen.

  4. Geben Sie den Namen für den Abreiseort als cloud-storage-origin 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 angeben Adresse 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 Ressource EdgeCacheOrigin wird in Ihrem Projekt auf der Seite Ursprünge in der Liste der Ursprünge angezeigt.

Wenn Sie eine Ausgangsadresse aktualisieren möchten, klicken Sie auf den Ausgangsort 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 IP-Adresse.

Rufen Sie den neu erstellten Ursprung mit der Methode gcloud edge-cache origins list-Befehl

Verwenden Sie zum Aktualisieren der Ausgangsadresse die gcloud edge-cache origins update-Befehl

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 IP-Adresse.

Rufen Sie den neu erstellten Ursprung mit der Methode edgeCacheOrigins.list-Methode.

Verwenden Sie zum Aktualisieren der Ausgangsadresse die edgeCacheOrigins.patch-Methode.

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, Zertifikat und Caching Einstellungen und kann auf EdgeCacheOrigin Ressourcen verweisen.

Erstellen Sie eine einfache EdgeCacheService-Ressource, die folgende Aufgaben erfüllt:

  • 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: Domainnamen registrieren für diesen Dienst.

Console

  1. Rufen Sie in der Google Cloud Console 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 eine Regel ein oder mehr Host-Domain-Namen.

  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 den Wert x-cache-status und für Wert an. {cdn_cache_status}.
      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 Ressource EdgeCacheService wird in den Diensten angezeigt. in der Liste der Dienste in Ihrem Projekt.

gcloud

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

    Eine solche Datei enthält Folgendes:

    • Funktionsweise des Routings, indem zuerst der Host und dann der Pfad abgeglichen werden
    • Funktionsweise des Cachings – basierend auf dem Cache-Modus und der TTL
    • Wie Anfragen und Antworten geändert werden, z. B. durch Einfügen von die Variable cdn_cache_status in einen Antwortheader umwandeln
  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 ist 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: der Name des zugehörigen Ursprungs

  3. Verwenden Sie den Befehl gcloud edge-cache services import. durch die Datei .yaml:

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

    So rufen Sie den neu erstellten Dienst in der Liste EdgeCacheService auf: in Ihrem Projekt verwenden, nutzen Sie gcloud edge-cache services list-Befehl:

API

Verwenden Sie die Methode 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}"
                }
              ]
            },
          }
        ]
      }
    ]
  }
}

Ersetzen Sie Folgendes:

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

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

  • ORIGIN_NAME: der Name des zugehörigen Ursprungs

So rufen Sie den neu erstellten Dienst in der Liste der EdgeCacheService-Ressourcen auf: in Ihrem Projekt verwenden, Methode 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}"
          }
        }
      }
    }
  }
}

Es kann einige Minuten dauern, bis der erste Dienst erstellt ist. Media CDN stellt dedizierte IP-Adressen bereit und überträgt Ihre Konfiguration auf Tausende von Edge-Standorten. Nachträgliche Updates eines Dienstes, wie das Ändern einer Routenkonfiguration oder übereinstimmende Parameter.

IP-Adressen abrufen

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

Console

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

    Zum Media CDN

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

  3. Die IP-Adressen des Dienstes finden Sie in der Zelle Adressen.

    Wenn die Zelle leer ist, aktualisieren Sie den Browser.

gcloud

Führen Sie folgenden gcloud edge-cache services describe-Befehl aus:

gcloud edge-cache services describe SERVICE

Ersetzen Sie SERVICE durch den Namen des Dienstes.

Die Ausgabe zeigt die IP-Adressen, die Ihrem Dienst zugewiesen wurden:

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

API

Verwenden Sie die Methode edgeCacheServices.get:

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

Ersetzen Sie SERVICE_NAME durch den vollständigen Namen des . Verwenden Sie das folgende Format:

projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID

Ersetzen Sie SERVICE_ID durch den Kurznamen des Dienstes.

Zu den abgerufenen Details gehören die IP-Adressen, die dem Dienst zugewiesen sind:

ipv4Addresses:
    IPV4_ADDRESS
ipv6Addresses:
    IPV6_ADDRESS

Testen, ob eine Antwort im Cache gespeichert wird

Stellen Sie vor dem Testen des Dienstes sicher, dass Sie eine cachefähige App haben Inhalte gespeichert werden, Sie kann von Media CDN abgerufen werden.

Um zu testen, ob Ihr Dienst richtig für das Speichern von Inhalten im Cache konfiguriert ist, verwenden Sie das curl-Befehlszeilentool, um Anfragen zu senden und die Antworten zu prüfen. curl ist auch in Cloud Shell in der Google Cloud Console verfügbar.

Wenn Sie EdgeCacheService mit Ihrer Domain verwenden möchten, können Sie die IP-Adresse von EdgeCacheService einem Domaineintrag zuweisen. Für Weitere Informationen finden Sie unter Domain mit Cloud DNS einrichten. Nachdem Sie Ihre Domain eingerichtet haben, können Sie mit den folgenden curl auf Ihre Inhalte zugreifen Befehl:

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

Wenn Sie DNS nicht so konfiguriert haben, dass es auf Ihre bereitgestellten IP-Adressen verweist, verwenden Sie die Methode resolve-Option zum Überschreiben der von curl verwendeten Adresse.

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

Ersetzen Sie Folgendes:

  • DOMAIN_NAME : die von Ihnen angegebene Hostdomain während der Dienst erstellt wird,
  • IP_ADDRESS: die IP-Adresse des Dienstes als werden in der Spalte Adressen in der Liste der Dienste angezeigt
  • FILE_NAME: der Name der Datei, in die Sie die Datei hochgeladen haben Bucket

Beispiel:

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

Die Ausgabe des Befehls sieht anfangs in etwa so aus: Status miss, da Media CDN den angeforderten Wert bereits vom Ursprung abgerufene Daten:

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

Wenn Sie dieselbe Anfrage beliebig oft senden, wird ein Fehler ausgegeben. Die Ausgabe sollte in etwa so aussehen, mit dem Status hit:

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

Wenn der Status hit nicht angezeigt wird, prüfe Folgendes:

  • Die Antwort kann im Cache gespeichert werden.
  • Der konfigurierte Cache-Modus ermöglicht das Caching der Inhalte.
  • Der Ursprung legt keine Cache-Anweisungen fest, die das Caching verhindern. Weitere Informationen finden Sie unter Cache-Konfiguration.

Sie haben nun eine einfache EdgeCacheService-Ressource getestet, die auf der ganzen Welt. Für einen produktionstauglichen Dienst ist möglicherweise SSL (TLS) erforderlich. Zertifikate, mehreren Ursprüngen und einem Google Cloud Armor-Sicherheitsrichtlinie

Optional: Bereinigung

Löschen Sie alle Ressourcen, die Sie nicht mehr verwenden möchten.

Console

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

    Zum Media CDN

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

  3. Wählen Sie Ihren Dienst aus und klicken Sie auf Löschen.

  4. Klicken Sie auf den Tab Ursprünge.

  5. Wählen Sie den Ursprung aus und klicken Sie auf Löschen.

gcloud

  1. Um die von Ihnen erstellten Ressourcen aufzulisten, verwenden Sie die gcloud edge-cache origins list-Befehl und den Befehl gcloud edge-cache services list.

  2. Löschen Sie den Dienst mit dem gcloud edge-cache services delete-Befehl:

    gcloud edge-cache services delete SERVICE
    

    Ersetzen Sie SERVICE durch den Namen des Dienstes.

  3. Verwenden Sie zum Löschen des Ursprungs den gcloud edge-cache origins delete-Befehl:

    gcloud edge-cache origins delete ORIGIN
    

    Ersetzen Sie ORIGIN durch den Namen des Ursprungsorts.

API

  1. Um die von Ihnen erstellten Ressourcen aufzulisten, verwenden Sie die edgeCacheServices.list-Methode und die Methode edgeCacheOrigins.list.

  2. Löschen Sie den Dienst mit dem edgeCacheServices.delete-Methode:

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

    Ersetzen Sie SERVICE_NAME durch den vollständigen Namen des . Verwenden Sie das folgende Format:

    projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID
    

    Ersetzen Sie SERVICE_ID durch den Kurznamen. der Dienstleistung.

  3. Verwenden Sie zum Löschen des Ursprungs den edgeCacheOrigins.delete-Methode:

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

    Ersetzen Sie ORIGIN durch den vollständigen Namen des Ursprung. Verwenden Sie das folgende Format:

    projects/PROJECT/locations/global/edgeCacheOrigins/ORIGIN_ID
    

    Ersetzen Sie ORIGIN_ID durch den Kurznamen. des Ursprungsorts.

Wiederholen Sie diesen Vorgang für alle anderen Ressourcen, die Sie erstellt haben und die nicht wie den Cloud Storage-Bucket.

Nächste Schritte