Créer un plug-in

Cette page explique comment créer des plug-ins d'extensions de service que vous pouvez utiliser pour implémenter l'extensibilité avec les services Google Cloud .

Cette fonctionnalité est disponible en version preview pour Media CDN.

Pour obtenir une présentation du produit, consultez Présentation des extensions de service.

Avant de commencer

  1. Préparez et importez les fichiers requis pour créer un plug-in.

  2. Obtenez les rôles et autorisations IAM (Identity and Access Management) requis.

  3. Activez l'API Network Services si ce n'est pas déjà fait.

    gcloud services enable networkservices.googleapis.com
    
  4. Pour les plug-ins Media CDN, si vous prévoyez d'activer la journalisation, activez l'API Network Actions.

    gcloud services enable networkactions.googleapis.com
    

Créer une ressource de plug-in

Pour créer une ressource de plug-in, vous devez spécifier une image contenant le code du plug-in, ainsi que des libellés et des options de journalisation pour le plug-in.

Console

Pour créer un plug-in, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Extensions de service.

    Accéder aux extensions de service

  2. Cliquez sur l'onglet Plugins.

  3. Cliquez sur Créer un plug-in.

  4. Dans la section Informations de base, procédez comme suit :

    1. Pour Champ d'application, sélectionnez Global ou Régional.

      Si vous définissez le champ d'application sur Régional, sélectionnez également la région.

    2. Saisissez un nom de plug-in unique.

      Le nom doit commencer par une lettre minuscule suivie d'un maximum de 62 caractères (lettres minuscules, chiffres ou traits d'union) et ne doit pas se terminer par un trait d'union.

    3. Facultatif : Saisissez une brève description du plug-in (1 024 caractères maximum).

  5. Dans la section Image Wasm, procédez comme suit :

    1. Pour Nom de la version du plug-in, spécifiez un nom pour la version du plug-in.

      Le nom doit commencer par une lettre minuscule suivie d'un maximum de 62 caractères (lettres minuscules, chiffres ou traits d'union) et ne doit pas se terminer par un trait d'union.

    2. Facultatif : Dans Description de la version du plug-in, saisissez une brève description de la version du plug-in (1 024 caractères maximum).

    3. Pour URL de l'image, saisissez l'URL de l'image de conteneur ou de l'artefact générique contenant le module Wasm depuis le volet Artifact Registry. L'option permettant d'utiliser un dépôt générique est en version Preview.

      Si vous souhaitez spécifier une image de conteneur dans un dépôt Docker, vous pouvez également cliquer sur Sélectionner pour la parcourir et la sélectionner. Le volet Artifact Registry affiche les dossiers du dépôt connecté au projet actuel.

      Pour sélectionner une image provenant d'un autre projet, assurez-vous que les extensions de service y ont accès, puis cliquez sur Modifier à côté du nom du projet.

  6. Facultatif : Dans la section Configuration du plug-in, pour associer les données de configuration au plug-in, cochez la case Ajouter une configuration de plug-in, puis sélectionnez l'une des options suivantes :

    • Importer le fichier de configuration du plug-in Si la taille de votre fichier est inférieure à 900 Kio et qu'il se trouve sur un lecteur local, cliquez sur Parcourir pour le localiser et le sélectionner.

    • Sélectionnez l'image ou l'artefact de configuration du plug-in dans Artifact Registry. Saisissez l'URL de l'artefact générique ou de l'image de conteneur contenant le module Wasm dans le volet "Artifact Registry". L'option permettant d'utiliser un dépôt générique est en version Preview.

      Pour spécifier une image de conteneur dans un dépôt Docker, vous pouvez également cliquer sur Sélectionner pour la parcourir et la sélectionner. Le volet Artifact Registry affiche les dossiers du dépôt connecté au projet actuel.

  7. Facultatif : Dans la section Libellés, cliquez sur Ajouter un libellé. Ensuite, dans la ligne qui s'affiche, procédez comme suit :

    1. Dans le champ Clé, saisissez le nom d'une clé.
    2. Pour Valeur, saisissez une valeur pour la clé.

    Vous pouvez ajouter jusqu'à 64 paires clé-valeur. Pour ajouter d'autres paires clé-valeur, cliquez sur Ajouter un libellé.

    Pour en savoir plus sur les libellés, consultez Créer et mettre à jour des libellés pour les projets.

  8. Facultatif : Dans la section Journalisation, sélectionnez Activer la journalisation, puis procédez comme suit :

    • Pour Fréquence d'échantillonnage, spécifiez une valeur comprise entre 0 et 1. La valeur 0 indique que les messages du journal ne sont pas stockés. La valeur par défaut 1 indique que tous les messages du journal sont stockés. Une valeur à virgule flottante comprise entre 0.0 et 1.0 indique qu'un pourcentage de messages du journal est stocké.

    • Pour Niveau de journalisation minimal, sélectionnez le niveau de gravité minimal des messages de journaux de plug-in à exporter vers Cloud Logging. La valeur par défaut est Info and higher.

  9. Cliquez sur Créer.

gcloud

  1. Créez un plug-in en exécutant la commande gcloud service-extensions wasm-plugins create :

    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
    

    Remplacez les éléments suivants :

    • WASM_PLUGIN : ID ou nom complet du plug-in
    • PLUGIN_DESCRIPTION : description du plug-in
    • LOCATION : emplacement du plug-in (global ou une région)
    • LABELS : libellés sous forme de paires clé/valeur séparées par des virgules
    • LOG_CONFIG : options de journalisation pour le plug-in. Lorsque l'option enable est définie sur false, les journaux ne sont pas capturés pour le plug-in. Pour activer la journalisation, définissez l'option enable sur true. Indiquez ensuite les informations suivantes :

      • sample-rate : taux d'échantillonnage des journaux d'activité (valeur comprise entre 0 et 1). La valeur 0 indique que les messages du journal ne sont pas stockés. La valeur par défaut 1 indique que tous les messages du journal sont stockés. Une valeur à virgule flottante comprise entre 0.0 et 1.0 indique qu'un pourcentage de messages de journaux est stocké.

      • min-log-level : niveau de gravité minimal des messages de journaux de plug-in à exporter vers Cloud Logging. La valeur par défaut est INFO.

    • IMAGE : URI de l'artefact contenant le module Wasm stocké dans le dépôt Artifact Registry. Avant de spécifier une image de conteneur provenant d'un autre projet, assurez-vous que les extensions de service y ont accès.

    • MAIN_VERSION : ID de la version du plug-in à créer et à définir comme version principale (active).

    • PLUGIN_CONFIG, PLUGIN_CONFIG_FILE ou PLUGIN_CONFIG_URI : données de configuration facultatives, qui peuvent être spécifiées respectivement sous forme de texte, de fichier local ou d'image de conteneur dans Artifact Registry

    Exemple :

    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
    

    Pour déployer une nouvelle version, utilisez la commande gcloud service-extensions wasm-plugins update. Spécifiez un nouveau nom d'image et de version :

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

Pour exécuter ces plug-ins, vous pouvez configurer les extensions Cloud Load Balancing et les extensions Media CDN.

Accéder aux images d'un autre projet

Avant de pouvoir sélectionner des images provenant d'un autre projet, l'agent de service Service Extensions doit avoir accès au dépôt du projet et, selon la façon dont votre module Wasm est empaqueté, l'une des autorisations suivantes sur le projet :

  • Pour les artefacts génériques : artifactregistry.files.download
  • Pour les images de conteneurs : artifactregistry.repositories.downloadArtifacts

L'agent de service Service Extensions est nommé comme suit :

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

Remplacez PROJECT_NUMBER par votre numéro de projet.

Étapes suivantes