用應用程式目錄中的程式碼為你的應用程式新增 Azure 開發者 CLI 支援

Azure 開發者 CLI(azd)提供兩種不同的工作流程來初始化模板以配合你的應用程式使用,包括:

  • 使用目前目錄中的程式碼:此方法分析您的應用程式並自動產生支援的基礎設施與組態資源。
  • 選擇範本:此方法允許您將現有範本整合到應用程式中,或以現有範本作為新應用程式的起點。

這兩種方法都在「建立 Azure 開發者 CLI 範本總覽」文件中探討。

在本文中,你將學習如何透過「azd」的方法,為你的應用程式新增對 Azure 開發者 CLI() 的支援。 請參考 「使用現有範本文件新增 azd 支援」 頁面,了解更多替代方法的資訊。 你也可以造訪「 訓練 - 建置與部署 azd 範本 」,了解更多建置 azd 範本的資訊。

使用目前目錄中的程式碼

  1. 你可以使用你自己的專案來按照接下來的步驟操作。 不過,如果你想用範例應用程式跟著操作,請將以下起始倉庫複製到電腦上的空目錄:

    git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
    
  2. 打開一個終端機到專案的根目錄。

  3. 執行 azd init 初始化範本的指令。

    azd init
    
  4. 當提示時,選擇 「在目前目錄中使用程式碼」的選項。 azd分析專案並提供偵測到的服務摘要及推薦的 Azure 主機資源。

  5. 選擇 確認並繼續初始化我的應用程式azd 在專案根目錄中產生以下資產:

    • 一個 azure.yaml 帶有適當服務定義的檔案。
    • 一個infra包含基礎設施即程式碼檔案的資料夾,用來配置並部署專案到 Azure。
    • 一個 .azure 資料夾,其環境變數設定於 .env 檔案中。

    關於此檢測與生成過程的更多細節,文章後面會提供。

  6. 產生的檔案可直接用於所提供的範例應用程式,也可能同樣適用於你自己的應用程式。 如有需要,生成的檔案可修改以符合您的需求。 例如,如果您的應用程式仰賴的 Azure 資源超出 azd 所識別出的範圍,您可能需要進一步修改 infra 資料夾中的基礎結構即程式碼檔案。

  7. 執行azd up命令來配置並部署你的應用程式到 Azure。

    azd up
    
  8. 當提示時,選擇想要的訂閱與地點,開始配置與部署流程。

  9. 完成後,點擊輸出中的 azd 連結在瀏覽器中開啟應用程式。

探索初始化步驟

當你在目前目錄的工作流程中選擇 「使用程式碼 」時,指令 azd init 會分析你的專案並根據發現的內容自動產生程式碼。 以下章節將說明此流程的運作細節及目前支援的技術。

偵測

azd init 指令可偵測位於專案目錄及子目錄中支援語言的專案檔案。 azd 同時掃描套件相依關係,收集應用程式所使用的網頁框架或資料庫資訊。 如有需要,您可以依確認摘要提示手動新增或編輯偵測到的元件。

目前的偵測邏輯如下:

  • 支援的語言:
    • Python
    • JavaScript/TypeScript
    • .NET
    • JAVA
  • 支援資料庫:
    • MongoDB
    • PostgreSQL
  • 對於 Python 和 JavaScript/TypeScript,網頁框架和資料庫會自動被偵測到。
  • 當 JavaScript/TypeScript 專案使用前端(或用戶端)網頁框架時,它被歸類為前端服務。 如果您的服務使用目前未被偵測到的前端網頁框架,您可以選擇 JQuery 來提供等效的前端服務分類與行為。

世代

確認偵測到的元件後,azd init產生部署應用程式到 Azure 所需的基礎設施即程式碼檔案。

生成邏輯如下:

  • 支援主機:
    • Azure 容器應用程式.
  • 對於資料庫而言,支援的資料庫技術與服務之間的對應方式如下:
    • MongoDB: Azure CosmosDB API for MongoDB
    • PostgreSQL:適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器
    • Redis: Azure 容器應用程式 Redis add-on
  • 使用資料庫的服務預設會有環境變數,提供與資料庫的連線。
  • 當偵測到前端與後端服務時,Azure 主機上的 CORS 設定後端服務將更新,允許預設的前端服務主機網域。 這些設定可在基礎設施即程式碼(Infrastructure as Code)設定檔中必要修改或移除。

新增開發容器支援

你也可以讓你的範本與開發容器和程式碼空間相容。 開發容器讓你能將容器當作功能完整的開發環境使用。 它可用於執行應用程式、分離使用程式碼庫所需的工具、函式庫或執行環境,並協助持續整合與測試。 開發容器可以在本地或遠端執行,無論是在私有雲或公有雲中。 (資料來源: https://containers.dev/

若要新增對 dev containers 的支援:

  1. 在專案根建立一個 .devcontainer 資料夾。

  2. .devcontainer 資料夾中建立一個具有所需設定的 devcontainer.json 檔案。 azd入門範本提供一個範例devcontainer.json檔案,你可以複製到專案中,並視需要修改。

想了解更多關於開發容器的操作,請參考 Visual Studio Code 文件。

新增對 CI/CD 管線的支援

你也可以透過 GitHub 動作或 Azure DevOps 在範本中加入對 CI/CD 的支援,步驟如下:

  1. 在專案根目錄中新增.github一個 GitHub 動作資料夾或 .ado Azure DevOps 資料夾。

  2. 在新資料夾中新增一個工作流程檔案。 azd入門範本提供各平台的 GitHub Actions 工作流程範例檔案及 Azure DevOps Pipelines 範例檔案。 你可以把這些檔案複製到你的專案中,並視需要修改它們。

  3. 你可能還需要更新 main.parameters.json 資料夾裡 infra 的檔案,加入工作流程所需的環境變數。