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.

Hinweise

  1. Vorbereiten und Hochladen der erforderlichen Dateien zum Erstellen eines Plug‑ins

  2. Erforderliche IAM-Rollen und -Berechtigungen (Identity and Access Management) abrufen

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

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

    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 angeben sowie Labels und Logging-Optionen für das Plug‑in.

Console

So erstellen Sie ein Plug-in:

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

    Zu den Diensterweiterungen

  2. Klicken Sie auf den Tab Plugins.

  3. Klicken Sie auf Plug-in erstellen.

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

    1. Wählen Sie unter Umfang 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 Plugins 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 für Image-URL die URL für das generische Artefakt oder Container-Image mit dem Wasm-Modul aus dem Bereich „Artifact Registry“ ein. Die Option, ein generisches Repository zu verwenden, befindet sich in der Vorschau.

      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 Bild aus einem anderen Projekt auswählen möchten, muss Service Extensions Zugriff darauf haben. 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 eine der folgenden Optionen aus:

    • Datei für Plug-in-Konfiguration hochladen: Wenn die Dateigröße weniger als 900 KiB beträgt und die Datei auf einem lokalen Laufwerk gespeichert ist, klicken Sie auf Durchsuchen, um sie zu suchen und auszuwählen.

    • Image oder Artefakt für die Plug‑in-Konfiguration aus Artifact Registry auswählen 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 Vorschau.

      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 für 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. Optional: Wählen Sie im Bereich 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 keine Log-Nachrichten gespeichert werden. Der Standardwert 1 gibt an, dass alle Log-Nachrichten gespeichert werden. Ein Gleitkommawert zwischen 0.0 und 1.0 gibt an, dass ein Prozentsatz der Log-Nachrichten gespeichert wird.

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

  9. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie ein Plug-in mit dem gcloud service-extensions wasm-plugins create-Befehl:

    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
    

    Ersetzen Sie Folgendes:

    • WASM_PLUGIN: die ID oder der voll qualifizierte Name des Plug-ins
    • PLUGIN_DESCRIPTION: eine Beschreibung des Plugins
    • LOCATION: Der Standort des Plug-ins als global oder eine Region
    • LABELS: Labels in Form von Schlüssel/Wert-Paaren, die durch Kommas getrennt sind
    • LOG_CONFIG: Logging-Optionen für das Plug-in. Wenn die Option enable auf false gesetzt ist, werden keine Logs für das Plug-in erfasst. Wenn Sie das Logging aktivieren möchten, legen Sie die Option enable auf true fest. Geben Sie dann die folgenden Details an:

      • sample-rate: Die Samplingrate von Aktivitätsprotokollen als Wert zwischen 0 und 1. Der Wert 0 gibt an, dass keine Log-Nachrichten gespeichert werden. Der Standardwert 1 gibt an, dass alle Log-Nachrichten gespeichert werden. Ein Gleitkommawert zwischen 0.0 und 1.0 gibt an, dass ein Prozentsatz der Log-Nachrichten gespeichert wird.

      • min-log-level: die minimale Schweregradstufe von Plug-in-Log-Meldungen, 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 Plugin-Version, die erstellt und als Hauptversion (aktiv) 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

    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 gcloud service-extensions wasm-plugins update-Befehl. Geben Sie einen neuen Namen für das Image und die Version 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 Bilder in einem anderen Projekt zugreifen

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

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

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

service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com

Ersetzen Sie PROJECT_NUMBER durch Ihre Projektnummer.

Nächste Schritte