Início rápido: Constrói uma extensão de exemplo para o azd

Neste quickstart, constróis uma extensão de exemplo do Azure Developer CLI (azd) chamada Contoso Resource Tagger. Utiliza a extensão de desenvolvimento azd para criar a estrutura de um projeto Go, adicionar um comando personalizado e executar a extensão localmente. A extensão de exemplo que cria é o ponto de partida para os outros artigos desta secção, que lhe mostram como adicionar capacidades, comunicar com azd, adicionar um servidor Model Context Protocol (MCP) e publicar o seu trabalho.

Para aprender os conceitos por trás do desenvolvimento de extensões antes de começar, consulte Conceitos de desenvolvimento de extensões.

Note

O azd framework de extensão está geralmente disponível. Extensões ou capacidades individuais podem ter o seu próprio estado de pré-visualização.

Pré-requisitos

azd Inclui a fonte oficial da extensão por defeito. Também pode instalar extensões a partir de fontes baseadas em URL ou ficheiros, registos locais de desenvolvimento, registos de desenvolvimento opt-in ou noturnos, e pacotes portáteis .zip . Para detalhes, veja Conceitos de desenvolvimento de extensões.

Sugestão

Se um azd projeto depende de hosts, fornecedores, validação, handlers do ciclo de vida ou comandos fornecidos por extensões, declare essas extensões necessárias em azure.yaml com restrições de versão. Para obter detalhes, consulte requiredVersions.

Instale a extensão para desenvolvedores

A azd extensão developer (microsoft.azd.extensions) fornece os azd x comandos que usas para construir extensões.

  1. Instale a extensão para desenvolvedores a partir da fonte oficial da extensão:

    azd extension install microsoft.azd.extensions
    
  2. Verifique se a extensão está instalada:

    azd extension list --installed
    

    A extensão desenvolvedora regista um conjunto de comandos sob o x namespace. Corre azd x para ver os comandos disponíveis.

Crie a estrutura base da extensão de exemplo

Utilize o comando azd x init para criar a estrutura de um novo projeto de extensão.

  1. Crie e transforme num diretório para as suas extensões:

    mkdir azd-extensions
    cd azd-extensions
    
  2. Inicialize um repositório git e crie um commit inicial. O azd x init comando exige que a pasta de extensão seja rastreada pelo git:

    git init
    git commit --allow-empty -m "Initial commit"
    
  3. Execute o comando azd x init para criar a estrutura da extensão:

    azd x init
    
  4. Quando solicitado, forneça os seguintes valores:

    Prompt Value
    ID da extensão contoso.azd.tagger
    Nome de exibição Contoso Resource Tagger
    Description Standardize and report Azure resource tags for an azd project.
    Namespace tagger
    Capabilities Custom commands
    Linguagem Go

O comando estrutura a extensão, constrói os binários iniciais, empacota a extensão, publica-a numa fonte local de extensão e instala-a localmente para uso imediato.

Explore a estrutura do projeto

O azd x init comando gera um projeto com os seguintes ficheiros-chave:

contoso.azd.tagger/
├── bin/                    # Contains built binaries
├── build.ps1               # Windows build script
├── build.sh                # Unix build script
├── CHANGELOG.md            # Version history and release notes
├── extension.yaml          # Extension metadata and capabilities
├── main.go                 # Entry point for the extension
├── go.mod                  # Go module definition
└── internal/               # Internal implementation code

Os ficheiros mais importantes são:

  • extension.yaml: Define os metadados, capacidades e comandos para a sua extensão. Para saber mais, consulte Definir o manifesto de extensão.
  • main.go: O ponto de entrada que executa o comando raiz da sua extensão.
  • build.she build.ps1: scripts de build multiplataforma que compilam um binário separado para cada plataforma suportada (Linux, Windows e macOS).
  • CHANGELOG.md: Documenta as alterações entre versões e fornece notas de lançamento quando publica.

Adicionar um comando personalizado

Adiciona um show comando que imprime uma saudação para verificar se a tua extensão funciona. O layout exato do ficheiro depende do modelo inicial, mas o padrão é o mesmo: definir um comando Cobra e regista-o no comando raiz.

  1. No diretório internal/cmd, crie um ficheiro com o nome show.go com o seguinte conteúdo:

    package cmd
    
    import (
        "fmt"
    
        "github.com/spf13/cobra"
    )
    
    func newShowCommand() *cobra.Command {
        return &cobra.Command{
            Use:   "show",
            Short: "Displays a greeting from the Contoso Resource Tagger extension.",
            RunE: func(cmd *cobra.Command, args []string) error {
                fmt.Println("Hello from the Contoso Resource Tagger extension!")
                return nil
            },
        }
    }
    
  2. Registe o comando no comando principal. No internal/cmd/root.go ficheiro, adicione a seguinte linha para o fundo do ficheiro após as outras AddCommand funções:

    rootCmd.AddCommand(newShowCommand())
    

Executar a extensão

Antes de executar a extensão, empacote-a e publica-a na sua extensão local para registar as suas alterações.

  1. Inclua a extensão:

    azd x pack
    
  2. Publique a extensão para a registar:

    azd x publish
    
  3. Execute o seu novo comando:

    azd tagger show
    

    A saída é semelhante ao seguinte exemplo:

    Hello from the Contoso Resource Tagger extension!
    

Agora tens uma extensão funcional sobre a qual podes construir.

Fique atento a alterações durante o desenvolvimento

Em vez de correr azd x pack manualmente e azd x publish depois de cada alteração, usar azd x watch para construir e instalar automaticamente a extensão à medida que desenvolves.

  1. A partir do diretório de extensões, inicie o watcher:

    azd x watch
    
  2. Num segundo terminal, executa o teu comando para testar as alterações à medida que as fazes:

    azd tagger show
    

Para construir a extensão manualmente em vez de usar o watcher, execute azd x build.

Limpeza de recursos

Quando terminares de experimentar, desinstala a extensão de exemplo:

azd extension uninstall contoso.azd.tagger

Para continuar a desenvolver a extensão de exemplo, consulte os seguintes artigos. Cada artigo é independente, por isso pode completá-los por qualquer ordem: