共用方式為


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

在本快速入門中,您會建立已啟用 Azure Arc 的 Kubernetes 叢集的 App Service 應用程式 (預覽)。 此案例僅支援 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
Node JS 12 NODE|12-lts
Node 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 中深入了解記錄查詢。

(選擇性) 部署自訂容器

若要建立自訂容器化應用程式,請使用 --deployment-container-image-name 執行 az webapp create。 針對私人存放庫,新增 --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/staticsite:latest

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

下一步