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
Préparez et importez les fichiers requis pour créer un plug-in.
Obtenez les rôles et autorisations IAM (Identity and Access Management) requis.
Activez l'API Network Services si ce n'est pas déjà fait.
gcloud services enable networkservices.googleapis.com
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 :
Dans la console Google Cloud , accédez à la page Extensions de service.
Cliquez sur l'onglet Plugins.
Cliquez sur Créer un plug-in.
Dans la section Informations de base, procédez comme suit :
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.
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.
Facultatif : Saisissez une brève description du plug-in (1 024 caractères maximum).
Dans la section Image Wasm, procédez comme suit :
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.
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).
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.
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.
Facultatif : Dans la section Libellés, cliquez sur Ajouter un libellé. Ensuite, dans la ligne qui s'affiche, procédez comme suit :
- Dans le champ Clé, saisissez le nom d'une clé.
- 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.
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
0et1. La valeur0indique que les messages du journal ne sont pas stockés. La valeur par défaut1indique que tous les messages du journal sont stockés. Une valeur à virgule flottante comprise entre0.0et1.0indique 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.
Cliquez sur Créer.
gcloud
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_URIRemplacez les éléments suivants :
WASM_PLUGIN: ID ou nom complet du plug-inPLUGIN_DESCRIPTION: description du plug-inLOCATION: emplacement du plug-in (globalou une région)LABELS: libellés sous forme de paires clé/valeur séparées par des virgulesLOG_CONFIG: options de journalisation pour le plug-in. Lorsque l'optionenableest définie surfalse, les journaux ne sont pas capturés pour le plug-in. Pour activer la journalisation, définissez l'optionenablesurtrue. Indiquez ensuite les informations suivantes :sample-rate: taux d'échantillonnage des journaux d'activité (valeur comprise entre0et1). La valeur0indique que les messages du journal ne sont pas stockés. La valeur par défaut1indique que tous les messages du journal sont stockés. Une valeur à virgule flottante comprise entre0.0et1.0indique 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 estINFO.
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_FILEouPLUGIN_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.txtPour 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
- Pour les plug-ins Cloud Load Balancing, consultez la liste des équilibreurs de charge d'application compatibles.
- Découvrez comment configurer les extensions en périphérie, les extensions de route et les extensions de trafic de Cloud Load Balancing à l'aide de plug-ins.
- Découvrez comment associer des plug-ins Media CDN à des routes.
- Découvrez comment gérer les plug-ins.
- Consultez la présentation des extensions de service.