Creare un'app servizio app in Azure Arc (anteprima)

In questa guida introduttiva viene creata 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.

Launch Cloud Shell in a new window

Poiché questi comandi dell'interfaccia della riga di comando non fanno ancora parte del set di interfaccia della riga di comando di base, 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

Eseguire 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

Nell'esempio seguente viene creata un'app Node.js. Sostituire <app-name> con un nome univoco all'interno del cluster (i caratteri validi sono a-z, 0-9e -). Per visualizzare tutti i runtime supportati, eseguire az webapp list-runtimes --os linux.

 az webapp create \
    --resource-group myResourceGroup \
    --name <app-name> \
    --custom-location $customLocationId \
    --runtime 'NODE|14-lts'

4. Distribuire un 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 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 è stata installata l'estensione senza Log Analytics, ignorare questo passaggio.

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

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

I log delle applicazioni 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 dell'applicazione 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, è possibile iniziare a usare Kusto.

(Facoltativo) Distribuire un contenitore personalizzato

Per creare un'app in contenitori personalizzata, 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