Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les azd d’Azure Developer CLI () ajoutent de nouvelles commandes, automatisent les flux de travail et intègrent d’autres services avec azd. Cet article explique les concepts à comprendre avant de créer une extension, comme les outils de développement, le kit de développement logiciel (SDK) et la façon dont azd vous communiquez avec une extension en cours d’exécution. Pour savoir ce que sont les extensions du point de vue de l’utilisateur, consultez la vue d’ensemble des extensions.
Note
L’infrastructure azd d’extension est généralement disponible. Les extensions ou fonctionnalités individuelles peuvent avoir leur propre état d’aperçu.
Extension du développeur
Le moyen le plus rapide de générer des extensions consiste à utiliser l’extension azd développeur (microsoft.azd.extensions). L’extension de développement ajoute un ensemble de commandes dans l’espace de noms azd x qui permettent de générer la structure de votre extension, de la compiler, de l’empaqueter et de la publier :
| Command | Description |
|---|---|
azd x init |
Crée la structure d’un nouveau projet d’extension dans le langage de programmation de votre choix. |
azd x build |
Génère le binaire d’extension pour le développement local. |
azd x watch |
Surveille le projet pour les modifications et régénère et installe automatiquement l’extension. |
azd x pack |
Empaquette les artefacts de l’extension pour préparer la publication. |
azd x release |
Crée une version GitHub pour l’extension. |
azd x publish |
Met à jour un registre d’extensions avec les nouvelles métadonnées d’extension. |
Le guide de démarrage rapide Créer un exemple d’extension vous montre comment installer l’extension pour développeur et créer la structure de base de votre première extension.
L’extension développeur prend en charge les flux de travail de publication basés sur le registre et la distribution d’offres groupées portables. Permet azd x pack de créer des artefacts de plateforme pour la publication de mise en production et le Registre, ou de créer un bundle autonome .zip lorsque vous devez partager une extension sans héberger de registre. Pour obtenir des instructions pas à pas, consultez Publier une extension.
Le framework d’extension et gRPC
azd et les extensions s’exécutent en tant que processus distincts qui communiquent via gRPC. Lorsque vous appelez une commande d’extension, les étapes suivantes se produisent :
-
azddémarre un serveur gRPC sur un port aléatoire et définit laAZD_SERVERvariable d’environnement avec l’adresse du serveur. -
azddéfinit la variable d’environnement, qui est un jeton web JSON signé (JWT) qui accorde à l’extensionAZD_ACCESS_TOKENl’accès auxazdservices pendant toute la durée de vie de la commande. -
azdappelle votre commande d’extension et transmet les arguments, indicateurs et variables d’environnement actuels. - Votre extension utilise un client gRPC pour communiquer avec
azdvia les services du framework, par exemple pour inviter l’utilisateur à agir ou lire la configuration du projet. -
azdattend que la commande se termine et signale un code de sortie différent de zéro en tant qu’erreur.
Ce modèle permet aux extensions d’interagir de azd manière cohérente et sécurisée sans accéder directement à l’état interne azd .
Exigences d’extension au niveau du Project
Les projets peuvent déclarer les extensions dont ils ont besoin dans azure.yaml. Utilisez la requiredVersions.extensions section pour répertorier les ID d’extension et les contraintes de version afin de azd résoudre les versions qui répondent au projet.
requiredVersions:
extensions:
azure.ai.agents: ">=1.0.0"
contoso.azd.tagger: "^2.0.0"
Déclarez les extensions requises lorsqu’un projet dépend des hôtes, fournisseurs, gestionnaires de cycle de vie, validation ou commandes fournis par les extensions. Pour connaître le schéma exact et la syntaxe de version prise en charge, consultez requiredVersions.
Kit de développement logiciel (SDK) azdext
Le azdext package est le Kit de développement logiciel (SDK) Go pour l’infrastructure d’extension. Il fournit un client gRPC et des helpers qui gèrent les détails de communication pour vous, afin que vous puissiez vous concentrer sur votre logique d’extension. Le Kit de développement logiciel (SDK) inclut des helpers pour :
- Générez une commande racine qui inscrit les indicateurs standard
azdet la gestion des variables d’environnement. - Attachez le jeton d’accès
azdaux requêtes sortantes. - Appelez
azdles services du framework, tels que Project, Environment, Account et Prompt. - Inscrivez des gestionnaires d’événements de cycle de vie et des fournisseurs personnalisés via un hôte d’extension.
Pour savoir comment appeler azd des services à partir de votre extension, consultez Communiquer avec azd à l’aide du Kit de développement logiciel (SDK).
Fonctionnalités d’extension
Les fonctionnalités déclarent ce qu’une extension peut faire. Répertoriez les fonctionnalités d’une extension dans son extension.yaml manifeste et azd accorde les autorisations correspondantes au moment de l’exécution. Les fonctionnalités disponibles sont les suivantes :
-
custom-commands: Ajoutez de nouveaux groupes de commandes et commandes àazd. -
lifecycle-events: S’abonner à des événements de cycle de vie de projet et de service, tels quepreprovisionetpostdeploy. -
mcp-server: fournissez des outils MCP (Model Context Protocol) pour les agents IA. -
service-target-provider: fournissez des cibles de déploiement de service personnalisées. -
framework-service-provider: fournissez la prise en charge des builds de langage et d’infrastructure personnalisées. -
provisioning-provider: fournissez une expérience d’approvisionnement d’infrastructure personnalisée. -
validation-provider: Ajouter des vérifications de validation au pipeline de validationazd. -
metadata: fournissez des métadonnées de commande et de configuration enrichies pour la sortie d’aide et IntelliSense.
Pour savoir comment ajouter des fonctionnalités à une extension, consultez Ajouter des fonctionnalités d’extension.
Langues prises en charge
Vous pouvez créer des azd extensions dans n’importe quel langage qui prend en charge gRPC et azd x init inclut des modèles de démarrage pour plusieurs langages. Go offre la prise en charge la plus complète, notamment des fonctions utilitaires SDK de premier ordre azdext, de sorte que les articles de cette section utilisent Go pour tous les exemples.
| Language | Niveau du support |
|---|---|
| Go | Prise en charge optimale et assistance du Kit de développement logiciel (SDK) de première classe. |
| .NET (C#) | Intégration étroite avec un modèle de départ. |
| Python | Bonne intégration avec un modèle de démarrage. |
| JavaScript | Intégration de base à un modèle de démarrage. |
Pour les extensions créées dans des langues autres que Go, vous pouvez générer des clients gRPC à partir des fichiers proto dans le azure/azure-dev référentiel. Pour connaître l’état actuel de la prise en charge du langage, consultez la documentation de l’infrastructure d’extension en amont.
Registres d’extensions
Vous distribuez des extensions via des sources d’extension. Les sources d’extension sont des manifestes basés sur des URL ou basés sur des fichiers qui décrivent les extensions disponibles et leurs artefacts.
azd prend également en charge les fichiers groupés portables pour une installation directe lorsque vous ne souhaitez pas héberger un registre.
- Le registre officiel est préconfiguré dans
azdet héberge des extensions officielles et vérifiées. Les extensions officielles sont développées dans une duplication du référentiel azure/azure-dev . - Les sources basées sur des URL vous permettent d’installer à partir de manifestes de Registre public ou privé distants.
- Les sources basées sur des fichiers vous permettent d’installer à partir de manifestes de Registre locaux pour les scénarios de développement, de test ou hors connexion.
- Les registres de développement et nocturnes sont des sources d’adhésion pour les extensions de travail en cours et intégrées automatiquement. Les extensions du registre de développement ne sont pas signées, non couvertes par support Azure, et peuvent changer ou être supprimées sans préavis.
Pour savoir comment publier une extension dans un registre, consultez Publier une extension.