使用 GitHub Copilot 搭配 Azure Developer CLI

Azure Developer CLI (azd) 與 GitHub Copilot 整合,在 azd init 提供 AI 輔助的專案樣板搭建,並在命令失敗時進行智能錯誤排除。

當你執行 azd init時, azd 會顯示一個 設定 GitHub Copilot(預覽) 選項。 如果被選中,Copilot 會分析你的程式碼庫,根據你的程式碼語言、框架和相依性生成 azure.yaml基礎架構範本和部署配置。 Copilot 驅動的 init 支援新舊專案。

當指令 azd 失敗時, azd 可以使用 Copilot 分析錯誤、建議修正方案,並可選擇自動套用。

先決條件

要使用這些功能,你需要:

  • azd 1.23.11 或更高版本 — 執行 azd version 檢查,或 azd update 取得最新版本。
  • GitHub Copilot 存取 — 啟用中的 GitHub Copilot 訂閱(個人、商業或企業)。
  • GitHub CLI(ghazd 自動檢查並提示登入(如有需要)。
  • GitHub CLI(gh安裝 GitHub CLIazd 自動檢查驗證 gh 並提示登入(如有需要)。

使用 Copilot 和 azd init 建立專案架構

以下範例示範如何使用 Copilot 驅動的 init 來支撐具有 PostgreSQL 相依性的 Express API 專案。

在做任何更改前,流程會先執行預檢。 它會驗證你的 git 工作目錄是乾淨的,所以沒有未提交的工作會有風險。 它也會事先提示 Model Context Protocol(MCP)伺服器工具同意,讓你能檢視 Copilot 存取的工具。

  1. 執行 azd init 並選擇 「使用 GitHub Copilot 設定(預覽版)」:

    azd init
    # Select: "Set up with GitHub Copilot (Preview)"
    
  2. Copilot 會檢查你的專案結構,並從專案檔案中偵測 Express 框架和 PostgreSQL 的依賴性。

  3. 副駕駛會決定服務所需的適當 host 類型(containerapp)和 languagejs)。

  4. 副駕駛會產生正確的服務配置。azure.yaml

  5. Copilot 會根據偵測到的相依關係,為 Azure Container Apps 和 PostgreSQL 的 Azure Database 建立 Bicep 模組。

  6. 在寫入磁碟前,先審查並核准產生的檔案。

設置完成後,請照常執行 azd up 來配置並部署專案。

azd up

欲了解更多工作流程資訊, azd up 請參閱 探索 azd up 工作流程

AI 輔助錯誤故障排除

當指令 azd 失敗時, azd 可以使用 Copilot 分析錯誤並建議修正方案。 Copilot 會利用你的專案設定和錯誤細節,直接在終端機中提供情境特定的故障排除。 你可以從多種互動選項中選擇,設定預設行為,或讓 Copilot 自動修正並重試。

副駕駛故障排除選項

當指令失敗時,會 azd 顯示一個包含四個選項的互動提示。 使用方向鍵選擇選項並按下 Enter 鍵

  • 解釋 — 請用淺顯易懂的方式說明出了什麼問題。
  • 指導 — 獲得逐步的解決指引。
  • 診斷與指南 — 了解發生了什麼、錯誤發生的原因以及如何修復。 讓 Copilot 套用修正(經你同意),然後選擇性地重試失敗的指令。
  • 跳過 — 忽略並手動處理錯誤。
? How would you like to proceed?  [Use arrows to move, type to filter]
> Explain
  Guidance
  Diagnose and Guide
  Skip

Copilot 會根據你的專案設定、失敗的指令和錯誤細節,針對你的情況提供具體建議。

設定預設錯誤處理行為

如果你希望持續使用相同的選項,請透過 azd config 設定預設值,以跳過互動提示。

azd config set copilot.errorHandling.category troubleshoot

可用值為 copilot.errorHandling.category

Value 行為
explain 自動獲得白話的解釋。
guidance 自動取得分步驟的修復指南。
troubleshoot 自動診斷與指導。
fix 自動套用修正措施。
skip 一定要跳過 Copilot 的故障排除。

你也可以啟用自動修正並重試,這樣 Copilot 會自動套用修正並重執行失敗的指令:

azd config set copilot.errorHandling.fix allow

要重設為預設的互動提示,請解除設定:

azd config unset copilot.errorHandling.category

Azure 部署常見錯誤,Copilot 可以協助解決

以下範例展示了常見的 Azure 部署錯誤,以及 Copilot 協助故障排除如何幫助你解決這些錯誤。

MissingSubscriptionRegistration — 資源提供者未註冊

首次將項目部署至訂閱時常會失敗,原因如下:

ERROR: deployment failed: MissingSubscriptionRegistration:
The subscription is not registered to use namespace 'Microsoft.App'.

Azure 要求資源提供者必須註冊,才能建立某些資源類型。 如果這個容器應用程式是該訂閱第一次部署,Microsoft.App 還未註冊。 故障排除可以註冊提供者並自動重新執行部署。

SkuNotAvailable / OperationNotAllowed — SKU 或配額限制

你可能會遇到 SKU 可用性錯誤:

ERROR: deployment failed: SkuNotAvailable:
The requested VM size 'Standard_D2s_v3' is not available in location 'westus'.

或者配額制變體:

ERROR: deployment failed: OperationNotAllowed:
Operation results in exceeding quota limits of Core.
Maximum allowed: 4, Current in use: 4, Additional requested: 2.

當區域容量受限或訂閱達到 vCPU 限制時,這些錯誤很常見。 Copilot 的 「說明 」選項會明確說明哪些 SKU 或配額被封鎖, 指引 則建議可用的替代區域或虛擬機(VM)大小,或示範如何申請配額增加。

StorageAccountAlreadyTaken — 全球唯一名稱碰撞

ERROR: deployment failed: StorageAccountAlreadyTaken:
The storage account named 'myappstorage' is already taken.

儲存帳號名稱必須在整個 Azure 中是唯一的。 Copilot 建議更新你的 Bicep 參數或 azure.yaml 環境變數,並設定獨特名稱,通常是加上環境名稱或隨機後綴,然後再嘗試部署。

請求幫助

如需了解如何提出錯誤、請求協助或建議Azure開發者 CLI 新功能,請造訪 troubleshooting and support 頁面。