在 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-z
、 0-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 映像