Краткое руководство: создание примера расширения azd

В этом кратком руководстве вы создадите пример расширения Azure Developer CLI (azd) под названием Contoso Resource Tagger. Расширение разработчика azd используется для создания шаблонов проекта Go, добавления настраиваемой команды и локального запуска расширения. Созданное вами примерное расширение — это отправная точка для остальных статей в этом разделе, в которых показано, как добавлять новые возможности, взаимодействовать с azd, добавлять сервер Model Context Protocol (MCP) и публиковать свою работу.

Сведения о концепциях разработки расширений перед началом работы см. в концепциях разработки расширений.

Замечание

Общедоступная azd платформа расширений. Отдельные расширения или возможности могут иметь собственное состояние предварительной версии.

Необходимые условия

azd включает официальный источник расширения по умолчанию. Вы также можете установить расширения из URL-адресов или файловых источников, локальных реестров разработки, вариантов разработки или ночных реестров и переносимых .zip пакетов. Дополнительные сведения см. в концепциях разработки расширений.

Совет

azd Если проект зависит от узлов, предоставляемых расширениями, поставщиков, проверки, обработчиков жизненного цикла или команд, объявите эти необходимые расширения с azure.yaml ограничениями версий. Дополнительные сведения см. в requiredVersions.

Установите расширение разработчика

Расширение azd Developer (microsoft.azd.extensions) предоставляет команды azd x, которые используются для создания расширений.

  1. Установите расширение разработчика из официального источника расширений:

    azd extension install microsoft.azd.extensions
    
  2. Убедитесь, что расширение установлено:

    azd extension list --installed
    

    Расширение разработчика регистрирует набор команд в пространстве имён x. Запустите azd x , чтобы просмотреть доступные команды.

Создайте каркас примера расширения

azd x init Используйте команду для формирования нового проекта расширения.

  1. Создайте и измените каталог для расширений:

    mkdir azd-extensions
    cd azd-extensions
    
  2. Инициализируйте репозиторий Git и создайте первый коммит. Для команды azd x init требуется, чтобы папка расширения находилась под управлением Git:

    git init
    git commit --allow-empty -m "Initial commit"
    
  3. Выполните команду azd x init, чтобы сгенерировать каркас расширения:

    azd x init
    
  4. При появлении запроса укажите следующие значения:

    Prompt Ценность
    Идентификатор расширения contoso.azd.tagger
    Показать имя Contoso Resource Tagger
    Description Standardize and report Azure resource tags for an azd project.
    Namespace tagger
    Возможности Custom commands
    Language Go

Команда создает расширение, создает исходные двоичные файлы, упаковывает расширение, публикует его в локальном источнике расширения и устанавливает его локально для немедленного использования.

Изучение структуры проекта

Команда azd x init создает проект со следующими ключевыми файлами:

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

Наиболее важными являются следующие файлы:

  • extension.yaml: определяет метаданные, возможности и команды для расширения. Дополнительные сведения см. в разделе "Определение манифеста расширения".
  • main.go: Точка входа, которая выполняет корневую команду вашего расширения.
  • build.shи build.ps1: кроссплатформенные скрипты сборки, которые компилируют отдельный двоичный файл для каждой поддерживаемой платформы (Linux, Windows и macOS).
  • CHANGELOG.md: документирует изменения между версиями и предоставляет примечания к выпуску при публикации.

Добавление настраиваемой команды

show Добавьте команду, которая выводит приветствие для проверки работы расширения. Точный макет файла зависит от начального шаблона, но шаблон такой же: определите команду Cobra и зарегистрируйте ее в корневой команде.

  1. В каталоге internal/cmd создайте файл с именем show.go со следующим содержимым:

    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. Зарегистрируйте команду в корневой команде. internal/cmd/root.go В файле добавьте следующую строку в нижней части файла после других AddCommand функций:

    rootCmd.AddCommand(newShowCommand())
    

Запуск расширения

Перед запуском расширения упаковайте его и опубликуйте его в локальном источнике расширений, чтобы зарегистрировать изменения.

  1. Упакуйте расширение:

    azd x pack
    
  2. Опубликуйте расширение, чтобы зарегистрировать его:

    azd x publish
    
  3. Выполните следующую команду:

    azd tagger show
    

    Выходные данные похожи на следующий пример:

    Hello from the Contoso Resource Tagger extension!
    

Теперь у вас есть рабочее расширение, которое можно создать.

Следите за изменениями во время разработки

Вместо того чтобы вручную запускать azd x pack и azd x publish после каждого изменения, используйте azd x watch для автоматической сборки и установки расширения в процессе разработки.

  1. В каталоге расширений запустите наблюдатель:

    azd x watch
    
  2. В втором терминале выполните команду, чтобы проверить изменения при их внесении:

    azd tagger show
    

Чтобы создать расширение вручную вместо использования наблюдателя, выполните команду azd x build.

Очистите ресурсы

Завершив экспериментирование, удалите пример расширения:

azd extension uninstall contoso.azd.tagger

Чтобы продолжить работу над примером расширения, ознакомьтесь со следующими статьями. Каждая статья является независимой, поэтому их можно выполнить в любом порядке: