Início Rápido: Criar uma extensão do azd de exemplo

Neste guia de início rápido, você vai criar uma extensão de exemplo da CLI do Desenvolvedor do Azure (azd) chamada Contoso Resource Tagger. Você usa a extensão de azd desenvolvedor para estruturar um projeto Go, adicionar um comando personalizado e executar a extensão localmente. A extensão de exemplo criada é o ponto de partida para os outros artigos desta seção, que mostram como adicionar recursos, comunicar-se com azd, adicionar um servidor MCP (Protocolo de Contexto de Modelo) e publicar seu trabalho.

Para saber os conceitos por trás do desenvolvimento de extensão antes de começar, consulte os conceitos de desenvolvimento de extensão.

Note

A azd estrutura de extensão está disponível em geral. Extensões ou funcionalidades individuais podem ter seu próprio status de visualização.

Pré-requisitos

azd inclui a origem da extensão oficial por padrão. Você também pode instalar extensões de fontes baseadas em URL ou com base em arquivo, registros de desenvolvimento local, desenvolvimento opt-in ou registros noturnos e pacotes portáteis .zip . Para obter detalhes, consulte os conceitos de desenvolvimento de extensão.

Dica

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

Instalar a extensão do desenvolvedor

A azd extensão do desenvolvedor (microsoft.azd.extensions) fornece os azd x comandos que você usa para criar extensões.

  1. Instale a extensão do desenvolvedor da fonte de extensão oficial:

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

    azd extension list --installed
    

    A extensão do desenvolvedor registra um conjunto de comandos no x namespace. Execute azd x para ver os comandos disponíveis.

Crie a estrutura básica da extensão de exemplo

Use o azd x init comando para estruturar um novo projeto de extensão.

  1. Crie e altere para um diretório para suas extensões:

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

    git init
    git commit --allow-empty -m "Initial commit"
    
  3. Execute o azd x init comando para estruturar a 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, cria os binários iniciais, empacota a extensão, publica-a em uma fonte de extensão local e a instala localmente para uso imediato.

Explorar a estrutura do projeto

O azd x init comando gera um projeto com os seguintes arquivos de 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 arquivos mais importantes são:

  • extension.yaml: define os metadados, os recursos e os comandos da extensão. Para saber mais, confira Definir o manifesto da extensão.
  • main.go: o ponto de entrada que executa o comando raiz da extensão.
  • build.shebuild.ps1: scripts de build multiplataforma que compilam um binário separado para cada plataforma com suporte (Linux, Windows e macOS).
  • CHANGELOG.md: documenta alterações entre versões e fornece notas de versão quando você publica.

Adicionar um comando personalizado

Adicione um show comando que imprime uma saudação para verificar se a extensão funciona. O layout exato do arquivo depende do modelo inicial, mas o padrão é o mesmo: defina um comando Cobra e registre-o no comando raiz.

  1. internal/cmd No diretório, crie um arquivo nomeado 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. Registre o comando no comando principal. No arquivo internal/cmd/root.go, adicione a seguinte linha próximo ao final do arquivo, após as outras funções AddCommand:

    rootCmd.AddCommand(newShowCommand())
    

Executar a extensão

Antes de executar a extensão, empacote-a e publique-a na fonte de extensão local para registrar suas alterações.

  1. Empacotar a extensão:

    azd x pack
    
  2. Publique a extensão para registrá-la:

    azd x publish
    
  3. Execute seu novo comando:

    azd tagger show
    

    A saída é semelhante ao exemplo a seguir:

    Hello from the Contoso Resource Tagger extension!
    

Agora você tem uma extensão funcional sobre a qual pode desenvolver.

Observe as alterações durante o desenvolvimento

Em vez de executar azd x pack manualmente e azd x publish após cada alteração, use azd x watch para compilar e instalar automaticamente a extensão conforme você desenvolve.

  1. No diretório de extensão, inicie o observador:

    azd x watch
    
  2. Em um segundo terminal, execute o comando para testar as alterações conforme você as faz:

    azd tagger show
    

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

Limpar os recursos

Quando terminar de experimentar, desinstale a extensão de exemplo:

azd extension uninstall contoso.azd.tagger

Para continuar a desenvolver a extensão de exemplo, consulte os artigos a seguir. Cada artigo é independente, portanto, você pode concluí-los em qualquer ordem: