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 deploy --resource-group myResourceGroup --name <app-name> --src-path 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.