Plug‑in erstellen

Auf dieser Seite wird beschrieben, wie Sie Service Extensions-Plug-ins erstellen, mit denen Sie die Erweiterbarkeit mit Google Cloud -Diensten implementieren können.

Dieses Feature befindet sich im Vorschaumodus für Media CDN.

Eine Produktübersicht finden Sie unter Übersicht über Diensterweiterungen.

Hinweis

  1. Bereiten Sie die erforderlichen Dateien vor und laden Sie sie hoch, um ein Plug-in zu erstellen.

  2. Rufen Sie die erforderlichen IAM-Rollen und -Berechtigungen (Identity and Access Management) ab.

  3. Aktivieren Sie die Network Services API, falls sie noch nicht aktiviert ist.

    gcloud services enable networkservices.googleapis.com
    
  4. Wenn Sie Logging für Media CDN-Plug-ins aktivieren möchten, aktivieren Sie die Network Actions API.

    gcloud services enable networkactions.googleapis.com
    

Plug‑in-Ressource erstellen

Zum Erstellen einer Plug-in-Ressource müssen Sie ein Image mit dem Plug-in-Code sowie Labels und Logging-Optionen für das Plug-in angeben.

Console

So erstellen Sie ein Plug-in:

  1. Rufen Sie in der Google Cloud Console die Seite Service Extensions auf.

    Zu den Diensterweiterungen

  2. Klicken Sie auf den Tab Plug-ins.

  3. Klicken Sie auf Plug-in erstellen.

  4. Führen Sie im Abschnitt Grundlagen folgende Schritte aus:

    1. Wählen Sie unter Bereich entweder Global oder Regional aus.

      Wenn Sie den Bereich auf Regional festlegen, wählen Sie auch die Region aus.

    2. Geben Sie einen eindeutigen Plug-in-Namen ein.

      Der Name muss mit einem Kleinbuchstaben beginnen, gefolgt von bis zu 62 Kleinbuchstaben, Ziffern oder Bindestrichen. Das letzte Zeichen darf kein Bindestrich sein.

    3. Optional: Geben Sie eine kurze Beschreibung des Plug-ins mit bis zu 1.024 Zeichen ein.

  5. Führen Sie im Abschnitt Wasm-Image folgende Schritte aus:

    1. Geben Sie unter Name der Plug-in-Version einen Namen für die Plug-in-Version an.

      Der Name muss mit einem Kleinbuchstaben beginnen, gefolgt von bis zu 62 Kleinbuchstaben, Ziffern oder Bindestrichen. Das letzte Zeichen darf kein Bindestrich sein.

    2. Optional: Geben Sie unter Beschreibung der Plug-in-Version eine kurze Beschreibung der Plug-in-Version mit bis zu 1.024 Zeichen ein.

    3. Geben Sie unter Image-URL die URL für das generische Artefakt oder Container-Image mit dem Wasm-Modul aus dem Artifact Registry-Bereich ein. Die Option, ein generisches Repository zu verwenden, befindet sich in der Vorabversion.

      Wenn Sie ein Container-Image in einem Docker-Repository angeben möchten, können Sie alternativ auf Auswählen klicken, um es zu suchen und auszuwählen. Im Bereich „Artifact Registry“ werden die Ordner im Repository angezeigt, das mit dem aktuellen Projekt verbunden ist.

      Wenn Sie ein Image aus einem anderen Projekt auswählen möchten, müssen Sie dafür sorgen, dass Service Extensions darauf zugreifen kann. Klicken Sie dann neben dem Projektnamen auf Ändern.

  6. Optional: Wenn Sie im Abschnitt Plug-in-Konfiguration die Konfigurationsdaten mit dem Plug-in verknüpfen möchten, setzen Sie ein Häkchen bei Plug-in-Konfiguration hinzufügen und wählen Sie dann eine der folgenden Optionen aus:

    • Plug-in-Konfigurationsdatei hochladen. Wenn die Datei kleiner als 900 KiB ist und sich auf einem lokalen Laufwerk befindet, klicken Sie auf Durchsuchen, um sie zu suchen und auszuwählen.

    • Wählen Sie das Image oder Artefakt für die Plug‑in-Konfiguration aus Artifact Registry aus. Geben Sie im Bereich „Artifact Registry“ die URL für das generische Artefakt oder Container-Image mit dem Wasm-Modul ein. Die Option, ein generisches Repository zu verwenden, befindet sich in der Vorabversion.

      Wenn Sie ein Container-Image in einem Docker-Repository angeben möchten, können Sie alternativ auf Auswählen klicken, um es zu suchen und auszuwählen. Im Bereich „Artifact Registry“ werden die Ordner im Repository angezeigt, das mit dem aktuellen Projekt verbunden ist.

  7. Optional: Klicken Sie im Bereich Labels auf Label hinzufügen. Führen Sie dann in der angezeigten Zeile die folgenden Schritte aus:

    1. Geben Sie unter Schlüssel einen Schlüsselnamen ein.
    2. Geben Sie für Wert einen Wert für den Schlüssel ein.

    Sie können maximal 64 Schlüssel/Wert-Paare hinzufügen. Wenn Sie weitere Schlüssel/Wert-Paare hinzufügen möchten, klicken Sie auf Label hinzufügen.

    Weitere Informationen zu Labels finden Sie unter Labels für Projekte erstellen und aktualisieren.

  8. Wählen Sie im Abschnitt Verschlüsselung den Verschlüsselungsmechanismus für das Plug-in aus. Diese Option ist nur für regionale Plug-ins verfügbar.

    • Von Google verwalteter Verschlüsselungsschlüssel. Verschlüsseln Sie Plug-in-Inhalte mit dem Google-Standardverschlüsselungsmechanismus.
    • Cloud KMS-Schlüssel. Verschlüsseln Sie Plug-in-Inhalte mit einem kundenverwalteten Verschlüsselungsschlüssel, der mit dem Cloud Key Management Service erstellt wurde. Wählen Sie in diesem Fall für Schlüsselverwaltungstyp die Option Cloud KMS aus. Wählen Sie dann einen Cloud KMS-Schlüssel aus.
  9. Optional: Wählen Sie im Abschnitt Logging die Option Logging aktivieren aus und gehen Sie so vor:

    • Geben Sie für Abtastrate einen Wert zwischen 0 und 1 an. Der Wert 0 gibt an, dass Logeinträge nicht gespeichert werden. Der Standardwert 1 gibt an, dass alle Logeinträge gespeichert werden. Ein Gleitkommawert zwischen 0.0 und 1.0 gibt an, dass ein Prozentsatz der Logeinträge gespeichert wird.

    • Wählen Sie für Mindestlogebene den Mindestschweregrad der Plug-in-Logeinträge aus, die nach Cloud Logging exportiert werden sollen. Der Standardwert ist Info and higher.

  10. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie ein Plug-in, indem Sie den Befehl gcloud service-extensions wasm-plugins create ausführen:

    gcloud service-extensions wasm-plugins create WASM_PLUGIN \
        --description=PLUGIN_DESCRIPTION \
        --location=LOCATION \
        --labels=[LABELS,...] \
        --log-config=[LOG_CONFIG,...] \
        --image=IMAGE \
        --main-version=MAIN_VERSION \
        --plugin-config=PLUGIN_CONFIG |
            --plugin-config-file=PLUGIN_CONFIG_FILE |
            --plugin-config-uri=PLUGIN_CONFIG_URI \
        --kms-key-name=KEY_NAME
    

    Ersetzen Sie Folgendes:

    • WASM_PLUGIN: die ID oder der vollständig qualifizierte Name des Plug-ins
    • PLUGIN_DESCRIPTION: eine Beschreibung des Plug-ins
    • LOCATION: der Speicherort des Plug-ins, entweder global oder eine Region
    • LABELS: Labels in Form von Schlüssel/Wert-Paaren, durch Kommas getrennt
    • LOG_CONFIG: Logging-Optionen für das Plug-in. Wenn die Option enable auf false gesetzt ist, werden für das Plug-in keine Logs erfasst. Legen Sie für die Option enable den Wert true fest, um das Logging zu aktivieren. Geben Sie dann die folgenden Details an:

      • sample-rate: die Abtastrate von Aktivitätsprotokollen als Wert zwischen 0 und 1. Der Wert 0 gibt an, dass Logeinträge nicht gespeichert werden. Der Standardwert 1 gibt an, dass alle Logeinträge gespeichert werden. Ein Gleitkommawert zwischen 0.0 und 1.0 gibt an, dass ein Prozentsatz der Logeinträge gespeichert wird.

      • min-log-level: die niedrigste Schweregradstufe von Plug-in-Logeinträgen, die nach Cloud Logging exportiert werden sollen. Der Standardwert ist INFO.

    • IMAGE: der URI des Artefakts, das das Wasm-Modul enthält, das im Artifact Registry-Repository gespeichert ist. Bevor Sie ein Container-Image aus einem anderen Projekt angeben, müssen Sie dafür sorgen, dass Service Extensions darauf zugreifen kann.

    • MAIN_VERSION: Die ID der Plug-in-Version, die erstellt und als Hauptversion (aktive Version) festgelegt werden soll.

    • PLUGIN_CONFIG, PLUGIN_CONFIG_FILE oder PLUGIN_CONFIG_URI: die optionalen Konfigurationsdaten, die als Text, lokale Datei oder Container-Image in Artifact Registry angegeben werden können.

    • KEY_NAME: Für regionale Plug-ins der vollständig qualifizierte Name des kundenverwalteten Verschlüsselungsschlüssels im folgenden Format: projects/PROJECT/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.

      Ersetzen Sie Folgendes:

      • PROJECT: die ID des Projekts, das den Schlüssel enthält
      • LOCATION: der Speicherort des Schlüssels
      • KEYRING_NAME ist der Name des Schlüsselbunds.
      • KEY_NAME: der Schlüsselname

      Wenn diese Option nicht angegeben ist, wird der Google-Standardverschlüsselungsmechanismus verwendet.

    Beispiel:

    gcloud service-extensions wasm-plugins create my-plugin \
        --description="This is my plugin." \
        --log-config=enable=true,sample-rate=0.5,min-log-level=INFO \
        --labels=key1=value1,key2=value2 \
        --image=...-docker.pkg.dev/my-project/repository/container:tag \
        --main-version=v1 \
        --plugin-config-file=config.txt
    

    Verwenden Sie zum Bereitstellen einer neuen Version den Befehl gcloud service-extensions wasm-plugins update. Geben Sie einen neuen Image- und Versionsnamen an:

    gcloud service-extensions wasm-plugins update my-plugin \
        --image=...-docker.pkg.dev/my-project/repository/container:tag \
        --main-version=v2
    

Zum Ausführen dieser Plug-ins können Sie Cloud Load Balancing-Erweiterungen und Media CDN-Erweiterungen konfigurieren.

Auf Images in einem anderen Projekt zugreifen

Bevor Sie Images aus einem anderen Projekt auswählen können, muss der Service Extensions-Dienst-Agent Zugriff auf das Projekt-Repository haben und, je nachdem, wie Ihr Wasm-Modul verpackt ist, eine der folgenden Berechtigungen für das Projekt haben:

  • Für generische Artefakte: artifactregistry.files.download
  • Für Container-Images: artifactregistry.repositories.downloadArtifacts

Der Dienst-Agent für Diensterweiterungen hat folgenden Namen:

service-PROJECT_NUMBER@gcp-sa-networkactions.

Ersetzen Sie PROJECT_NUMBER durch Ihre Projektnummer.

Nächste Schritte