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.
Las azd de la CLI para desarrolladores de Azure () agregan nuevos comandos, automatizan flujos de trabajo e integran otros servicios con azd. En este artículo se explican los conceptos que debe comprender antes de crear una extensión, como las herramientas para desarrolladores, el kit de desarrollo de software (SDK) y cómo azd se comunica con una extensión en ejecución. Para obtener información sobre las extensiones desde una perspectiva del usuario, consulte la introducción a las extensiones.
Note
El azd marco de trabajo de extensión está disponible con carácter general. Es posible que las extensiones o funcionalidades individuales tengan su propio estado de vista previa.
La extensión para desarrolladores
La forma más rápida de compilar extensiones es usar la azd extensión para desarrolladores (microsoft.azd.extensions). La extensión de desarrollo agrega un conjunto de comandos en el espacio de nombres azd x que crean la estructura base, compilan, empaquetan y publican tu extensión:
| Comando | Description |
|---|---|
azd x init |
Crea la estructura base de un nuevo proyecto de extensión en el lenguaje que elija. |
azd x build |
Compila el binario de extensión para el desarrollo local. |
azd x watch |
Inspecciona el proyecto para ver los cambios y vuelve a generar e instalar automáticamente la extensión. |
azd x pack |
Empaqueta los artefactos de la extensión para prepararlos para su publicación. |
azd x release |
Crea una versión GitHub para la extensión. |
azd x publish |
Actualiza un registro de extensiones con los nuevos metadatos de extensión. |
La guía de inicio rápido Crear una extensión de ejemplo te muestra cómo instalar la extensión de desarrollo y generar la estructura de tu primera extensión.
La extensión para desarrolladores admite flujos de trabajo de publicación basados en el Registro y distribución de paquetes portátiles. Use azd x pack para crear artefactos de plataforma para publicación y publicación del registro, o cree una agrupación autocontenida .zip cuando necesite compartir una extensión sin hospedar un registro. Para obtener instrucciones paso a paso, consulte Publicación de una extensión.
El entorno de extensiones y gRPC
azd y las extensiones se ejecutan como procesos independientes que se comunican a través de gRPC. Al invocar un comando de extensión, se producen los pasos siguientes:
-
azdinicia un servidor gRPC en un puerto aleatorio y establece laAZD_SERVERvariable de entorno con la dirección del servidor. -
azdestablece laAZD_ACCESS_TOKENvariable de entorno, que es un json Web Token (JWT) firmado que concede a la extensión acceso aazdlos servicios durante la vigencia del comando. -
azdinvoca el comando de extensión y pasa los argumentos, marcas y variables de entorno actuales. - La extensión usa un cliente gRPC para comunicarse con
azda través de los servicios del marco, como mostrar avisos al usuario o leer la configuración del proyecto. -
azdespera a que el comando se complete e informe de un código de salida distinto de cero como un error.
Este modelo permite que las extensiones interactúen con azd de forma coherente y segura sin acceder directamente al estado interno de azd.
requisitos de extensión de nivel de Project
Los proyectos pueden declarar las extensiones que requieren en azure.yaml. Use la requiredVersions.extensions sección para enumerar los identificadores de extensión y las restricciones de versión para azd poder resolver las versiones que satisfacen el proyecto.
requiredVersions:
extensions:
azure.ai.agents: ">=1.0.0"
contoso.azd.tagger: "^2.0.0"
Declare las extensiones necesarias cuando un proyecto dependa de hosts, proveedores, controladores de ciclo de vida, validación o comandos proporcionados por la extensión. Para obtener el esquema exacto y la sintaxis de versión admitida, vea requiredVersions.
El SDK de azdext
El azdext paquete es el SDK de Go para el marco de extensión. Proporciona un cliente gRPC y utilidades que se encargan de los detalles de la comunicación, para que puedas centrarte en la lógica de tu extensión. El SDK incluye asistentes para:
- Cree un comando raíz que registre las marcas estándar
azdy el control de variables de entorno. - Adjunta el
azdtoken de acceso a las solicitudes salientes. - Llame a los servicios del framework, como Project, Environment, Account y Prompt.
- Registre controladores de eventos de ciclo de vida y proveedores personalizados a través de un host de extensión.
Para aprender a llamar a los servicios azd desde su extensión, consulte Comunicarse con azd mediante el SDK.
Funcionalidades de extensión
Las funcionalidades declaran lo que puede hacer una extensión. Enumere las funcionalidades de una extensión en su extension.yaml manifiesto y azd conceda los permisos correspondientes en tiempo de ejecución. Entre las funcionalidades disponibles se incluyen:
-
custom-commands: agregue nuevos grupos de comandos y comandos aazd. -
lifecycle-events: suscríbase a eventos de ciclo de vida del proyecto y del servicio, comopreprovisionypostdeploy. -
mcp-server: proporcione herramientas de Protocolo de contexto de modelo (MCP) para agentes de IA. -
service-target-provider: proporciona destinos de implementación de servicios personalizados. -
framework-service-provider: Proporcionar compatibilidad para compilar lenguajes y frameworks personalizados. -
provisioning-provider: proporcione una experiencia de aprovisionamiento de infraestructura personalizada. -
validation-provider: Añade comprobaciones de validación a la canalización de validación deazd. -
metadata: Proporcionar metadatos completos sobre comandos y configuración para la salida de ayuda e IntelliSense.
Para obtener información sobre cómo agregar funcionalidades a una extensión, consulte Incorporación de funcionalidades de extensión.
Idiomas compatibles
Puede crear azd extensiones en cualquier lenguaje que admita gRPC e azd x init incluye plantillas de inicio para varios lenguajes. Go tiene la compatibilidad más completa, incluidos los asistentes del SDK de primera clase azdext , por lo que los artículos de esta sección usan Go para todos los ejemplos.
| Language | Nivel de soporte |
|---|---|
| Go | Mejor soporte técnico y asistentes de SDK de primera clase. |
| .NET (C#) | Integración sólida con una plantilla de inicio. |
| Python | Buena integración con una plantilla de inicio. |
| JavaScript | Integración básica con una plantilla de inicio. |
En el caso de las extensiones creadas en lenguajes distintos de Go, puede generar clientes gRPC a partir de los archivos proto del azure/azure-dev repositorio. Para obtener el estado actual de compatibilidad con lenguajes, consulte la documentación del marco de extensión ascendente.
Registros de extensiones
Las extensiones se distribuyen a través de orígenes de extensión. Los orígenes de extensión son manifiestos basados en direcciones URL o basados en archivos que describen las extensiones disponibles y sus artefactos.
azd también admite archivos de agrupación portátiles para la instalación directa cuando no desea hospedar un registro.
- El registro oficial está preconfigurado en
azdy aloja extensiones propias verificadas. Las extensiones oficiales se desarrollan en una bifurcación del repositorio azure/azure-dev . - Los orígenes basados en direcciones URL permiten instalar desde manifiestos de registro públicos o privados remotos.
- Los orígenes basados en archivos permiten instalar desde manifiestos del Registro local para escenarios de desarrollo, pruebas o sin conexión.
- Los registros de desarrollo y nocturnos son orígenes de participación para las extensiones de trabajo en curso y compilan automáticamente extensiones de primera entidad. Las extensiones del registro de desarrollo no están firmadas, no cubiertas por Soporte técnico de Azure y pueden cambiarse o quitarse sin previo aviso.
Para obtener información sobre cómo publicar una extensión en un registro, consulte Publicación de una extensión.