在 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-z
、 0-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 deploy --resource-group myResourceGroup --name <app-name> --src-path 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 影像