Creación de una aplicación de App Service en Azure Arc (versión preliminar)

En este inicio rápido, se crea una aplicación de App Service en un clúster de Kubernetes habilitado para Azure Arc (versión preliminar). Este escenario solo admite aplicaciones Linux, y se puede usar una pila de lenguaje integrada o un contenedor personalizado.

Requisitos previos

Adición de extensiones de la CLI de Azure

Inicie el entorno de Bash en Azure Cloud Shell.

Dado que estos comandos de la CLI aún no forman parte del conjunto de la CLI principal, agréguelos con los siguientes comandos:

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

1. Creación de un grupo de recursos

Ejecute el siguiente comando.

az group create --name myResourceGroup --location eastus 

2. Obtención de la ubicación personalizada

Obtenga la siguiente información sobre la ubicación personalizada del administrador del clúster (consulte Creación de una ubicación personalizada).

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

Obtenga el identificador de la ubicación personalizada para el paso siguiente.

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

3. Creación de una aplicación

El ejemplo siguiente crea una aplicación Node.js. Reemplace <app-name> por un nombre que sea único en el clúster (los caracteres válidos son a-z, 0-9 y -).

Entornos de ejecución admitidos:

Descripción Valor en tiempo de ejecución para la 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. Implementación de código

Nota

az webapp up no se admite durante la versión preliminar pública.

Obtenga una aplicación Node.js de ejemplo mediante Git e impleméntela mediante la implementación de ZIP. Reemplace <app-name> por el nombre de la aplicación 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. Obtención de los registros de diagnóstico con Log Analytics

Nota

Para usar Log Analytics, debe haberlo habilitado previamente al instalar la extensión de App Service. Si instaló la extensión sin Log Analytics, omita este paso.

Vaya al área de trabajo de Log Analytics configurada con la extensión de App Service y, a continuación, haga clic en Registros en el panel de navegación izquierdo. Ejecute la consulta de ejemplo siguiente para mostrar los registros de las últimas 72 horas. Reemplace <app-name> por el nombre de la aplicación web. Si se produce un error al ejecutar una consulta, inténtelo de nuevo después de 10-15 minutos (puede haber un retraso hasta que Log Analytics empiece a recibir registros de la aplicación).

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

Los registros de aplicación de todas las aplicaciones hospedadas en el clúster de Kubernetes se registran en el área de trabajo de Log Analytics en la tabla de registros personalizada denominada AppServiceConsoleLogs_CL.

Log_s contiene registros de aplicaciones de una instancia de App Service determinada, y AppName_s contiene el nombre de la aplicación de App Service. Además de los registros que escribe con el código de la aplicación, la columna Log_s también contiene registros sobre el inicio, el apagado y las aplicaciones de funciones del contenedor.

Puede obtener más información sobre las consultas de registro en Introducción a Kusto.

(Opcional) Implementación de un contenedor personalizado

Para crear una aplicación de contenedor personalizado, ejecute az webapp create con --deployment-container-image-name. Para un repositorio privado, agregue --docker-registry-server-user y --docker-registry-server-password.

Por ejemplo, pruebe lo siguiente:

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

Para actualizar la imagen una vez creada la aplicación, vea Cambio de la imagen de Docker de un contenedor personalizado.

Pasos siguientes