練習 - 將您的程式碼部署至 App Service

已完成

在本單元中,您會將 Web 應用程式部署至 App Service。

使用 ZIP 部署進行部署

現在讓我們使用 ZIP 部署來部署 .NET 應用程式。

首先,請使用 dotnet publish 建置最終的應用程式檔案,並使用 zip 將其封裝成 ZIP 檔案:

cd ~/BestBikeApp
dotnet publish -o pub
cd pub
zip -r site.zip *

最後,請使用 az webapp deployment source config-zip 執行部署。 將下列命令中的 <your-app-name> 取代成 Azure Web 應用程式的名稱並執行:

az webapp deployment source config-zip \
    --src site.zip \
    --resource-group <rgn>[sandbox resource group name]</rgn> \
    --name <your-app-name>

部署需要幾分鐘的時間,您將會在這段期間看到狀態輸出。 202 狀態碼表示部署成功。

檢查部署

讓我們瀏覽至我們的應用程式。 巡覽回包含預留位置頁面的已開啟瀏覽器索引標籤並重新整理。 如果預留位置頁面再次出現,表示 App Service 執行個體尚未完全重新啟動,因此請稍待片刻並再試一次。 當在應用程式重新啟動後重新整理時,將會看到新 ASP.NET Core Web 應用程式的啟動顯示頁面。

Screenshot of welcome page.

您已成功在 App Service 上裝載新的 ASP.NET Core 應用程式!

設定部署認證

某些 App Service 部署技巧 (包括這裡使用的技巧) 需要有不同於 Azure 認證的使用者名稱和密碼。 每個 Web 應用程式都會有屬於自己的預先設定使用者名稱和密碼,您可以將它們重設為新的隨機值,但不能將它們變更為自己所選擇的值。

不必為每個應用程式搜尋隨機值,您可以使用稱為「使用者部署認證」的 App Service 功能,建立您自己的使用者名稱和密碼。 您所選擇的值將適用於您具有權限的「所有」App Service Web 應用程式上的部署,包括您在未來建立的 Web 應用程式。 您選取的使用者名稱和密碼與 Azure 認證密切相關,僅供您使用,請勿與其他人共用。 您隨時都可以變更使用者名稱和密碼。

建立部署認證最簡單的方式就是從 Azure CLI 進行。

  1. 在 Cloud Shell 中執行下列命令來設定部署認證,並將 <username><password> 換成您選擇的值:

    az webapp deployment user set --user-name <username> --password <password>
    

使用 WAR 部署來部署 JAVA 應用程式封裝

現在讓我們使用 WAR 部署來部署 Java 應用程式。 WAR 部署是 Kudu REST API 的一部分,是所有 App Service Web 應用程式上都有的系統管理服務介面,您可透過 HTTP 進行存取。 使用 WAR 部署最簡單的方式,是從命令列使用 curl HTTP 公用程式。

執行下列命令,使用 WAR 部署來部署 JAVA Web 應用程式。 將 <username><password> 換成您稍早建立的「部署使用者」使用者名稱和密碼,並將 <your-app-name> 換成您在 Azure 入口網站中建立的 Web 應用程式的名稱。

cd ~/helloworld/target
curl -v -X POST -u <username>:<password> https://<your-app-name>.scm.azurewebsites.net/api/wardeploy --data-binary @helloworld.war

當命令執行完成時,開啟新的瀏覽器索引標籤並前往 https://<your-app-name>.azurewebsites.net。 您會看到應用程式的問候訊息。 您已成功部署!

使用 az webapp up 部署

讓我們使用 az webapp up 部署 Node.js 應用程式。 此命令將會封裝我們的應用程式,然後將其傳送到我們的 App Service 執行個體,並在其中建置及部署應用程式。

首先,我們需要收集一些與我們的 Web 應用程式資源有關的資訊。 執行下列命令來設定殼層變數,其中包含應用程式名稱、資源群組名稱、方案名稱、sku 和位置。 各使用不同的 az 命令向 Azure 要求資訊;az webapp up 需要這些值才能以現有的 Web 應用程式為目標。

export APPNAME=$(az webapp list --query [0].name --output tsv)
export APPRG=$(az webapp list --query [0].resourceGroup --output tsv)
export APPPLAN=$(az appservice plan list --query [0].name --output tsv)
export APPSKU=$(az appservice plan list --query [0].sku.name --output tsv)
export APPLOCATION=$(az appservice plan list --query [0].location --output tsv)

現在請搭配適當的值執行 az webapp up。 在您執行此命令前,請確保您位於 helloworld 目錄中。

az webapp up --name $APPNAME --resource-group $APPRG --plan $APPPLAN --sku $APPSKU --location "$APPLOCATION"

部署需要幾分鐘來傳播。 您可以在狀態輸出中檢視進度。 202 狀態碼表示您部署成功。

檢查部署

讓我們瀏覽至我們的應用程式。 az webapp up 的最後一行輸出 (在 JSON 程式碼區段之前) 有應用程式的連結。 選取連結,在新的瀏覽器索引標籤中前往那裡。因為 App Service 首次初始化應用程式,需要一些時間來載入頁面。

當其載入後,您會看到應用程式的問候訊息。 您已成功部署!

Screenshot of welcome page.

使用 az webapp up 部署

讓我們使用 az webapp up 部署 Python 應用程式。 此命令將會封裝我們的應用程式,然後將其傳送到我們的 App Service 執行個體,並在其中建置及部署應用程式。

首先,我們需要收集一些與我們的 Web 應用程式資源有關的資訊。 執行這些命令來設定包含我們應用程式名稱、資源群組名稱、方案名稱、sku 與位置的 shell 變數。 這些變數會使用不同的 az 命令向 Azure 要求資訊;az webapp up 需要這些值才能以現有的 Web 應用程式為目標。

export APPNAME=$(az webapp list --query [0].name --output tsv)
export APPRG=$(az webapp list --query [0].resourceGroup --output tsv)
export APPPLAN=$(az appservice plan list --query [0].name --output tsv)
export APPSKU=$(az appservice plan list --query [0].sku.name --output tsv)
export APPLOCATION=$(az appservice plan list --query [0].location --output tsv)

現在請搭配適當的值執行 az webapp up。 在您執行此命令前,請確保您位於 BestBikeApp 目錄中。

cd ~/BestBikeApp
az webapp up --name $APPNAME --resource-group $APPRG --plan $APPPLAN --sku $APPSKU --location "$APPLOCATION"

部署需要幾分鐘的時間,您將會在這段期間看到狀態輸出。

檢查部署

讓我們瀏覽至您的應用程式。 在該輸出中的 JSON 程式碼區塊之前,有一行包含 URL。 選取該連結,以在新的瀏覽器索引標籤中開啟您的應用程式。因為 App Service 首次初始化應用程式,可能需要一些時間來載入頁面。

當您的程式載入後,您會看到應用程式的問候訊息。 您已成功部署!

Screenshot of Python's welcome page showing Hello Best Bike App!