Cette page explique comment créer des plug-ins d'extensions de service que vous pouvez utiliser pour implémenter l'extensibilité avec des Google Cloud services.
Cette fonctionnalité est disponible en version preview pour Media CDN.
Pour obtenir une présentation du produit, consultez la page 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.
Si ce n'est pas déjà fait, activez l'API Network Services.
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 étiquettes et des options de journalisation pour le plug-in.
Console
Pour créer un plug-in, procédez comme suit :
Dans la Google Cloud console, accédez à la page Extensions de service.
Cliquez sur l'onglet Plug-ins.
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 de 1 à 62 caractères (lettres minuscules, chiffres ou traits d'union). Il ne peut 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 :
Dans le champ 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 de 1 à 62 caractères (lettres minuscules, chiffres ou traits d'union). Il ne peut pas se terminer par un trait d'union.
Facultatif : Dans le champ Description de la version du plug-in, saisissez une brève description de la version du plug-in (1 024 caractères maximum).
Dans le champ 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 disponible 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 d'un autre projet, assurez-vous que Service Extensions y a 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, et 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électionner 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 disponible 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 un nom de clé.
- Dans le champ 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.
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.
- Clé de chiffrement gérée par Google. Chiffrez le contenu du plug-in avec le mécanisme de chiffrement par défaut de Google.
- Clé Cloud KMS. Chiffrez le contenu du plug-in avec une clé de chiffrement gérée par le client créée à l'aide de Cloud Key Management Service. Dans ce cas, pour Type de gestion des clés, sélectionnez Cloud KMS. Sélectionnez ensuite une clé Cloud KMS.
Facultatif : Dans la section Journalisation , sélectionnez Activer la journalisation , puis procédez comme suit :
Dans le champ Taux d'échantillonnage, spécifiez une valeur comprise entre
0et1. La valeur0indique que les messages de journal ne sont pas stockés. La valeur par défaut1indique que tous les messages de journal sont stockés. Une valeur à virgule flottante comprise entre0.0et1.0indique qu'un pourcentage des messages de journal est stocké.Dans le champ Niveau de journalisation minimal, sélectionnez le niveau de gravité minimal des messages de journal du 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
gcloud service-extensions wasm-plugins createcommande :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_NAMERemplacez 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 du 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 de journal ne sont pas stockés. La valeur par défaut1indique que tous les messages de journal sont stockés. Une valeur à virgule flottante comprise entre0.0et1.0indique qu'un pourcentage des messages de journal est stocké.min-log-level: niveau de gravité minimal des messages de journal du 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 d'un autre projet, assurez-vous que Service Extensions y a 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, ouPLUGIN_CONFIG_URI: les données de configuration facultatives, qui peuvent être spécifiées sous forme de texte, de fichier local ou d'image de conteneur dans Artifact Registry, respectivement.-
Remplacez les éléments suivants :
PROJECT: ID du projet contenant la cléLOCATION: emplacement de la cléKEYRING_NAME: nom du trousseau de clésKEY_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.txtPour déployer une nouvelle version, utilisez la
gcloud service-extensions wasm-plugins updatecommande. Spécifiez une nouvelle image et un nouveau nom 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 des extensions Cloud Load Balancing et des extensions Media CDN.
Accéder aux images d'un autre projet
Avant de pouvoir sélectionner des images 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.
Étape suivante
- Consultez les équilibreurs de charge d'application compatibles avec les plug-ins Cloud Load Balancing.
- Découvrez comment configurer les extensions de périphérie, les extensions de routage, et les extensions de trafic 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.