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.
Jede Azure Developer CLI (azd)-Erweiterung enthält ein extension.yaml Manifest, das seine Metadaten und Funktionen beschreibt.
azd verwendet diese Metadaten in der Erweiterungsregistrierung, um Benutzern zu helfen, Ihre Erweiterung zu ermitteln, zu installieren und zu verstehen. In diesem Artikel werden die Manifesteigenschaften mithilfe der Beispielerweiterung Contoso Resource Tagger aus der Schnellstartanleitung zum Erstellen einer Beispielerweiterung erläutert. Sie können dieselben Konzepte auf jede Erweiterung anwenden.
Note
azd Erweiterungen befinden sich derzeit in der Betaversion.
Manifesteigenschaften
Das extension.yaml Manifest unterstützt die folgenden Eigenschaften.
Erforderliche Eigenschaften
Jedes Manifest muss die folgenden Eigenschaften enthalten:
| Eigentum | Description |
|---|---|
id |
Eindeutiger Bezeichner für die Erweiterung, z. B. contoso.azd.tagger. |
version |
Semantische Version im MAJOR.MINOR.PATCH Format. |
displayName |
Lesbarer Name der Erweiterung. |
description |
Detaillierte Beschreibung der Erweiterung. |
Jedes Manifest muss außerdem entweder capabilities oder dependencies enthalten. Eine Erweiterung, die Befehle oder Anbieter bereitstellt, deklariert capabilities. Ein Erweiterungspaket deklariert stattdessen dependencies.
Optionale Eigenschaften:
Das Manifest unterstützt auch die folgenden optionalen Eigenschaften:
| Eigentum | Description |
|---|---|
namespace |
Befehlsnamensraum, der die Befehle der Erweiterung gruppiert, z. B. tagger. |
entryPoint |
Ausführbare Datei oder Skript, die als Einstiegspunkt dient. |
language |
Programmiersprache, in der die Erweiterung geschrieben ist, wie go. |
capabilities |
Vielzahl an Erweiterungsfunktionen. |
usage |
Anweisungen zur Verwendung der Erweiterung. |
examples |
Array von Verwendungsbeispielen mit einem Namen, einer Beschreibung und einer Verwendung. |
tags |
Schlüsselwörter für Kategorisierung und Filterung. |
dependencies |
Andere Erweiterungen, von denen diese Erweiterung abhängt. |
providers |
Liste der von der Erweiterung registrierten Anbieter. |
platforms |
Plattformspezifische Metadaten. |
mcp |
Modellkontextprotokollserverkonfiguration. |
requiredAzdVersion |
Semantische Versionsbeschränkung für die Version, die zur Verwendung der Erweiterung erforderlich ist, z. B. >= 1.24.0. |
Beispielmanifest
Das folgende Beispiel zeigt ein extension.yaml-Manifest für die Beispielerweiterung Contoso Resource Tagger:
# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/refs/heads/main/cli/azd/extensions/extension.schema.json
id: contoso.azd.tagger
namespace: tagger
displayName: Contoso Resource Tagger
description: Standardize and report Azure resource tags for an azd project.
usage: azd tagger <command> [options]
version: 0.1.0
language: go
capabilities:
- custom-commands
examples:
- name: show
description: Displays a greeting from the extension.
usage: azd tagger show
tags:
- tags
- governance
- example
Der $schema Kommentar oben in der Datei ermöglicht die Überprüfung und IntelliSense in Editoren, die den YAML-Sprachserver unterstützen.
Deklarieren von Funktionen
Das capabilities Array deklariert, was Ihre Erweiterung tun kann.
azd gewährt die entsprechenden Berechtigungen zur Laufzeit, und einige Frameworkdienste schlagen mit einem Berechtigungsfehler fehl, wenn die übereinstimmende Funktion nicht deklariert ist. Die Beispielerweiterung beginnt nur mit custom-commands:
capabilities:
- custom-commands
Wenn Sie funktionen in den anderen Artikeln hinzufügen, fügen Sie weitere Funktionen hinzu. Fügen Sie beispielsweise Erweiterungsfunktionen hinzulifecycle-events, und fügen Sie einen MCP-Server zu einer Erweiterung hinzumcp-server. Die verfügbaren Funktionen sind:
-
custom-commands: Fügen Sieazdunter Ihrem Namespace neue Befehle hinzu, z. B.azd tagger show. -
lifecycle-events: Führen Sie benutzerdefinierte Logik aus, wennazdEreignisse wiepreprovisionoderpostdeployauslöst. -
mcp-server: Verfügbarmachen von Modellkontextprotokolltools, die KI-Agents aufrufen können. -
service-target-provider: Fügen Sie ein benutzerdefiniertes Bereitstellungsziel für einhosthinzu, dasazdstandardmäßig nicht unterstützt. -
framework-service-provider: Fügen Sie Unterstützung für Build und Paketierung für einlanguagehinzu, dasazdstandardmäßig nicht erkennt. -
provisioning-provider: Ersetzen Sie die Art und Weise, wieazdInfrastruktur bereitstellt, durch eine benutzerdefinierte Implementierung. -
validation-provider: Fügen Sie Überprüfungen hinzu, die in der Überprüfungspipelineazdausgeführt werden. -
metadata: Bereitstellen detaillierterer Befehls- und Konfigurationsmetadaten für die Hilfeausgabe und IntelliSense.
Eine ausführliche erläuterung der einzelnen Funktionen mit Beispielen finden Sie unter Hinzufügen von Erweiterungsfunktionen.
Hinzufügen von Verwendungsbeispielen
Das examples Array dokumentiert häufig verwendete Methoden für die Verwendung Ihrer Erweiterung.
azd zeigt diese Beispiele an, wenn Benutzer Details zu Ihrer Erweiterung anzeigen:
examples:
- name: show
description: Displays a greeting from the extension.
usage: azd tagger show
Registrieren von Anbietern
Wenn Ihre Erweiterung benutzerdefinierte Dienstziele oder Frameworkdienste bereitstellt, deklarieren Sie sie im providers Abschnitt, damit azd Sie wissen, was Ihre Erweiterung bietet:
providers:
- name: tagger
type: service-target
description: Deploys tagged resources to Azure.
Plattformspezifische Konfiguration hinzufügen
Verwenden Sie die platforms Eigenschaft, um plattformspezifische Metadaten bereitzustellen, z. B. den namen der ausführbaren Datei für jedes Betriebssystem.
platforms:
windows:
executable: tagger.exe
linux:
executable: tagger
darwin:
executable: tagger
Deklarieren von Abhängigkeiten
Erweiterungen können von anderen Erweiterungen abhängig sein, indem sie das dependencies Array verwenden. Abhängigkeiten unterstützen semantische Versionsverwaltungseinschränkungen:
dependencies:
- id: microsoft.azd.core
version: "^1.0.0"
azd installiert oder aktualisiert auf die höchste veröffentlichte Version, die jede Einschränkung erfüllt. Zu den gängigen Einschränkungsformaten gehören:
-
^1.0.0: Kompatibel mit Version 1.x.x. -
~1.2.0: Kompatibel mit Version 1.2.x. -
>=1.0.0 <2.0.0: Ein Versionsbereich.
Gruppenerweiterungen mit Erweiterungspaketen
Ein Erweiterungspaket ist ein Manifest, das verwandte Erweiterungen gruppiert, sodass Benutzer sie mit einem einzigen Befehl installieren können. Ein Pack deklariert dependencies , stellt jedoch keine ausführbare Datei, keinen Befehlsnamespace oder eigene Funktionen bereit. Verwenden Sie ein Paket, um einen kuratierten Satz von Erweiterungen zu veröffentlichen, z. B. eine Produktfamilie oder ein Szenariobundle:
# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/refs/heads/main/cli/azd/extensions/extension.schema.json
id: contoso.tools
displayName: Contoso Tools Extension Pack
description: Installs the Contoso azd extensions.
version: 0.1.0
dependencies:
- id: contoso.azd.tagger
version: "~0.1.0"
Durch die rekursive Installation eines Pakets werden die Abhängigkeiten aus derselben Erweiterungsquelle wie das Paket installiert.