在 Azure Arc (預覽) 上建立 App Service 應用程式

在本快速入門中,您會將App Service 應用程式建立 至已啟用 Azure Arc 的 Kubernetes 叢集 (預覽)。 此案例僅支援 Linux 應用程式,而且您可以使用內建的語言堆疊或自定義容器。

必要條件

新增 Azure CLI 擴充功能

在 Azure Cloud Shell啟動 Bash 環境。

因為這些 CLI 命令還不是核心 CLI 集合的一部分,請使用下列命令加以新增:

az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube

1.建立資源群組

執行下列命令。

az group create --name myResourceGroup --location eastus 

2.取得自定義位置

從叢集管理員取得自定義位置的下列資訊(請參閱 建立自定義位置)。

customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"

取得下一個步驟的自定義位置標識碼。

customLocationId=$(az customlocation show \
    --resource-group $customLocationGroup \
    --name $customLocationName \
    --query id \
    --output tsv)

3.建立應用程式

下列範例會建立Node.js應用程式。 <app-name>取代為叢集內唯一的名稱(有效字元為a-z0-9-

支援的執行時間:

描述 CLI 的運行時間值
.NET Core 3.1 DOTNETCORE|3.1
.NET 5.0 DOTNETCORE|6.0
節點 JS 12 NODE|12-lts
節點 JS 14 NODE|14-lts
Python 3.6 PYTHON|3.6
Python 3.7 PYTHON|3.7
Python 3.8 PYTHON|3.8
PHP 7.3 PHP|7.3
PHP 7.4 PHP|7.4
Java 8 JAVA|8-jre8
Java 11 JAVA|11-java11
Tomcat 8.5 TOMCAT|8.5-jre8
Tomcat 8.5 TOMCAT|8.5-java11
Tomcat 9.0 TOMCAT|9.0-jre8
Tomcat 9.0 TOMCAT|9.0-java11
 az webapp create \
    --resource-group myResourceGroup \
    --name <app-name> \
    --custom-location $customLocationId \
    --runtime 'NODE|14-lts'

4.部署一些程序代碼

注意

az webapp up 在公開預覽期間不受支援。

使用 Git 取得範例Node.js應用程式,並使用 ZIP 部署加以 部署。 將取代 <app-name> 為您的 Web 應用程式名稱。

git clone https://github.com/Azure-Samples/nodejs-docs-hello-world
cd nodejs-docs-hello-world
zip -r package.zip .
az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
az webapp deployment source config-zip --resource-group myResourceGroup --name <app-name> --src package.zip

5.使用 Log Analytics 取得診斷記錄

注意

若要使用Log Analytics,您應該先前在安裝App Service 擴充功能時啟用它。 如果您已安裝沒有 Log Analytics 的擴充功能,請略過此步驟。

流覽至 使用 App Service 擴充功能設定的 Log Analytics 工作區,然後按兩下左側導覽中的 [記錄]。 執行下列範例查詢,以顯示過去72小時內的記錄。 將取代 <app-name> 為您的 Web 應用程式名稱。 如果執行查詢時發生錯誤,請在10-15分鐘內再試一次(Log Analytics可能會延遲從您的應用程式開始接收記錄)。

let StartTime = ago(72h);
let EndTime = now();
AppServiceConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where AppName_s =~ "<app-name>"

Kubernetes 叢集中裝載之所有應用程式的應用程式記錄會記錄到名為 AppServiceConsoleLogs_CL的自定義記錄數據表中的Log Analytics工作區。

Log_s包含指定 App Service 的應用程式記錄,AppName_s包含 App Service 應用程式名稱。 除了透過應用程式程式代碼撰寫的記錄之外,Log_s數據行也包含容器啟動、關機和函式應用程式的記錄。

您可以在開始使用 Kusto深入了解記錄查詢。

(選擇性)部署自定義容器

若要建立自定義容器化應用程式,請使用 執行 az webapp create--deployment-container-image-name 針對私人存放庫,新增 --docker-registry-server-user--docker-registry-server-password

例如,嘗試:

az webapp create \
    --resource-group myResourceGroup \
    --name <app-name> \
    --custom-location $customLocationId \
    --deployment-container-image-name mcr.microsoft.com/appsvc/node:14-lts

若要在建立應用程式之後更新映像,請參閱 變更自定義容器的 Docker 映像

下一步