練習 - 將您的程式碼部署至 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>

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

驗證部署

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

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

使用 az webapp up 部署

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

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

APPNAME=$(az webapp list --query [0].name --output tsv)
APPRG=$(az webapp list --query [0].resourceGroup --output tsv)
APPPLAN=$(az appservice plan list --query [0].name --output tsv)
APPSKU=$(az appservice plan list --query [0].sku.name --output tsv)
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"

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

驗證部署

讓我們瀏覽至應用程式以查看其運作狀態。 在 JSON 輸出前面,az webapp up 輸出的最後一行文字會具備連結至您應用程式的連結。 按一下此選項即可在新的瀏覽器索引標籤中瀏覽。頁面將需要一些時間載入,因為 App Service 正在首次初始化您的應用程式。

當它載入之後,您將會看到您應用程式顯示問候訊息 — 您已成功部署!

設定部署認證

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

與其找出每個應用程式的認證並將它們儲存在某處,您可以使用稱為「使用者部署認證」的 App Service 功能來自行建立使用者名稱和密碼。 您所選擇的值將適用於您具有權限的「所有」App Service Web 應用程式上的部署,包括您在未來建立的 Web 應用程式。 您選取的使用者名稱和密碼將會繫結至您的 Azure 登入並僅供您使用,因此請不要與其他人共用這些資訊。 您隨時都可以變更使用者名稱和密碼。

建立部署認證最簡單的方式就是從 Azure CLI 進行。 在 Cloud Shell 中執行下列命令來設定它們,並將 <username><password> 取代為您所選擇的值。

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

使用 WAR 部署來部署應用程式套件

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

執行下列命令,使用 WAR 部署來部署您的應用程式。 將 <username><password> 取代為您在上方所建立的「部署使用者」使用者名稱和密碼,並將 <your-app-name> 取代為您 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 部署 Python 應用程式。 此命令將會封裝我們的應用程式,然後將它傳送到我們的 App Service 執行個體,並在其中建置及部署應用程式。

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

APPNAME=$(az webapp list --query [0].name --output tsv)
APPRG=$(az webapp list --query [0].resourceGroup --output tsv)
APPPLAN=$(az appservice plan list --query [0].name --output tsv)
APPSKU=$(az appservice plan list --query [0].sku.name --output tsv)
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 輸出前面,az webapp up 輸出的最後一行文字會具備連結至您應用程式的連結。 按一下此選項即可在新的瀏覽器索引標籤中瀏覽。頁面將需要一些時間載入,因為 App Service 正在首次初始化您的應用程式。

當它載入之後,您將會看到您應用程式顯示問候訊息 — 您已成功部署!