這是 Azure Developer CLI (azd) 的 7 月回顧。自上次發文以來,已推出五個版本:1.27.0、1.27.1、1.28.0、1.28.1,以及 1.29.0。以下是新功能、變更與修正的內容,附上 pull request 連結供深入了解。
有任何意見或問題?歡迎加入 GitHub 版本討論。
重點:
- 新增
azd tool uninstall指令,完整涵蓋工具安裝、升級與解除安裝生命週期。 - 擴充功能可透過
-s/--source直接從登錄位置安裝,並可使用--no-dependencies跳過相依性解析。 - 可直接在
azure.yaml中建模 Azure AI Foundry 專案、代理程式及相關資源。 - Azure App Service 容器部署支援透過
host: appservice與language: docker推送映像並執行 Web App for Containers。 azd偵測到 CI/CD 或 AI 代理程式環境時,會自動切換為非互動模式,讓指令快速失敗而非停留在提示等待。- 重大變更:
azd tool指令的 skill--host旗標已重新命名為--agent。
🌐 Microsoft Foundry 參與 AI Engineer World’s Fair
在 AI Engineer World’s Fair 中,Pablo Castro(Microsoft)的「On AI and Knowledge」場次中,Microsoft Foundry 團隊展示了建構於 azd 擴充功能平台上的命令列體驗。這是擴充功能架構能實現的絕佳案例,也是該平台所設計的 CLI 故事類型。請觀看 YouTube 示範片段 了解實際操作。感謝 Microsoft Foundry 團隊以 azd 作為建置基礎!
新功能
🔌 擴充功能
我們在這些版本中持續改善擴充功能的安裝與開發體驗。
azd extension install、azd extension upgrade與azd extension list現在可直接接受登錄位置(URL 或本機路徑),使用-s/--source參數,無需先執行azd extension source add。直接位置會先被驗證並註冊為持久來源,再繼續解析。[#8792]- 為
azd extension install新增--no-dependencies旗標,可僅安裝指定擴充功能而不解析或安裝其宣告的相依性。[#8927] - 將
azure.yaml中擴充的服務層級env值暴露給擴充功能服務組態,讓擴充功能可讀取azd解析的相同環境值。[#8936]
🧰 工具管理
- 新增
azd tool uninstall指令,完整涵蓋工具安裝、升級與解除安裝生命週期。支援--all、--dry-run、互動式多選、依代理程式技能移除,以及--output json。[#8794]
🤖 Azure AI Foundry 建模
- 支援直接在
azure.yaml中建模 Azure AI Foundry 專案、代理程式及相關資源,包括$ref檔案包含、預設安全網路,以及無 Bicep 與無 Terraform 的初始化路徑。[#8818]
🏗️ 佈建與部署
這些變更擴展了 azd 可部署的範圍,並讓擴充功能能參與任何提供者的佈建驗證。
- 新增 Azure App Service 容器部署支援。設定
host: appservice與language: docker(或docker.path)的服務,現在可將容器映像推送至 Azure Container Registry (ACR) 並更新站台的容器組態,啟用 Web App for Containers 情境。[#8847] - 新增與提供者無關的
provision驗證檢查,會在每個提供者的佈建前執行。具備validation-provider能力的擴充功能,現在可在任何佈建提供者(Bicep、Terraform 或擴充功能提供的提供者)下貢獻用戶端檢查,而非僅限 Bicep 本機預檢。[#9019]
🤖 CI/CD 與代理程式環境
- 當
azd偵測到持續整合與交付(CI/CD)或 AI 代理程式環境時,會自動啟用非互動(無提示)模式,讓指令以清楚錯誤快速失敗,而非停留在提示等待。設定AZD_NON_INTERACTIVE=false可選擇退出。確認提示在標準輸入無更多資料時,也會遵循預設值。[#9125]
重大變更
- skill
--host旗標現已改為--agent。 在azd tool install、azd tool upgrade與azd tool uninstall上,--host旗標已重新命名為--agent。在azd tool list --output json與azd tool check --output json中,安裝的技能現在會展開為每個代理程式一行,並包含agent欄位。請更新任何傳遞--host或讀取先前格式的指令碼或 JSON 消費者。[#9045]
🪲 已修正的錯誤
擴充功能與工具
- 修正
azd tool install azure-skills誤將 Visual Studio Code Copilot Chat 啟動器存根視為正常工作的 Copilot Command Line Interface (CLI) 主機。主機選擇現在使用功能性探測,因此安裝不會在 macOS 上靜默無效,或在 Linux 上卡在 PATH 提示。[#8805] - 修正
azd tool uninstall在具有相依性的 Visual Studio Code 擴充功能(例如vscode-azure-tools)以及透過 Homebrew cask 在 macOS 與 Linux 安裝的 GitHub Copilot CLI 上失敗。解除安裝現在會偵測哪個套件管理員擁有安裝,並據此移除,若需手動移除自管安裝則提供指引。[#8875] - 修正產生的
azd extension install自動完成,現在可提供擴充功能 ID 與.zip檔案路徑。[#8887] - 修正
azd extension install在 Windows 上偶爾因「Access is denied」錯誤而失敗,原因是在取代暫時檔案鎖定的擴充功能執行檔時發生。[#9161] - 修正並行更新
azure.yaml導致服務欄位遺失的問題,透過序列化專案組態寫入解決。[#9211] - 修正並改善專案擴充功能需求的自動安裝,讓
azd在執行專案指令前解析azure.yaml中宣告或推斷的每個遺失提供者,而非在第一個不支援的提供者上失敗。[#9218]
佈建與組態
- 修正
azd env refresh在使用擴充功能提供的服務主機或佈建提供者的專案上,以及在尚無部署時回報成功。[#9017] - 修正
azure.yaml序列化在azure.ai.project、azure.ai.connection與microsoft.foundry等無程式碼資源主機的服務上寫入空的project與language欄位;這些欄位在空白時現在會省略。[#8937] - 預設從模型目錄與配額提示中排除已淘汰的模型。[#8842]
- 停止將環境
.env檔案中定義的動態連結器與載入器控制變數(例如LD_PRELOAD、LD_LIBRARY_PATH、LD_AUDIT與DYLD_INSERT_LIBRARIES)轉送至工具子程序(如 docker、npm 與 python)。[#8949] - 修正
azd deploy在基於容器的 Azure App Service 服務上覆寫不相關站台組態的問題;容器映像現在會透過專用的 App Service 組態端點更新。[#9281]
持續整合與更新
- 修正
azd down --no-prompt在 Terraform 專案的 CI/CD 中掛起的問題,透過在非互動執行時自動核准銷毀;並修正azd down --force在全新代理程式上因後端初始化錯誤而失敗。[#9143] - 修正
azd update後續指令改用azd version。感謝 @rguptar 的貢獻![#9083]
其他變更
- 將服務的
uses(相依性)清單暴露給擴充功能軟體開發套件 (SDK) 的ServiceConfig,讓擴充功能可直接讀取服務與資源相依性,而無需透過SetServiceConfigValue。[#8838] - 新增擴充功能 SDK 協助程式,可驗證
extension.yaml中的提供者宣告與擴充功能程式碼註冊的提供者是否相符。[#9033] - 將 Azure Resource Manager (ARM) 要求相關 ID 發送為標準連字號全域唯一識別碼,該識別碼從 OpenTelemetry 追蹤 ID 無損衍生,而非未裝飾的 32 字元字串。這涵蓋
azd直接 ARM 呼叫的x-ms-correlation-request-id標頭,以及傳遞給 Terraform AzureRM 提供者的ARM_CORRELATION_REQUEST_ID值,使azd與 ARM 規格及其他 Azure 工具保持一致。[#9141] - 停止顯示自動
azd tool首次執行安裝提示與定期更新通知。明確的azd tool指令不受影響。[#9261] - 在
provision、up與down上發出infra.provider遙測屬性,以便依基礎結構提供者區隔佈建執行。[#9091] - 在
execution.environment遙測欄位中辨識來自 Microsoft Foundry Skill 的azd呼叫。[#9167] - 在
execution.environment遙測欄位中,將 GitHub Copilot 應用程式與 GitHub Copilot CLI 分開回報。[#9288] - 將隨附的 GitHub CLI 更新至 v2.96.0。[#9245]
新文件
Microsoft Learn 上新增與更新的 azd 文件:
- 使用
azd tool管理 Azure 開發工具(7 月 27 日)— 已更新以反映 1.28.1 變更,移除自動azd tool首次執行安裝提示與定期更新通知,使參考文件與目前按需行為一致。 - 使用 Azure Pipelines 設定管線並推送更新(7 月 28 日)— 修正
azd pipeline config搭配 Azure DevOps 的 OpenID Connect (OIDC) 與聯合認證指引,並更新 GitHub Actions 與 Azure DevOps 的範例連結。 - 設定 Copilot 雲端代理程式開發環境(7 月 17 日)— 已更新「Copilot coding agent」重新品牌為「cloud agent」,包含全文檔案與連結更新。
azure.yaml結構描述參考(7 月 16 日)— 已更新 Azure AI Foundryazure.yaml統一變更,記錄 Microsoft Foundry 主機以直接在azure.yaml中建模 Foundry 專案、代理程式與相關資源。
新範本
社群範本可協助您更快入門,涵蓋常見情境,並展示如何使用 Azure Developer CLI 部署真實解決方案。
- Azure Functions 定時器觸發程序快速入門 由 Azure Functions Team 提供,跨五種語言擴展定時器觸發程序模式。每個範例皆使用
azd部署至 Azure Functions Flex Consumption,採用受控識別與虛擬網路以預設安全:- Python:以 Python 撰寫的 Azure Functions 定時器觸發程序快速入門。
- JavaScript:以 JavaScript 撰寫的 Azure Functions 定時器觸發程序快速入門。
- TypeScript:以 TypeScript 撰寫的 Azure Functions 定時器觸發程序快速入門。
- Java:以 Java 撰寫的 Azure Functions 定時器觸發程序快速入門。
- PowerShell:以 PowerShell 撰寫的 Azure Functions 定時器觸發程序快速入門。
- Durable Functions 扇出/扇入快速入門 由 Azure Functions Team 提供,在五種語言中展示扇出/扇入協調流程模式,每個範例皆使用
azd部署至 Azure Functions Flex Consumption,採用受控識別與虛擬網路:- Java:以 Java 撰寫的 Durable Functions 扇出/扇入快速入門。
- JavaScript:以 JavaScript 撰寫的 Durable Functions 扇出/扇入快速入門。
- TypeScript:以 TypeScript 撰寫的 Durable Functions 扇出/扇入快速入門。
- Python:以 Python 撰寫的 Durable Functions 扇出/扇入快速入門。
- PowerShell:以 PowerShell 撰寫的 Durable Functions 扇出/扇入快速入門。
- 遠端 Model Context Protocol (MCP) Functions 範例 由 Azure Functions Team 提供,展示如何在 Azure Functions 上建置與部署自訂遠端 MCP 伺服器:
- 使用 JavaScript 的遠端 MCP Functions:此情境展示如何使用 Azure Functions 與 JavaScript 建置並部署自訂遠端 MCP 伺服器至雲端,並使用 Microsoft Entra 作為身分識別提供者內建驗證。
- 使用 Durable Functions (.NET) 執行長時間執行的 MCP 工具:一個 .NET 獨立 Azure Functions MCP 伺服器,透過 Durable Functions 與預算啟動與輪詢模式支援長時間執行的 MCP 工具,使用
azd部署並採用 Durable Task Scheduler 後端與受控識別。
- 使用 Azure Developer CLI (Terraform) 的 Azure Functions C# HTTP 觸發程序 由 Azure Functions Team 提供:以 C#(獨立背景工作角色)撰寫的 Azure Functions HTTP 觸發程序快速入門,使用
azd部署至 Azure Functions Flex Consumption,並以 Terraform 作為基礎結構即程式碼提供者,搭配受控識別與虛擬網路以進行預設安全部署。 - 使用 Azure API Management 與 Application Gateway 的 mTLS 由 Ronald Bosma 提供:展示 Azure API Management 與 Application Gateway 的相互傳輸層安全性 (mTLS)。展示如何在直接呼叫 API Management 以及其位於 Application Gateway 後方時驗證用戶端憑證,以及如何使用 mTLS 從 API Management 保護與後端系統的連線。感謝 Ronald Bosma 的貢獻!
感謝社群貢獻,Azure Developer CLI 範本庫持續成長。謝謝!
🙋♀️ 初次接觸 azd?
如果您是初次接觸 Azure Developer CLI,azd 是一個開放原始碼命令列工具,可協助您更快將應用程式從本機開發環境部署至 Azure。它提供開發人員友善的指令,對應工作流程中的關鍵階段,無論您是在終端機、編輯器或 CI/CD 中工作。
- 安裝 azd
- 探索範本:瀏覽 Awesome azd 範本庫 與 AI 應用程式範本
- 深入了解:造訪 官方文件 與 疑難排解指南
- 取得協助:造訪 GitHub 存放庫 提交問題或開始討論
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.