Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Elke Azure Developer CLI-extensie (azd) bevat een extension.yaml manifest dat de metagegevens en mogelijkheden beschrijft.
azd gebruikt deze metagegevens in het extensieregister om gebruikers te helpen bij het detecteren, installeren en begrijpen van uw extensie. In dit artikel worden de manifesteigenschappen uitgelegd met behulp van de voorbeeldextensie Contoso Resource Tagger uit de quickstart een voorbeeldextensie bouwen. U kunt dezelfde concepten toepassen op elke extensie.
Opmerking
azd extensies zijn momenteel beschikbaar in de bètaversie.
Manifesteigenschappen
Het extension.yaml manifest ondersteunt de volgende eigenschappen.
Vereiste eigenschappen
Elk manifest moet de volgende eigenschappen bevatten:
| Property | Description |
|---|---|
id |
Unieke id voor de extensie, zoals contoso.azd.tagger. |
version |
Semantische versienummering in de notatie MAJOR.MINOR.PATCH. |
displayName |
Leesbare naam van de extensie. |
description |
Gedetailleerde beschrijving van de extensie. |
Elk manifest moet ook ofwel capabilities of dependencies bevatten. Een extensie die opdrachten of providers declareert, bevat capabilities. Een uitbreidingspakket geeft in plaats daarvan dependencies op.
Optionele eigenschappen
Het manifest ondersteunt ook de volgende optionele eigenschappen:
| Property | Description |
|---|---|
namespace |
Opdrachtnaamruimte die de opdrachten van de extensie groepeert, zoals tagger. |
entryPoint |
Uitvoerbaar bestand of script dat fungeert als het toegangspunt. |
language |
Programmeertaal waarin de extensie is geschreven, zoals go. |
capabilities |
Matrix met uitbreidingsmogelijkheden. |
usage |
Instructies voor het gebruik van de extensie. |
examples |
Matrix van gebruiksvoorbeelden met een naam, beschrijving en gebruik. |
tags |
Trefwoorden voor categorisatie en filtering. |
dependencies |
Andere extensies waarvan deze extensie afhankelijk is. |
providers |
Lijst met providers die de extensie registreert. |
platforms |
Platformspecifieke metagegevens. |
mcp |
Configuratie van modelcontextprotocolserver. |
requiredAzdVersion |
Semantische versiebeperking voor de azd versie die is vereist voor het gebruik van de extensie, zoals >= 1.24.0. |
Voorbeeldmanifest
In het volgende voorbeeld ziet u een extension.yaml manifest voor de voorbeeldextensie 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
De $schema opmerking bovenaan het bestand maakt validatie en IntelliSense mogelijk in editors die ondersteuning bieden voor de YAML-taalserver.
Mogelijkheden declareren
De capabilities matrix declareert wat uw extensie kan doen.
azd verleent de bijbehorende machtigingen tijdens runtime en sommige frameworkservices mislukken met een machtigingsfout als de overeenkomende mogelijkheid niet is gedeclareerd. De voorbeeldextensie begint met alleen custom-commands:
capabilities:
- custom-commands
Wanneer u functionaliteit toevoegt in de andere artikelen, voegt u meer mogelijkheden toe.
Voeg bijvoorbeeld uitbreidingsmogelijkheden toelifecycle-eventsen voeg een MCP-server toe aan een extensie.mcp-server De beschikbare mogelijkheden zijn:
-
custom-commands: Voeg nieuwe opdrachten toe aanazdonder uw naamruimte, zoalsazd tagger show. -
lifecycle-events: Voer aangepaste logica uit wanneerazdgebeurtenissen worden gegenereerd zoalspreprovisionofpostdeploy. -
mcp-server: Stel hulpprogramma's voor modelcontextprotocol beschikbaar die AI-agents kunnen aanroepen. -
service-target-provider: Voeg een aangepast implementatiedoel toe voor eenhostdoel datazdstandaard niet wordt ondersteund. -
framework-service-provider: Voeg build- en pakketondersteuning toe voor eenlanguagedieazdstandaard niet herkent. -
provisioning-provider: Vervang deazdinrichting van infrastructuur door een aangepaste implementatie. -
validation-provider: Voeg controles toe die worden uitgevoerd in deazdvalidatiepijplijn. -
metadata: Geef uitgebreidere opdracht- en configuratiemetagegevens op voor help-uitvoer en IntelliSense.
Zie Uitbreidingsmogelijkheden toevoegen voor een uitgebreidere uitleg van elke mogelijkheid met voorbeelden.
Gebruiksvoorbeelden toevoegen
De examples matrixdocumenten zijn veelgebruikte manieren om uw extensie te gebruiken.
azd geeft deze voorbeelden weer wanneer gebruikers details over uw extensie bekijken:
examples:
- name: show
description: Displays a greeting from the extension.
usage: azd tagger show
Providers registreren
Wanneer uw extensie aangepaste servicedoelen of frameworkservices biedt, declareert u deze in de providers sectie zodat azd u weet wat uw extensie biedt:
providers:
- name: tagger
type: service-target
description: Deploys tagged resources to Azure.
Platformspecifieke configuratie toevoegen
Gebruik de platforms eigenschap om platformspecifieke metagegevens op te geven, zoals de naam van het uitvoerbare bestand voor elk besturingssysteem.
platforms:
windows:
executable: tagger.exe
linux:
executable: tagger
darwin:
executable: tagger
Afhankelijkheden declareren
Extensies kunnen afhankelijk zijn van andere extensies met behulp van de dependencies matrix. Afhankelijkheden ondersteunen semantische versiebeheerbeperkingen:
dependencies:
- id: microsoft.azd.core
version: "^1.0.0"
azd installeert of upgradet naar de hoogste gepubliceerde versie die voldoet aan elke beperking. Veelgebruikte beperkingsindelingen zijn:
-
^1.0.0: Compatibel met versie 1.x.x. -
~1.2.0: Compatibel met versie 1.2.x. -
>=1.0.0 <2.0.0: Een versiebereik.
Extensies groeperen met extensiepakketten
Een uitbreidingspakket is een manifest dat gerelateerde extensies groepeert, zodat gebruikers ze met één opdracht kunnen installeren. Een pakket geeft dependencies op, maar biedt geen uitvoerbaar bestand, opdrachtnaamruimte of eigen mogelijkheden. Gebruik een pakket om een gecureerde set extensies te publiceren, zoals een productfamilie of scenariobundel:
# 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"
Als u een pack installeert, worden de afhankelijkheden recursief geïnstalleerd van dezelfde extensiebron als het pakket.