Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы создадите пример расширения Azure Developer CLI (azd) под названием Contoso Resource Tagger. Расширение разработчика azd используется для создания шаблонов проекта Go, добавления настраиваемой команды и локального запуска расширения. Созданное вами примерное расширение — это отправная точка для остальных статей в этом разделе, в которых показано, как добавлять новые возможности, взаимодействовать с azd, добавлять сервер Model Context Protocol (MCP) и публиковать свою работу.
Сведения о концепциях разработки расширений перед началом работы см. в концепциях разработки расширений.
Замечание
Общедоступная azd платформа расширений. Отдельные расширения или возможности могут иметь собственное состояние предварительной версии.
Необходимые условия
- Установите Azure Developer CLI.
- Установите Go 1.26 или более поздней версии.
- Редактор кода, например Visual Studio Code.
azd включает официальный источник расширения по умолчанию. Вы также можете установить расширения из URL-адресов или файловых источников, локальных реестров разработки, вариантов разработки или ночных реестров и переносимых .zip пакетов. Дополнительные сведения см. в концепциях разработки расширений.
Совет
azd Если проект зависит от узлов, предоставляемых расширениями, поставщиков, проверки, обработчиков жизненного цикла или команд, объявите эти необходимые расширения с azure.yaml ограничениями версий. Дополнительные сведения см. в requiredVersions.
Установите расширение разработчика
Расширение azd Developer (microsoft.azd.extensions) предоставляет команды azd x, которые используются для создания расширений.
Установите расширение разработчика из официального источника расширений:
azd extension install microsoft.azd.extensionsУбедитесь, что расширение установлено:
azd extension list --installedРасширение разработчика регистрирует набор команд в пространстве имён
x. Запуститеazd x, чтобы просмотреть доступные команды.
Создайте каркас примера расширения
azd x init Используйте команду для формирования нового проекта расширения.
Создайте и измените каталог для расширений:
mkdir azd-extensions cd azd-extensionsИнициализируйте репозиторий Git и создайте первый коммит. Для команды
azd x initтребуется, чтобы папка расширения находилась под управлением Git:git init git commit --allow-empty -m "Initial commit"Выполните команду
azd x init, чтобы сгенерировать каркас расширения:azd x initПри появлении запроса укажите следующие значения:
Prompt Ценность Идентификатор расширения contoso.azd.taggerПоказать имя Contoso Resource TaggerDescription Standardize and report Azure resource tags for an azd project.Namespace taggerВозможности Custom commandsLanguage 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 и зарегистрируйте ее в корневой команде.
В каталоге
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 }, } }Зарегистрируйте команду в корневой команде.
internal/cmd/root.goВ файле добавьте следующую строку в нижней части файла после другихAddCommandфункций:rootCmd.AddCommand(newShowCommand())
Запуск расширения
Перед запуском расширения упаковайте его и опубликуйте его в локальном источнике расширений, чтобы зарегистрировать изменения.
Упакуйте расширение:
azd x packОпубликуйте расширение, чтобы зарегистрировать его:
azd x publishВыполните следующую команду:
azd tagger showВыходные данные похожи на следующий пример:
Hello from the Contoso Resource Tagger extension!
Теперь у вас есть рабочее расширение, которое можно создать.
Следите за изменениями во время разработки
Вместо того чтобы вручную запускать azd x pack и azd x publish после каждого изменения, используйте azd x watch для автоматической сборки и установки расширения в процессе разработки.
В каталоге расширений запустите наблюдатель:
azd x watchВ втором терминале выполните команду, чтобы проверить изменения при их внесении:
azd tagger show
Чтобы создать расширение вручную вместо использования наблюдателя, выполните команду azd x build.
Очистите ресурсы
Завершив экспериментирование, удалите пример расширения:
azd extension uninstall contoso.azd.tagger
Связанные материалы
Чтобы продолжить работу над примером расширения, ознакомьтесь со следующими статьями. Каждая статья является независимой, поэтому их можно выполнить в любом порядке: