Créer un plug-in

Cette page explique comment créer des plug-ins Service Extensions 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 Plug-ins.

  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'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.

      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 Service Extensions y a 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 :

    • Importez 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. Dans la section Chiffrement, choisissez le mécanisme de chiffrement du plug-in. Cette option n'est disponible que pour les plug-ins régionaux.

  9. 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 de 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.

  10. 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 \
        --kms-key-name=KEY_NAME
    

    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é, sous la forme d'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 de journal 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.

    • KEY_NAME : pour les plug-ins régionaux, nom complet de la clé de chiffrement gérée par le client au format suivant : projects/PROJECT/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.

      Remplacez les éléments suivants :

      • PROJECT : ID du projet contenant la clé
      • LOCATION : emplacement de la clé
      • KEYRING_NAME : nom du trousseau de clés
      • KEY_NAME : nom de la clé

      Si cette option n'est pas spécifiée, le mécanisme de chiffrement par défaut de Google est utilisé.

    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