Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cada extensión de la CLI para desarrolladores (azd) de Azure incluye un extension.yaml manifiesto que describe sus metadatos y funcionalidades.
azd usa estos metadatos en el Registro de extensiones para ayudar a los usuarios a detectar, instalar y comprender la extensión. En este artículo se explican las propiedades del manifiesto usando la extensión de ejemplo Contoso Resource Tagger del inicio rápido «Compilación de una extensión de ejemplo». Se pueden aplicar los mismos conceptos a cualquier extensión.
Note
azd las extensiones están actualmente en versión beta.
Propiedades del manifiesto
El extension.yaml manifiesto admite las siguientes propiedades.
Propiedades necesarias
Cada manifiesto debe incluir las siguientes propiedades:
| Propiedad | Description |
|---|---|
id |
Identificador único de la extensión, como contoso.azd.tagger. |
version |
Versión semántica en MAJOR.MINOR.PATCH formato. |
displayName |
Nombre de la extensión legible para las personas. |
description |
Descripción detallada de la extensión. |
Cada manifiesto también debe incluir capabilities o dependencies. Una extensión que proporciona comandos o proveedores declara capabilities. Un paquete de extensiones declara dependencies en su lugar.
Propiedades opcionales
El manifiesto también admite las siguientes propiedades opcionales:
| Propiedad | Description |
|---|---|
namespace |
Espacio de nombres de comandos que agrupa los comandos de la extensión, como tagger. |
entryPoint |
Ejecutable o script que actúa como punto de entrada. |
language |
Lenguaje de programación en el que se escribe la extensión, como go. |
capabilities |
Matriz de funcionalidades de extensión. |
usage |
Instrucciones sobre cómo usar la extensión. |
examples |
Matriz de ejemplos de uso con un nombre, una descripción y un uso. |
tags |
Palabras clave para categorización y filtrado. |
dependencies |
Otras extensiones de las que depende esta extensión. |
providers |
Lista de proveedores que registra la extensión. |
platforms |
Metadatos específicos de la plataforma. |
mcp |
Configuración del servidor de Model Context Protocol. |
requiredAzdVersion |
Restricción de versión semántica sobre la versión azd necesaria para usar la extensión, como >= 1.24.0. |
Manifiesto de ejemplo
En el ejemplo siguiente se muestra un manifiesto extension.yaml para la extensión de ejemplo 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
El $schema comentario de la parte superior del archivo habilita la validación e IntelliSense en los editores que admiten el servidor de lenguaje YAML.
Declarar funcionalidades
La capabilities matriz declara lo que puede hacer la extensión.
azd concede los permisos correspondientes en tiempo de ejecución y algunos servicios de marco producen un error de permiso si no se declara la funcionalidad coincidente. La extensión de ejemplo comienza solo con custom-commands:
capabilities:
- custom-commands
A medida que agrega funcionalidad en los otros artículos, agregará más funcionalidades. Por ejemplo, Agregar funcionalidades de extensión agrega lifecycle-eventsy Agregar un servidor MCP a una extensión agrega mcp-server. Las funcionalidades disponibles son:
-
custom-commands: Agregue nuevos comandos aazddentro de su espacio de nombres, comoazd tagger show. -
lifecycle-events: ejecute lógica personalizada cuandoazdgenere eventos comopreprovisionopostdeploy. -
mcp-server: Exponer herramientas de Model Context Protocol que los agentes de IA pueden invocar. -
service-target-provider: agregue un destino de implementación personalizado para unhostqueazdno admita de forma predeterminada. -
framework-service-provider: se ha agregado compatibilidad de compilación y paquete para unlanguagequeazdno reconoce de forma predeterminada. -
provisioning-provider: reemplace cómoazdaprovisiona la infraestructura con una implementación personalizada. -
validation-provider: Agrega comprobaciones que se ejecutan en la canalización de validación deazd. -
metadata: Proporcionar metadatos más completos de comandos y configuración para la salida de ayuda e IntelliSense.
Para obtener una explicación más completa de cada funcionalidad con ejemplos, consulte Adición de funcionalidades de extensión.
Adición de ejemplos de uso
La examples matriz documenta formas comunes de usar la extensión.
azd muestra estos ejemplos cuando los usuarios ven detalles sobre la extensión:
examples:
- name: show
description: Displays a greeting from the extension.
usage: azd tagger show
Registro de proveedores
Cuando la extensión proporciona destinos de servicio personalizados o servicios de marco, declarelos en la providers sección para azd saber lo que ofrece la extensión:
providers:
- name: tagger
type: service-target
description: Deploys tagged resources to Azure.
Adición de una configuración específica de la plataforma
Use la platforms propiedad para proporcionar metadatos específicos de la plataforma, como el nombre ejecutable de cada sistema operativo.
platforms:
windows:
executable: tagger.exe
linux:
executable: tagger
darwin:
executable: tagger
Declarar dependencias
Las extensiones pueden depender de otras extensiones mediante la dependencies matriz . Las dependencias admiten restricciones de control de versiones semánticas:
dependencies:
- id: microsoft.azd.core
version: "^1.0.0"
azd instala o actualiza a la versión publicada más alta que satisface cada restricción. Entre los formatos de restricción comunes se incluyen:
-
^1.0.0: compatible con la versión 1.x.x. -
~1.2.0: compatible con la versión 1.2.x. -
>=1.0.0 <2.0.0: un intervalo de versiones.
Agrupar extensiones con paquetes de extensiones
Un paquete de extensiones es un manifiesto que agrupa extensiones relacionadas para que los usuarios puedan instalarlos con un solo comando. Un paquete declara dependencies pero no proporciona un archivo ejecutable, un espacio de nombres de comandos o funcionalidades propios. Use un paquete para publicar un conjunto mantenido de extensiones, como una familia de productos o un conjunto de escenarios:
# 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"
Al instalar un paquete de forma recursiva, se instalan sus dependencias desde el mismo origen de extensión que el paquete.