快速入門:使用 Bicep 調整以 azd Python 網頁範本部署之服務的規模

Python 網頁 azd 範本 幫助你快速建立新的網頁應用程式並部署到Azure。 azd 範本使用低成本Azure服務選項。 為了符合你的情況,調整範本中定義的每個服務的服務等級或版本。

在這個快速入門中,你更新適當的 Bicep 範本檔案以擴展現有服務。 接著執行 azd provision 指令,查看你對 Azure 部署所做的變更。

先決條件

Azure 訂用帳戶 - 免費建立訂用帳戶

請在您的本地電腦上安裝以下工具:

部署範本

首先,你需要有可正常運作的 azd 部署。 部署完成後,你可以修改 azd 範本產生的 Bicep 檔案。

  1. 請遵循 快速入門文章中的步驟 1 到 7。 在步驟 2 中,使用 azure-django-postgres-flexible-appservice 範本。 為了方便你,以下是從命令列執行的完整指令序列:

    mkdir azdtest
    cd azdtest
    azd init --template azure-django-postgres-flexible-appservice
    azd auth login
    azd up
    

    azd up 結束後,打開Azure入口網站,前往你在新資源群組中部署的Azure App 服務,並記錄應用程式服務的定價方案(詳見應用程式服務方案的 Overview頁面,Essentials 區塊,定價方案 價值)。

  2. 在快速入門文章的第一步,你建立了 azdtest 資料夾。 在 Visual Studio Code 中開啟該資料夾。

  3. 在檔案總管的窗格裡,進入 基礎設施 資料夾。 看看 infra 資料夾裡的子資料夾和檔案。

    main.bicep 檔案會統籌在您執行 azd upazd provision 時所部署的所有服務之建立作業。 它會呼叫其他檔案,例如 db.bicepweb.bicep。 這些檔案呼叫 \core 子資料夾中的檔案。

    \core子資料夾是一個深度巢狀的資料夾結構,包含許多Azure服務的Bicep範本。 三個頂層Bicep檔案(main.bicepdb。bicep,以及web。bicep)會參考 \core 子資料夾中的部分檔案。 有些檔案在這個專案中根本沒用到。

藉由修改服務的 Bicep 屬性來調整服務

您可以透過變更其 SKU 來調整部署中的現有資源。 為了示範這種擴展方法,請將 App Service 計畫從 Basic Service 方案 (設計給流量需求較低且不需要進階自動擴展與流量管理功能)改為標準 服務方案,後者設計用於執行生產工作負載。

備註

部署後你無法更改所有 SKU。 可能需要一些研究來更了解你的縮放選項。

  1. 開啟 web.bicep 檔案,並找出 appServicePlan 模組定義。 請特別注意尋找屬性設定:

       sku: {
          name: 'B1'
       }
    

    將值從 B1 變更為 S1,如下所示:

       sku: {
          name: 'S1'
       }
    

    這很重要

    此變動略微提高每小時價格。 關於不同服務方案及其相關費用的詳細資訊,請參閱 App Service 價格頁面

  2. 假設你已經在 Azure 部署了應用程式,請使用以下指令將變更部署到基礎架構,且不必重新部署應用程式碼本身。

    azd provision
    

    您不應該被要求輸入位置和訂閱。 .azure<environment-name>.env 檔案會儲存這些值,其中 <environment-name> 是你在 azd init 期間提供的環境名稱。

  3. azd provision 完成時,請確認您的 Web 應用程式仍可運作。 另請尋找資源群組的 App Service 方案,並確認定價方案已設定為標準服務方案 (S1)。

本快速入門至此結束。 然而,許多 Azure 服務能幫助你打造更具可擴展性且生產環境就緒的應用程式。 一個很好的起點是Azure API 管理Azure Front DoorAzure CDN,以及Azure 虛擬網路,僅舉幾例。

清理資源

透過執行 azd down 指令,清理範本所產生的資源。

azd down

azd down 命令會刪除 Azure 資源和 GitHub Actions 工作流程。 出現提示時,同意刪除與資源群組相關聯的所有資源。

你也可以刪除 azdtest 資料夾,或透過修改專案檔案來作為你自己應用程式的基礎。