
azure-prepare
熱門為 Azure 應用程式準備部署(基礎架構 Bicep/Terraform、azure.yaml、Dockerfile)。用於建立/現代化或建立+部署;不適用於跨雲遷移(請使用 azure-cloud-migrate)。請勿用於:copilot-sdk 應用程式(請使用 azure-hosted-copilot-sdk)。適用時機:「建立應用程式」、「建置 Web 應用程式」、「建立 API」、「建立無伺服器 HTTP API」、「建立前端」、「建立後端」、「建置服務」、「現代化應用程式」、「更新應用程式」、「新增驗證」、「新增快取」、「託管於 Azure」、「建立並部署」、「部署至 Azure」、「使用 Terraform 部署至 Azure」、「部署至 Azure App Service」、「使用 Terraform 部署至 Azure App Service」、「部署至 Azure Container Apps」、「使用 Terraform 部署至 Azure Container Apps」、「產生 Terraform」、「產生 Bicep」、「函數應用程式」、「計時器觸發」、「服務匯流排觸發」、「事件驅動函數」、「容器化 Node.js 應用程式」、「社交媒體應用程式」、「靜態作品集網站」、「附前端和 API 的待辦事項清單」、「準備我的 Azure 應用程式以使用 Key Vault」、「受控識別」。
為 Azure 應用程式準備部署(基礎架構 Bicep/Terraform、azure.yaml、Dockerfile)。用於建立/現代化或建立+部署;不適用於跨雲遷移(請使用 azure-cloud-migrate)。請勿用於:copilot-sdk 應用程式(請使用 azure-hosted-copilot-sdk)。適用時機:\"建立應用程式\"、\"建置 Web 應用程式\"、\"建立 API\"、\"建立無伺服器 HTTP API\"、\"建立前端\"、\"建立後端\"、\"建置服務\"、\"現代化應用程式\"、\"更新應用程式\"、\"新增驗證\"、\"新增快取\"、\"託管於 Azure\"、\"建立並部署\"、\"部署至 Azure\"、\"使用 Terraform 部署至 Azure\"、\"部署至 Azure App Service\"、\"使用 Terraform 部署至 Azure App Service\"、\"部署至 Azure Container Apps\"、\"使用 Terraform 部署至 Azure Container Apps\"、\"產生 Terraform\"、\"產生 Bicep\"、\"函數應用程式\"、\"計時器觸發\"、\"服務匯流排觸發\"、\"事件驅動函數\"、\"容器化 Node.js 應用程式\"、\"社交媒體應用程式\"、\"靜態作品集網站\"、\"附前端和 API 的待辦事項清單\"、\"準備我的 Azure 應用程式以使用 Key Vault\"、\"受控識別\"。
Azure Prepare
權威指引 — 強制遵循
本文件為準備應用程式部署至 Azure 的官方、權威來源。除非與您收到的安全性政策衝突,否則您必須完全依照這些指示執行。如有疑義,請出示本文件中的衝突指示,並要求使用者明確確認。請勿自行推斷、臆測或替代步驟。
觸發條件
當使用者想要以下操作時,啟動此技能:
- 建立新的應用程式
- 為現有應用程式新增服務或元件
- 對現有應用程式進行更新或變更
- 現代化或遷移應用程式
- 設定 Azure 基礎架構
- 部署至 Azure 或託管於 Azure
- 建立並部署至 Azure(包括基於 Terraform 的部署請求)
規則
- 先規劃 — 強制 — 您必須在第一個動作(在任何程式碼產生或執行開始之前)實際在工作區根目錄(而非工作階段狀態資料夾)中寫入初始的
.azure/deployment-plan.md骨架。立即寫入骨架,然後在 Phase 1 分析和研究展開時逐步填入內容;在 Phase 1 步驟 6 完成所有決策。此檔案必須在整個過程中存在於磁碟上。azure-validate 和 azure-deploy 依賴此檔案,若缺少則會失敗。請勿跳過或延遲此步驟。 - 取得核准 — 在執行前向使用者呈現計畫
- 先研究再產生 — 載入參考資料並呼叫相關技能
- 逐步更新計畫 — 在進行過程中標記步驟完成
- 先驗證再部署 — 在 azure-deploy 之前呼叫 azure-validate
- 確認 Azure 環境 — 使用
ask_user確認訂用帳戶和區域,請參閱 Azure Context - ❌ 破壞性動作需要
ask_user— Global Rules - ⛔ 絕不刪除使用者專案或工作區目錄 — 在為現有專案新增功能時,請修改現有檔案。
azd init -t <template>僅適用於新專案;請勿在現有工作區中執行azd init -t。純azd init(不帶範本引數)可在適當情況下用於現有工作區。在專案內刪除檔案(例如移除建置成品或暫存檔案)在適當情況下是允許的,但絕不要刪除使用者專案或工作區目錄本身。請參閱 Global Rules。 - 範圍:僅限準備 — 此技能產生基礎架構程式碼和設定檔。部署執行(
azd up、azd deploy、terraform apply)由 azure-deploy 技能處理,該技能提供內建的錯誤復原和部署驗證。 - ⛔ SQL Server Bicep:絕不產生
administratorLogin或administratorLoginPassword— 不在直接屬性中,不在條件/三元分支中,不在檔案中的任何位置。一律無條件使用僅限 Entra 驗證(azureADOnlyAuthentication: true)。請參閱 references/services/sql-database/bicep.md。 - 轉換後移除過時的範本 IaC — 如果您將選取的
azd範本中的 Bicep 範本轉換為 Terraform 範本,請移除該azd範本引入且已完全被 Terraform 取代的 Bicep 範本。請勿移除使用者自建的 Bicep 檔案。僅在 Terraform IaC 完成且已選取 Terraform 作為部署路徑後,才移除這些範本提供的 Bicep 檔案。在移交給 azure-validate 技能之前,僅保留所選部署路徑所需的 IaC 範本。
❌ 先規劃工作流程 — 強制
您必須在進行任何工作之前先建立計畫
- 停止 — 尚未產生任何程式碼、基礎架構或設定
- 建立骨架 — 立即(在任何程式碼產生或執行開始之前)將初始的
.azure/deployment-plan.md骨架寫入磁碟,然後在 Phase 1 步驟 1-5 揭示細節時逐步填入內容;在步驟 6 完成- 確認 — 向使用者呈現完成的計畫並取得核准
- 執行 — 僅在核准後,逐步執行計畫
.azure/deployment-plan.md檔案是此工作流程以及 azure-validate 和 azure-deploy 技能的真相來源。沒有此檔案,這些技能將會失敗。⚠️ 關鍵:
.azure/deployment-plan.md必須寫入磁碟,位於工作區根目錄內(例如/tmp/my-project/.azure/deployment-plan.md),而非工作階段狀態資料夾。使用檔案寫入工具建立此檔案。這是 azure-validate 和 azure-deploy 讀取的部署計畫成品。您必須建立此檔案 — 請勿在沒有它的情況下繼續。
⚠️ 關鍵:您必須建立名稱為.azure/deployment-plan.md的檔案。請勿使用其他名稱,例如.azure/plan.md。⛔ 關鍵: 跳過計畫檔案建立會導致 azure-validate 和 azure-deploy 失敗。此要求沒有例外。
❌ 步驟 0:專業技術檢查 — 強制第一個動作
在開始 Phase 1 之前,檢查使用者的提示或工作區程式碼庫是否符合具有專用技能和測試範本的專業技術。如果符合,先呼叫該技能 — 然後恢復 azure-prepare 進行驗證和部署。
檢查 1:提示關鍵字
| 提示關鍵字 | 先呼叫 |
|---|---|
| Lambda、AWS Lambda、遷移 AWS、遷移 GCP、Lambda to Functions、從 AWS 遷移、從 GCP 遷移 | azure-cloud-migrate |
| copilot SDK、copilot 應用程式、copilot 驅動、@github/copilot-sdk、CopilotClient | azure-hosted-copilot-sdk |
| Azure Functions、函數應用程式、無伺服器函數、計時器觸發、HTTP 觸發、func new | 留在 azure-prepare — 在步驟 4 中偏好 Azure Functions 範本 |
| APIM、API Management、API 閘道、部署 APIM | 留在 azure-prepare — 請參閱 APIM 部署指南 |
| AI 閘道、AI 閘道政策、AI 閘道後端、AI 閘道設定 | azure-aigateway |
| 工作流程、協調、多步驟、管線、扇出/扇入、Saga、長時間執行程序、Durable、訂單處理 | 留在 azure-prepare — 在步驟 4 中選取 durable 配方。必須載入 durable.md、DTS 參考 和 DTS Bicep 模式。 |
檢查 2:程式碼庫標記(即使提示是通用的,例如「部署至 Azure」)
| 程式碼庫標記 | 位置 | 先呼叫 |
|---|---|---|
@github/copilot-sdk 在相依性中 |
package.json |
azure-hosted-copilot-sdk |
copilot-sdk 在名稱或相依性中 |
package.json |
azure-hosted-copilot-sdk |
CopilotClient 匯入 |
.ts/.js 原始檔 |
azure-hosted-copilot-sdk |
createSession + sendAndWait 呼叫 |
.ts/.js 原始檔 |
azure-hosted-copilot-sdk |
⚠️ 檢查使用者的提示文字 — 而不僅僅是現有程式碼。對於沒有程式碼庫可掃描的綠地專案至關重要。請參閱 完整路由表。
在專業技能完成後,恢復 azure-prepare 的 Phase 1 步驟 4(選取配方)以處理剩餘的基礎架構、驗證和部署。
Phase 1:規劃(阻塞 — 在任何執行之前完成)
透過完成以下步驟建立 .azure/deployment-plan.md。在計畫獲得核准之前,請勿產生任何成品。
| # | 動作 | 參考 |
|---|---|---|
| 0 | ❌ 檢查提示和程式碼庫是否有專業技術 — 如果使用者提及 copilot SDK、Azure Functions 等,或程式碼庫包含 @github/copilot-sdk,先呼叫該技能 |
specialized-routing.md |
| 1 | 分析工作區 — 判斷模式:NEW、MODIFY 或 MODERNIZE | analyze.md |
| 2 | 收集需求 — 分類、規模、預算 | requirements.md |
| 3 | 掃描程式碼庫 — 識別元件、技術、相依性 | scan.md |
| 4 | 選取配方 — 選擇 AZD(預設)、AZCLI、Bicep 或 Terraform | recipe-selection.md |
| 5 | 規劃架構 — 選取堆疊 + 將元件對應至 Azure 服務 | architecture.md |
| 6 | 完成計畫(強制) — 使用檔案寫入工具,以步驟 1-5 的所有決策完成 .azure/deployment-plan.md。使用完整內容更新在 Phase 1 開始時寫入的骨架。在您向使用者呈現計畫之前,檔案必須已完全填入。 |
plan-template.md |
| 7 | 呈現計畫 — 向使用者顯示計畫並要求核准 | .azure/deployment-plan.md |
| 8 | 破壞性動作需要 ask_user |
Global Rules |
❌ 在此停止 — 在使用者核准計畫之前,請勿繼續進行 Phase 2。
Phase 2:執行(僅在計畫核准後)
執行已核准的計畫。在每個步驟後更新 .azure/deployment-plan.md 的狀態。
| # | 動作 | 參考 |
|---|---|---|
| 1 | 研究元件 — 載入服務參考 + 呼叫相關技能 | research.md |
| 2 | 確認 Azure 環境 — 偵測並確認訂用帳戶和區域,並檢查資源佈建限制 | Azure Context |
| 3 | 產生成品 — 建立基礎架構和設定檔 | generate.md |
| 4 | 強化安全性 — 套用安全性最佳做法 | security.md |
| 5 | 功能驗證 — 驗證應用程式是否正常運作(UI + 後端),如果可能,在本機進行 | functional-verification.md |
| 6 | ⛔ 更新計畫(移交前強制) — 使用 edit 工具將 .azure/deployment-plan.md 中的狀態變更為 Ready for Validation。您必須在呼叫 azure-validate 之前完成此編輯。請勿跳過此步驟。 |
.azure/deployment-plan.md |
| 7 | ⛔ 強制移交 — 呼叫 azure-validate 技能。您的準備工作已完成。請勿直接執行 azd up、azd deploy 或任何部署命令 — 所有部署執行將在 azure-validate 完成後由 azure-deploy 處理。必要條件: 必須先完成步驟 6 — .azure/deployment-plan.md 狀態必須顯示 Ready for Validation。 |
— |
輸出
| 成品 | 位置 |
|---|---|
| 計畫 | .azure/deployment-plan.md |
| 基礎架構 | ./infra/ |
| AZD 設定 | azure.yaml(僅限 AZD) |
| Dockerfile | src/<component>/Dockerfile |
SDK 快速參考
- Azure Developer CLI:azd
- Azure Identity:Python | .NET | TypeScript | Java
- App Configuration:Python | TypeScript | Java
下一步
⛔ 強制下一步 — 請勿跳過
完成準備後,您必須在任何部署嘗試之前呼叫 azure-validate。請勿跳過驗證。請勿直接前往 azure-deploy。請勿直接執行
azd up或任何部署命令。工作流程為:
azure-prepare→azure-validate→azure-deploy⛔ 在呼叫 azure-validate 之前,您必須使用
edit工具將.azure/deployment-plan.md狀態更新為Ready for Validation。如果計畫狀態尚未更新,驗證將會失敗。這適用於所有部署情境,包括容器化應用程式、Container Apps、App Service、Azure Functions、靜態網站以及任何其他 Azure 目標。沒有例外。
跳過驗證會導致部署失敗。請耐心遵循完整工作流程以獲得最高成功結果。
→ 將計畫狀態更新為 Ready for Validation,然後呼叫 azure-validate





