Condividi tramite


Creare un'app del servizio app in Azure Arc (Anteprima)

In questa guida introduttiva si crea un'app servizio app in un cluster Kubernetes abilitato per Azure Arc (anteprima). Questo scenario supporta solo le app Linux ed è possibile usare uno stack di linguaggio predefinito o un contenitore personalizzato.

Prerequisiti

Aggiungere estensioni dell'interfaccia della riga di comando di Azure

Avviare l'ambiente Bash in Azure Cloud Shell.

Poiché questi comandi dell'interfaccia della riga di comando non fanno ancora parte del set di interfaccia della riga di comando principale, aggiungerli con i comandi seguenti:

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

1. Creare un gruppo di risorse

Esegui il comando seguente:

az group create --name myResourceGroup --location eastus 

2. Ottenere la posizione personalizzata

Ottenere le informazioni seguenti sulla posizione personalizzata dall'amministratore del cluster (vedere Creare una posizione personalizzata).

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

Ottenere l'ID percorso personalizzato per il passaggio successivo.

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

3. Creare un'app

L'esempio seguente crea un'app Node.js. Sostituire <app-name> con un nome univoco all'interno del cluster (i caratteri validi sono a-z, 0-9e -).

Runtime supportati:

Descrizione Valore di runtime per l'interfaccia della riga di comando
.NET Core 3.1 DOTNETCORE|3.1
.NET 5.0 DOTNETCORE|6.0
Nodo JS 12 NODE|12-lts
Nodo 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. Distribuire codice

Nota

az webapp up non è supportato durante l'anteprima pubblica.

Ottenere un'app di esempio Node.js usando Git e distribuirla usando la distribuzione ZIP. Sostituire <app-name> con il nome dell'app 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. Ottenere i log di diagnostica con Log Analytics

Nota

Per usare Log Analytics, è necessario abilitarlo in precedenza durante l'installazione dell'estensione servizio app. Se l'estensione è stata installata senza Log Analytics, ignorare questo passaggio.

Passare all'area di lavoro Log Analytics configurata con l'estensione servizio app, quindi fare clic su Log nel riquadro di spostamento a sinistra. Eseguire la query di esempio seguente per visualizzare i log nelle ultime 72 ore. Sostituire <app-name> con il nome dell'app Web. Se si verifica un errore durante l'esecuzione di una query, riprovare tra 10 e 15 minuti (potrebbe verificarsi un ritardo per l'avvio della ricezione dei log dall'applicazione da parte di Log Analytics).

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

I log dell'applicazione per tutte le app ospitate nel cluster Kubernetes vengono registrati nell'area di lavoro Log Analytics nella tabella log personalizzata denominata AppServiceConsoleLogs_CL.

Log_s contiene i log applicazioni per un determinato servizio app e AppName_s contiene il nome dell'app servizio app. Oltre ai log scritti tramite il codice dell'applicazione, la colonna Log_s contiene anche i log sull'avvio, l'arresto e le app per le funzioni del contenitore.

Per altre informazioni sulle query di log, vedere Introduzione a Kusto.

(Facoltativo) Distribuire un contenitore personalizzato

Per creare un'app personalizzata in contenitori, eseguire az webapp create con --deployment-container-image-name. Per un repository privato, aggiungere --docker-registry-server-user e --docker-registry-server-password.

Ad esempio, provare:

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

Per aggiornare l'immagine dopo la creazione dell'app, vedere Modificare l'immagine Docker di un contenitore personalizzato

Passaggi successivi