Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Cada extensão do Azure Developer CLI (azd) inclui um extension.yaml manifesto que descreve os seus metadados e capacidades.
azd Utiliza estes metadados no registo de extensões para ajudar os utilizadores a descobrir, instalar e compreender a sua extensão. Este artigo explica as propriedades do manifesto usando a extensão de exemplo Contoso Resource Tagger do quickstart da extensão Build a sample. Podes aplicar os mesmos conceitos a qualquer extensão.
Note
azd As extensões estão atualmente em versão beta.
Propriedades manifestas
O extension.yaml manifesto suporta as seguintes propriedades.
Propriedades necessárias
Todo manifesto deve incluir as seguintes propriedades:
| Property | Description |
|---|---|
id |
Identificador único para a extensão, como contoso.azd.tagger. |
version |
Versão semântica em MAJOR.MINOR.PATCH formato. |
displayName |
Nome legível para humanos da extensão. |
description |
Descrição detalhada da extensão. |
Cada manifesto deve também incluir ou capabilities ou dependencies. Uma extensão que fornece comandos ou fornecedores declara capabilities. Um pacote de extensão declara dependencies em vez disso.
Propriedades opcionais
O manifesto também suporta as seguintes propriedades opcionais:
| Property | Description |
|---|---|
namespace |
Espaço de nomes de comandos que agrupa os comandos da extensão, como tagger. |
entryPoint |
Executável ou script que serve como ponto de entrada. |
language |
Linguagem de programação em que a extensão é escrita, como go. |
capabilities |
Gama de funcionalidades de extensão. |
usage |
Instruções sobre como usar a extensão. |
examples |
Variedade de exemplos de utilização com nome, descrição e uso. |
tags |
Palavras-chave para categorização e filtragem. |
dependencies |
Outras extensões das quais esta extensão depende. |
providers |
Lista de provedores que a extensão regista. |
platforms |
Metadados específicos da plataforma. |
mcp |
Configuração do servidor do Protocolo de Contexto do Modelo. |
requiredAzdVersion |
Restrição de versão semântica na versão azd necessária para utilizar a extensão, como >= 1.24.0. |
Exemplo de manifesto
O exemplo seguinte mostra um extension.yaml manifesto para a extensão de exemplo 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
O $schema comentário no topo do ficheiro permite validação e IntelliSense em editores que suportam o servidor de linguagem YAML.
Declarar capacidades
O capabilities array declara o que a sua extensão pode fazer.
azd concede as permissões correspondentes em tempo de execução, e alguns serviços de framework falham com um erro de permissão se a capacidade correspondente não for declarada. A extensão de exemplo começa apenas com custom-commands:
capabilities:
- custom-commands
À medida que adicionas funcionalidades nos outros artigos, acrescentas mais capacidades. Por exemplo, adicionar capacidades de extensão adiciona lifecycle-events, e adicionar um servidor MCP a uma extensão adiciona mcp-server. As capacidades disponíveis são:
-
custom-commands: Adicione novos comandos emazd, no seu espaço de nomes, comoazd tagger show. -
lifecycle-events: Execute lógica personalizada quandoazddesencadeia eventos comopreprovisionoupostdeploy. -
mcp-server: Disponibilizar ferramentas do Model Context Protocol que os agentes de IA possam invocar. -
service-target-provider: Adicionar um destino de implementação personalizado para umhostqueazdnão suporta por defeito. -
framework-service-provider: Adicionar suporte a compilações e pacotes para umlanguagequeazdnão reconhece por defeito. -
provisioning-provider: Substituir a forma comoazdaprovisiona infraestrutura por uma implementação personalizada. -
validation-provider: Adicionar verificações que são executadas na pipeline de validaçãoazd. -
metadata: Fornecer metadados de comandos e configuração mais ricos para saída de ajuda e IntelliSense.
Para uma explicação mais completa de cada capacidade com exemplos, veja Adicionar capacidades de extensão.
Adicionar exemplos de utilização
O examples array documenta formas comuns de usar a sua extensão.
azd apresenta estes exemplos quando os utilizadores veem os detalhes da sua extensão:
examples:
- name: show
description: Displays a greeting from the extension.
usage: azd tagger show
Registar prestadores
Quando a sua extensão fornece alvos de serviço personalizados ou serviços de framework, declare-os na providers secção para azd saber o que a sua extensão oferece:
providers:
- name: tagger
type: service-target
description: Deploys tagged resources to Azure.
Adicionar configuração específica da plataforma
Use a platforms propriedade para fornecer metadados específicos da plataforma, como o nome do executável para cada sistema operativo.
platforms:
windows:
executable: tagger.exe
linux:
executable: tagger
darwin:
executable: tagger
Declarar dependências
As extensões podem depender de outras extensões usando o dependencies array. Dependências suportam restrições semânticas de versionamento:
dependencies:
- id: microsoft.azd.core
version: "^1.0.0"
azd instala ou atualiza para a versão publicada mais alta que satisfaz cada restrição. Formatos comuns de restrições incluem:
-
^1.0.0: Compatível com a versão 1.x.x. -
~1.2.0: Compatível com a versão 1.2.x. -
>=1.0.0 <2.0.0: Uma gama de versões.
Agrupar extensões com pacotes de extensões
Um pacote de extensões é um manifesto que agrupa extensões relacionadas para que os utilizadores possam instalá-las com um único comando. Um pack declara dependencies , mas não fornece um executável, namespace de comandos ou capacidades próprias. Use um pacote para publicar um conjunto selecionado de extensões, como uma família de produtos ou um pacote de cenários:
# 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"
Instalar um pack instala recursivamente as suas dependências a partir da mesma fonte de extensão que o pack.