在這個快速入門中,你會建立一個名為 Contoso Resource Tagger 的 Azure Developer CLI (azd) 擴充套件範例。 你用 azd 開發者擴充功能來架構 Go 專案,新增自訂指令,然後在本地執行擴充功能。 你所建立的範例擴充功能是本節其他文章的起點,這些文章會教你如何新增功能、與 MCP 通訊 azd、新增模型情境協定(MCP)伺服器,以及發佈你的作品。
想在開始前了解擴充開發背後的概念,請參閱 擴充開發概念。
Note
azd擴充框架已普遍提供。 個別擴充功能或功能可能有自己的預覽狀態。
先決條件
- 安裝 Azure 開發人員 CLI。
- 安裝 Go 1.26 或更新版本。
- 程式碼編輯器,例如 Visual Studio Code。
azd 預設包含官方擴充套件來源。 你也可以安裝基於 URL 或檔案的擴充功能、本地開發登錄、選擇加入的開發或夜間登錄檔,以及可攜式 .zip 套件。 詳情請參見 擴充開發概念。
小提示
若專案 azd 依賴擴充套件提供的主機、提供者、驗證、生命週期處理器或指令,請在這些擴充 azure.yaml 功能中宣告並設定版本限制。 如需詳細資訊,請參閱 requiredVersions。
安裝開發者擴充功能
azd開發人員擴充功能(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當被要求時,請提供以下數值:
提示 Value 擴充套件識別碼 contoso.azd.tagger顯示名稱 Contoso Resource TaggerDescription Standardize and report Azure resource tags for an azd project.命名空間 tagger能力 Custom commands語言 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
相關內容
若要繼續擴展範例,請參閱以下文章。 每篇文章都是獨立的,所以你可以以任意順序完成: