讓您的專案與 Azure 開發人員 CLI 相容
Azure 開發人員 CLI ( azd
) 可讓開發人員使用 GitHub 上裝載的範本 ,為雲端建構其應用程式。 Microsoft 提供數個 範本 來協助您開始使用。 在本文中,您將瞭解如何讓自己的應用程式 azd
相容。
瞭解範本架構
下圖提供建立 azd
範本的程式快速概觀:
所有 azd
範本都有相同的檔案結構,以慣例為基礎 azd
。 下列階層顯示您將在本教學課程中建置的目錄結構。
├── .azdo [ Configures an Azure Pipeline ]
├── .devcontainer [ For DevContainer ]
├── .github [ Configures a GitHub workflow ]
├── .vscode [ VS Code workspace configurations ]
├── .azure [ Stores Azure configurations and environment variables ]
├── infra [ Contains infrastructure as code files ]
│ ├── main.bicep/main.tf [ Main infrastructure file ]
│ ├── main.parameters.json/main.tfvars.json [ Parameters file ]
│ └── core/modules [ Contains reusable Bicep/Terraform modules ]
└── azure.yaml [ Describes the app and type of Azure resources]
初始化範本
azd init
命令可用來初始化您的應用程式,以在 Azure 上布建和部署應用程式資源。 此命令會提示您選擇兩個不同的工作流程,以初始化下列各節中所述的範本。
使用目前目錄中 的程式碼:選取此選項可指示
azd
分析目錄中的程式碼,以識別其所使用的技術,例如程式設計語言、架構和資料庫系統。azd
然後會自動為您產生範本資產,例如azure.yaml
服務定義檔,以及infra
具有基礎結構即程式碼檔案的資料夾。選取範本 :選取此選項以使用現有的範本作為起點。 根據預設,
azd
可讓您從 Awesome AZD 資源庫流覽範本,但您也可以設定自己的範本資源庫。 當您選取範本時,該範本的資產將會新增至現有的專案目錄。
下列各節概述這些工作流程的詳細資料。
您可以使用自己的專案,遵循後續步驟。 不過,如果您想要繼續使用範例應用程式,請將下列入門存放庫複製到您電腦上的空白目錄:
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
開啟您選擇的命令列工具至專案的根目錄。
azd init
執行 命令來初始化範本。azd init
出現提示時,選取 [ 使用目前目錄中 的程式碼] 選項。
azd
會分析專案,並提供偵測到的服務摘要和建議的 Azure 主控資源。選取 [ 確認並繼續初始化我的應用程式 ]。
azd
在專案根目錄中產生下列資產:azure.yaml
具有適當服務定義的檔案。infra
具有基礎結構即程式碼檔案的資料夾,可布建專案並將其部署至 Azure。.azure
在檔案中.env
設定環境變數的資料夾。
本文稍後會提供此偵測和產生程式的詳細資料。
產生的檔案適用于提供的範例應用程式,也可以用於您自己的應用程式。 如有必要,可以修改產生的檔案以符合您的需求。 例如,如果您的應用程式依賴 Azure 資源超出 所
azd
識別的資源,您可能需要進一步修改 資料夾中的基礎結構即程式碼檔案infra
。azd up
執行 命令,以布建應用程式並將其部署至 Azure。azd up
出現提示時,選取所需的訂用帳戶和位置,以開始布建和部署程式。
當程式完成時,按一下輸出中的
azd
連結,以在瀏覽器中開啟應用程式。
探索初始化步驟
當您在目前目錄 工作流程中選取 [使用程式碼] 時, azd init
命令會根據專案探索的內容來分析專案並自動產生程式碼。 下列各節說明此程式運作方式的詳細資料,以及目前支援哪些技術。
偵測
命令 azd init
會偵測專案檔中位於專案目錄和子目錄中的支援語言。 azd
也會掃描套件相依性,以收集應用程式所使用的 Web 架構或資料庫的相關資訊。 如有需要,您可以手動新增或編輯偵測到的元件,如確認摘要提示所示。
目前的偵測邏輯如下所示:
- 支援的語言:
- Python
- JavaScript/TypeScript
- .NET
- Java
- 支援的資料庫:
- MongoDB
- PostgreSQL
- 針對 Python 和 JavaScript/TypeScript,系統會自動偵測 Web 架構和資料庫。
- 當 JavaScript/TypeScript 專案使用前端(或用戶端)Web 架構時,它會分類為前端服務。 如果您的服務使用目前未偵測到的前端 Web 架構,您可以選取 JQuery 來提供對等的前端服務分類和行為。
第幾代
確認偵測到的元件之後, azd init
會產生將應用程式部署至 Azure 所需的基礎結構即程式碼檔案。
產生邏輯如下所示:
- 支援的主機:
- Azure Container Apps。
- 針對資料庫,使用的資料庫技術和服務之間支援的對應:
- MongoDB:適用于 MongoDB 的 Azure CosmosDB API
- PostgreSQL:適用於 PostgreSQL 的 Azure 資料庫彈性伺服器
- Redis:Azure Container Apps Redis 附加元件
- 使用資料庫的服務會有環境變數,預設會提供與預先設定之資料庫的連線。
- 當偵測到前端和後端服務時,後端服務的 Azure 主機上的 CORS 組態將會更新,以允許前端服務的預設裝載網域。 這可以在基礎結構即程式碼組態檔中視需要修改或移除。
新增對開發容器的支援
您也可以讓範本與開發容器和 Codespaces 相容。 開發容器可讓您使用容器作為功能完整的開發環境。 它可用來執行應用程式、分隔使用程式碼基底所需的工具、程式庫或執行時間,以及協助持續整合和測試。 在私人或公用雲端中,開發容器可以在本機或遠端執行。 (來源: https://containers.dev/ )
若要新增對開發容器的支援:
在專案的根目錄建立 .devcontainer 資料夾。
使用
devcontainer.json
所需的組態在.devcontainer
資料夾內建立檔案。 入門azd
範本提供 範例devcontainer.json
檔案,您可以複製到專案並視需要修改。
深入瞭解 如何在 Visual Studio Code 檔中使用開發容器 。
新增 CI/CD 管線的支援
您也可以使用 GitHub 動作或 Azure DevOps,在範本中新增 CI/CD 的支援,請使用下列步驟:
.github
將 GitHub 動作的資料夾或.ado
Azure DevOps 的資料夾新增至專案的根目錄。將工作流程檔案新增至新資料夾。 入門
azd
範本會針對每個平臺提供 範例 GitHub Actions 工作流程檔案 和 範例 Azure DevOps Pipelines 檔案,您可以視需要複製到專案並修改。您可能也需要使用工作流程執行所需的環境變數來更新
main.parameters.json
資料夾中的檔案infra
。
設定 CI/CD 管線
如果您的範本包含 GitHub Actions 或 Azure Pipelines 的支援,您可以使用下列步驟來設定 CI/CD 管線:
執行下列命令,將更新推送至存放庫。 GitHub Actions 工作流程會因為更新而觸發。
azd pipeline config
使用瀏覽器,移至專案的 GitHub 存放庫。
選取 [ 動作 ] 以查看工作流程正在執行。
清除資源
當您不再需要本文中建立的資源時,請執行下列命令:
azd down
另請參閱
- 使用 Visual Studio Code 建立 Bicep 檔案,以取得使用 Bicep 檔案的簡介。
- Bicep 範例
- 如何將 Azure Resource Manager 範本 (ARM 範本) 分解為 Bicep
- Azure 開發人員 CLI 的 azure.yaml 架構
要求說明
如需如何提出 Bug、要求協助或為 Azure 開發人員 CLI 提出新功能的資訊,請流覽 疑難排解和支援 頁面。
下一步
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應