Freigeben über


Erstellen einer App Service-App in Azure Arc (Vorschau)

In dieser Schnellstartanleitung erstellen Sie eine App Service-App in einem Kubernetes-Cluster mit Azure Arc-Unterstützung (Vorschau). Dieses Szenario unterstützt nur Linux-Apps, und Sie können einen integrierten Sprachstapel oder einen benutzerdefinierten Container verwenden.

Voraussetzungen

Hinzufügen von Azure CLI-Erweiterungen

Starten Sie die Bash-Umgebung in Azure Cloud Shell.

Da diese CLI-Befehle noch nicht Teil des CLI-Kernsets sind, fügen Sie sie mit den folgenden Befehlen hinzu:

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

1. Erstellen einer Ressourcengruppe

Führen Sie den folgenden Befehl aus.

az group create --name myResourceGroup --location eastus 

2. Abrufen des benutzerdefinierten Speicherorts

Erhalten Sie von Ihrem Cluster-Administrator die folgenden Informationen bezüglich des benutzerdefinierten Speicherorts (siehe Erstellen eines benutzerdefinierten Speicherorts).

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

Erhalten Sie die benutzerdefinierte Standort-ID für den nächsten Schritt.

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

3. Erstellen einer App

Im folgenden Beispiel wird eine Node.js-App erstellt. Ersetzen Sie <app-name> durch einen Namen, der in Ihrem Cluster eindeutig ist (gültige Zeichen: a-z, 0-9 und -).

Unterstützte Runtimes:

Beschreibung Runtimewert für 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. Bereitstellen von Code

Hinweis

az webapp up wird während der öffentlichen Vorschauphase nicht unterstützt.

Rufen Sie eine Node.js-Beispiel-App mit Git ab, und stellen Sie sie mithilfe von ZIP-Bereitstellung bereit. Ersetzen Sie <app-name> durch den Namen Ihrer Web-App.

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. Abrufen von Diagnoseprotokollen mit Log Analytics

Hinweis

Um Log Analytics zu verwenden, sollten Sie es zuvor bei der Installation der App Service-Erweiterung aktiviert haben. Wenn Sie die Erweiterung ohne Log Analytics installiert haben, überspringen Sie diesen Schritt.

Navigieren Sie zu dem Log Analytics-Arbeitsbereich, der mit Ihrer App Service-Erweiterung konfiguriert ist, und klicken Sie dann im linken Navigationsbereich auf „Protokolle“. Führen Sie die folgende Beispielabfrage aus, um Protokolle der letzten 72 Stunden anzuzeigen. Ersetzen Sie <app-name> durch den Namen Ihrer Web-App. Wenn beim Ausführen einer Abfrage ein Fehler auftritt, versuchen Sie es nach 10 bis 15 Minuten erneut (es kann zu eine Verzögerung kommen, bis Log Analytics beginnt Protokolle von Ihrer Anwendung zu empfangen).

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

Die Anwendungsprotokolle für alle Apps, die in Ihrem Kubernetes-Cluster gehostet werden, werden im Log Analytics-Arbeitsbereich in der benutzerdefinierten Protokolltabelle namens AppServiceConsoleLogs_CL protokolliert.

Log_s enthält Anwendungsprotokolle für einen bestimmten App Service, und AppName_s den Namen der App Service-App. Zusätzlich zu Protokollen, die Sie über Ihren Anwendungscode schreiben, enthält die Spalte „Log_s“ auch Protokolle zum Starten und Herunterfahren von Containern sowie zu Funktions-Apps.

Weitere Informationen zu Protokollabfragen finden Sie unter Erste Schritte mit Kusto.

(Optional) Bereitstellen eines benutzerdefinierten Containers

Um eine benutzerdefinierte containerisierte App zu erstellen, führen Sie az webapp create mit --deployment-container-image-name aus. Fügen Sie für ein privates Repository --docker-registry-server-user und --docker-registry-server-password hinzu.

Versuchen Sie zum Beispiel:

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

Informationen zum Aktualisieren des Images nach dem Erstellen der App finden Sie unter Ändern des Docker-Images eines benutzerdefinierten Containers.

Nächste Schritte