Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure Developer CLI (azd) Erweiterungen fügen neue Befehle hinzu, automatisieren Workflows und integrieren andere Dienste in azd. In diesem Artikel werden die Konzepte erläutert, die Sie verstehen müssen, bevor Sie eine Erweiterung erstellen, z. B. die Entwicklertools, das Software Development Kit (SDK) und die azd Kommunikation mit einer ausgeführten Erweiterung. Informationen dazu, welche Erweiterungen aus Benutzerperspektive stammen, finden Sie in der Übersicht über Erweiterungen.
Note
Das Erweiterungsframework azd ist allgemein verfügbar. Einzelne Erweiterungen oder Funktionen verfügen möglicherweise über einen eigenen Vorschaustatus.
Die Entwicklererweiterung
Die schnellste Möglichkeit zum Erstellen von Erweiterungen ist die Verwendung der azd Entwicklererweiterung (microsoft.azd.extensions). Die Entwicklererweiterung fügt im Namespace azd x eine Reihe von Befehlen hinzu, mit denen Sie das Grundgerüst Ihrer Erweiterung erstellen, sie bauen, paketieren und veröffentlichen können:
| Command | Description |
|---|---|
azd x init |
Erstellt die Grundstruktur für ein neues Erweiterungsprojekt in der Sprache Ihrer Wahl. |
azd x build |
Erstellt die Binärdatei der Erweiterung für die lokale Entwicklung. |
azd x watch |
Überwacht das Projekt auf Änderungen und erstellt die Erweiterung automatisch neu und installiert sie. |
azd x pack |
Erstellt ein Paket aus den Artefakten der Erweiterung, um sie zur Veröffentlichung vorzubereiten. |
azd x release |
Erstellt eine GitHub Version für die Erweiterung. |
azd x publish |
Aktualisiert eine Erweiterungsregistrierung mit den neuen Erweiterungsmetadaten. |
In der Schnellstartanleitung zum Erstellen einer Beispielerweiterung wird gezeigt, wie Sie die Entwicklererweiterung installieren und das Gerüst für Die erste Erweiterung erstellen.
Die Entwicklererweiterung unterstützt registrierungsbasierte Veröffentlichungsworkflows und portierbare Bundleverteilung. Dient azd x pack zum Erstellen von Plattformartefakten für die Veröffentlichung und Registrierungsveröffentlichung oder zum Erstellen eines eigenständigen .zip Bündels, wenn Sie eine Erweiterung freigeben müssen, ohne eine Registrierung zu hosten. Eine schrittweise Anleitung finden Sie unter Veröffentlichen einer Erweiterung.
Das Erweiterungsframework und gRPC
azd und Erweiterungen werden als separate Prozesse ausgeführt, die über gRPC kommunizieren. Wenn Sie einen Erweiterungsbefehl aufrufen, treten die folgenden Schritte auf:
-
azdstartet einen gRPC-Server auf einem zufälligen Port und legt dieAZD_SERVERUmgebungsvariable mit der Serveradresse fest. -
azdlegt die Umgebungsvariable fest, bei derAZD_ACCESS_TOKENes sich um ein signiertes JSON-Webtoken (JWT) handelt, das den Erweiterungszugriff aufazdDienste für die Lebensdauer des Befehls gewährt. -
azdruft den Erweiterungsbefehl auf und übergibt die aktuellen Argumente, Flags und Umgebungsvariablen. - Ihre Erweiterung verwendet einen gRPC-Client, um über die Framework-Dienste mit
azdzu kommunizieren, beispielsweise um den Benutzer zu einer Eingabe aufzufordern oder die Projektkonfiguration zu lesen. -
azdwartet, bis der Befehl abgeschlossen ist, und meldet einen Exitcode ungleich null als Fehler.
Mit diesem Modell können Erweiterungen auf konsistente und sichere Weise mit azd interagieren, ohne direkt auf den internen azd-Zustand zuzugreifen.
Project-Level-Erweiterungsanforderungen
Projekte können die erweiterungen deklarieren, in azure.yamldenen sie erforderlich sind. Verwenden Sie den requiredVersions.extensions Abschnitt, um Erweiterungs-IDs und Versionsbeschränkungen aufzulisten, damit azd die Versionen aufgelöst werden können, die dem Projekt entsprechen.
requiredVersions:
extensions:
azure.ai.agents: ">=1.0.0"
contoso.azd.tagger: "^2.0.0"
Deklarieren Sie die erforderlichen Erweiterungen, wenn ein Projekt von von Erweiterungen bereitgestellten Hosts, Anbietern, Lebenszyklushandlern, Überprüfungen oder Befehlen abhängt. Die genaue Schemasyntax und die unterstützte Versionssyntax finden Sie unter requiredVersions.
Das Azdext SDK
Das azdext Paket ist das Go SDK für das Erweiterungsframework. Es stellt einen gRPC-Client und Hilfsprogramme bereit, die die Kommunikationsdetails für Sie verarbeiten, damit Sie sich auf Ihre Erweiterungslogik konzentrieren können. Das SDK enthält Hilfsfunktionen für Folgendes:
- Erstellen Sie einen Stammbefehl, der die Standardkennzeichnungen
azdund die Behandlung von Umgebungsvariablen registriert. - Fügen Sie das
azdZugriffstoken ausgehenden Anfragen hinzu. - Framework-Dienste
azdwie den Diensten Projekt, Umgebung, Konto und Prompt aufrufen. - Registrieren von Lebenszyklusereignishandlern und benutzerdefinierten Anbietern über einen Erweiterungshost.
Informationen zum Aufrufen azd von Diensten aus Ihrer Erweiterung finden Sie unter "Kommunizieren mit azd" mithilfe des SDK.
Erweiterungsfunktionen
Funktionen deklarieren, was eine Erweiterung tun kann. Führe die Fähigkeiten einer Erweiterung im extension.yaml Manifest auf, und azd erteilt die entsprechenden Berechtigungen zur Laufzeit. Zu den verfügbaren Funktionen gehören:
-
custom-commands: Fügen Sie neue Befehlsgruppen und Befehle hinzu.azd -
lifecycle-events: Abonnieren Sie Projekt- und Servicelebenszyklusereignisse, z. B.preprovisionundpostdeploy. -
mcp-server: Bereitstellen von MCP-Tools (Model Context Protocol) für KI-Agents. -
service-target-provider: Bereitstellen benutzerdefinierter Dienstbereitstellungsziele. -
framework-service-provider: Stellen Sie unterstützung für benutzerdefinierte Sprachen und Framework-Builds bereit. -
provisioning-provider: Stellen Sie einen benutzerdefinierten Ablauf für die Infrastrukturbereitstellung bereit. -
validation-provider: Validierungsprüfungen zurazdValidierungspipeline beitragen. -
metadata: Stellen Sie umfangreiche Befehls- und Konfigurationsmetadaten für die Hilfeausgabe und IntelliSense bereit.
Informationen zum Hinzufügen von Funktionen zu einer Erweiterung finden Sie unter Hinzufügen von Erweiterungsfunktionen.
Unterstützte Sprachen
Sie können Erweiterungen in jeder Sprache erstellen azd , die gRPC unterstützt, und azd x init Startvorlagen für mehrere Sprachen enthält. Go verfügt über den vollständigsten Support, einschließlich erstklassiger SDK-Hilfsprogramme azdext , sodass die Artikel in diesem Abschnitt go für alle Beispiele verwenden.
| Language | Supportstufe |
|---|---|
| Go | Optimale Unterstützung und erstklassige SDK-Hilfsprogramme. |
| .NET (C#) | Starke Integration in eine Startvorlage. |
| Python | Gute Integration mit einer Startvorlage. |
| JavaScript | Grundlegende Integration mit einer Startervorlage. |
Für Erweiterungen, die in anderen Sprachen als Go erstellt wurden, können Sie gRPC-Clients aus den Protodateien im azure/azure-dev Repository generieren. Den aktuellen Status der Sprachunterstützung finden Sie in der Dokumentation zum upstream-Erweiterungsframework.
Erweiterungsregister
Sie verteilen Erweiterungen über Erweiterungsquellen. Erweiterungsquellen sind URL-basierte oder dateibasierte Manifeste, die verfügbare Erweiterungen und ihre Artefakte beschreiben.
azd unterstützt auch portable Bundledateien für die direkte Installation, wenn Sie keine Registrierung hosten möchten.
- Die offizielle Registry ist in
azdvorkonfiguriert und enthält geprüfte Erweiterungen des Erstanbieters. Offizielle Erweiterungen werden in einer Verzweigung des Azure/Azure-Dev-Repositorys entwickelt. - MIT URL-basierten Quellen können Sie remote öffentliche oder private Registrierungsmanifeste installieren.
- Mit dateibasierten Quellen können Sie aus lokalen Registrierungsmanifesten für Entwicklungs-, Test- oder Offlineszenarien installieren.
- Die Entwicklungs - und Nachtregistrierungen sind Opt-In-Quellen für laufende Arbeiten und automatisch integrierte Erstanbietererweiterungen. Erweiterungen in der Dev-Registrierung sind nicht signiert, nicht durch Azure-Support abgedeckt und können ohne Vorheriges geändert oder entfernt werden.
Informationen zum Veröffentlichen einer Erweiterung in einer Registrierung finden Sie unter Veröffentlichen einer Erweiterung.