你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure Arc 上创建应用服务应用(预览版)
在本快速入门中,你将为已启用 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>"
获取自定义位置 ID,供下一步使用。
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,应在之前安装应用服务扩展时启用它。 如果安装的扩展没有 Log Analytics,请跳过此步骤。
导航到使用应用服务扩展配置的 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 包含给定应用服务的应用程序日志,AppName_s 包含应用服务应用名称 。 除了通过应用程序代码写入的日志之外,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 映像