Bereitstellen einer Node.js- und MongoDB-Web-App in Azure
Artikel
26 Minuten Lesedauer
In diesem Tutorial stellen Sie eine Express.js-Beispiel-App in Azure bereit, indem Sie eine MongoDB-Datenbank verwenden. Die Express.js-App wird im Azure App Service-Dienst gehostet, der das Hosten von Node.js-Apps sowohl für Linux- (Node-Versionen 12, 14 und 16) als auch für Windows-Serverumgebungen (Versionen 12 und 14) unterstützt. Die MongoDB-Datenbank wird in Azure Cosmos DB gehostet, einer cloudnativen Datenbank mit einer API, die zu 100 % mit MongoDB kompatibel ist.
In diesem Artikel wird davon ausgegangen, dass Sie bereits mit der Node.js-Entwicklung vertraut sind und Node und MongoDB lokal installiert haben. Sie benötigen außerdem ein Azure-Konto mit einem aktiven Abonnement. Falls Sie kein Azure-Konto besitzen, können Sie kostenlos eines erstellen.
Gehen Sie wie unten beschrieben vor, um die Anwendung lokal auszuführen:
Installieren Sie die Paketabhängigkeiten durch Ausführen von npm install.
Kopieren Sie die Datei .env.sample nach .env, und geben Sie für den Wert „DATABASE_URL“ Ihre MongoDB-URL an (z. B. mongodb://localhost:27017/).
Starten Sie die Anwendung mithilfe von npm start.
Navigieren Sie zum Anzeigen der App zu http://localhost:3000.
1. Erstellen von Azure App Service
Azure App Service wird zum Hosten der Express.js-Web-App verwendet. Geben Sie beim Einrichten von App Service für die Anwendung Folgendes an:
Den Namen für die Web-App. Dieser Name wird als Teil des DNS-Namens für Ihre Web-App im Format https://<app-name>.azurewebsites.net verwendet.
Die Runtime für die App. Hier wählen Sie die Version von Node aus, die für Ihre App verwendet werden soll.
Der App Service-Plan, der die für die Anwendung verfügbaren Computeressourcen (CPU, Arbeitsspeicher) definiert.
Die Ressourcengruppe für die App. Mit einer Ressourcengruppe können Sie (in einem logischen Container) alle für die Anwendung benötigten Azure-Ressourcen gruppieren.
Melden Sie sich beim Azure-Portal an, und führen Sie die folgenden Schritte aus, um Ihre Azure App Service-Ressourcen zu erstellen.
Anweisungen
Screenshot
Führen Sie im Azure-Portal die folgenden Schritte aus:
Geben Sie in der Suchleiste oben im Azure-Portal „App Services“ ein.
Wählen Sie im Menü, das unter der Suchleiste angezeigt wird, unter der Rubrik Dienste die Option App Services aus.
Wählen Sie auf der Seite App Services die Option + Erstellen aus.
Füllen Sie auf der Seite Web-App erstellen das Formular wie folgt aus.
Ressourcengruppe → Wählen Sie die Option Neu erstellen aus, und verwenden Sie einen Namen wie msdocs-expressjs-mongodb-tutorial.
Name → msdocs-expressjs-mongodb-XYZ, wobei XYZ für drei beliebige Zeichen steht. Dieser Name muss innerhalb von Azure eindeutig sein.
Veröffentlichen → Code.
Runtimestapel → Node 14 LTS.
Betriebssystem → Linux.
Region → Eine beliebige Azure-Region in Ihrer Nähe.
Linux-Plan → Wählen Sie Neu erstellen aus, und verwenden Sie den Namen msdocs-expressjs-mongodb-plan.
SKU und Größe → Wählen Sie Größe ändern aus, um einen anderen App Service-Plan auszuwählen.
Der App Service-Plan steuert, wie viele Ressourcen (CPU/Arbeitsspeicher) Ihrer App zur Verfügung stehen und wie hoch die Kosten für diese Ressourcen sind. Weitere Informationen zur Auswahl eines App Service-Plans finden Sie im Artikel App Service-Plan – Übersicht. Eine vollständige Liste der App Service-Pläne finden Sie auf der Seite App Service – Preise.
Für dieses Beispiel wählen Sie oben auf dem Bildschirm Dev/Test und dann den Plan B1 (Basic) aus. Der „B1 Basic“-Plan belastet Ihr Azure-Konto mit einer geringen Gebühr, bietet aber eine bessere Leistung als der Plan „F1 (Free)“.
Wenn Sie fertig sind, wählen Sie Übernehmen aus, um Ihre Änderungen zu übernehmen.
Wählen Sie auf der Hauptseite Web-App erstellen die Schaltfläche *Überprüfen und erstellen am unteren Rand des Bildschirms aus.
Dadurch gelangen Sie auf die Seite Überprüfung. Wählen Sie Erstellen aus, um Ihre App Service-Instanz zu erstellen.
Für die Erstellung von Azure-Ressourcen in VS Code müssen Sie das Paket mit der Azure-Tools-Erweiterung installiert haben und über VS Code bei Azure angemeldet sein.
Suchen Sie das Azure-Symbol in der linken Symbolleiste und wählen Sie es aus, um die Erweiterung „Azure-Tools für VS Code“ aufzurufen.
In der Erweiterung „Azure-Tools für VS Code“:
Suchen Sie den Abschnitt App Service in der Azure-Tools-Erweiterung.
Klicken Sie mit der rechten Maustaste auf das Azure-Abonnement, in dem Sie die Web-App erstellen möchten.
Wählen Sie im Kontextmenü Neue Web App erstellen...(Erweitert) aus. Wählen Sie unbedingt die Option Erweitert aus.
Geben Sie im Dialogfeld einen Namen für die App ein. Für dieses Beispiel geben Sie Ihrer Web App den Namen msdocs-expressjs-mongodb-XYZ, wobei XYZ für drei beliebige Zeichen steht. Dieser Name muss innerhalb von Azure eindeutig sein.
Der vollqualifizierte Domänenname Ihrer App lautet https://<app name>.azurewebsites.net.
Wählen Sie + Neue Ressourcengruppe erstellen aus, um eine neue Ressourcengruppe zu erstellen.
Geben Sie den Namen msdocs-expressjs-mongodb-tutorial für die Ressourcengruppe ein.
Im Dialogfeld wird nun eine Liste der verfügbaren Runtimes für Ihre Web-App angezeigt. Wählen Sie für dieses Beispiel die Option Node 14 LTS aus.
Wählen Sie ein Betriebssystem aus, das Sie für die Webhostingumgebung verwenden möchten. Wählen Sie für dieses Beispiel die Option Linux aus.
Wählen Sie einen Standort in Ihrer Nähe aus, an dem Ihre Web-App ausgeführt wird.
Wählen Sie + Neuen App Service-Plan erstellen aus.
Geben Sie den Namen msdocs-expressjs-mongodb-plan für den App Service-Plan ein.
Es wird empfohlen, für dieses Beispiel den Tarif Basic (B1) zu wählen.
Der Tarif Basic (B1) belastet Ihr Azure-Konto mit einer geringen Gebühr, bietet aber eine bessere Leistung als der Tarif Free (F1).
Wählen Sie Vorerst überspringen aus, wenn Sie aufgefordert werden, eine neue Application Insights-Ressource auszuwählen.
# Use 'az account list-locations --output table' to list locations
LOCATION='eastus'
RESOURCE_GROUP_NAME='msdocs-expressjs-mongodb-tutorial'
az group create \
--location $LOCATION \
--name $RESOURCE_GROUP_NAME
# Use 'az account list-locations --output table' to list locations
$location='eastus'
$resourceGroupName='msdocs-expressjs-mongodb-tutorial'
# Create a resource group
az group create `
--location $location `
--name $resourceGroupName
Der Parameter --sku definiert die Größe (CPU, Arbeitsspeicher) und die Kosten für den App Service-Plan. In diesem Beispiel wird der Plan „F1 (Free)“ verwendet. Eine vollständige Liste der App Service-Pläne finden Sie auf der Seite App Service – Preise.
Mit dem Flag --is-linux wählen Sie Linux als Hostbetriebssystem aus. Wenn Sie Windows verwenden möchten, entfernen Sie dieses Flag aus dem Befehl.
APP_SERVICE_PLAN_NAME='msdocs-expressjs-mongodb-plan'
az appservice plan create \
--name $APP_SERVICE_PLAN_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--sku B1 \
--is-linux
$appServicePlanName='msdocs-expressjs-mongodb-plan'
az appservice plan create `
--name $appServicePlanName `
--resource-group $resourceGroupName `
--sku B1 `
--is-linux
Erstellen Sie abschließend die App Service-Web-App mit dem Befehl az webapp create.
Der App Service-Name wird als Name der Ressource in Azure und zum Erstellen des vollqualifizierten Domänennamens für Ihre App im Format verwendet.
Die Runtime gibt an, welche Version von Node Ihre App ausführt. In diesem Beispiel wird Node 14 LTS verwendet. Um alle verfügbaren Runtimes aufzulisten, verwenden Sie den Befehl az webapp list-runtimes --os linux --output table für Linux und az webapp list-runtimes --os windows --output table für Windows.
# Change 123 to any three characters to form a unique name across Azure
APP_SERVICE_NAME='msdocs-expressjs-mongodb-123'
az webapp create \
--name $APP_SERVICE_NAME \
--runtime 'NODE|14-lts' \
--plan $APP_SERVICE_PLAN_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--query 'defaultHostName' \
--output table
# Change 123 to any three characters to form a unique name across Azure
$appServiceName='msdocs-expressjs-mongodb-123'
az webapp create `
--name $appServiceName `
--runtime 'NODE:14-lts' `
--plan $appServicePlanName `
--resource-group $resourceGroupName `
--query 'defaultHostName' `
--output table
2. Erstellen einer Azure Cosmos DB-Instanz im MongoDB-Kompatibilitätsmodus
Azure Cosmos DB ist eine vollständig verwaltete NoSQL-Datenbank für die moderne App-Entwicklung. Zu den Features gehört eine vollständig mit MongoDB kompatible API, die es Ihnen ermöglicht, Ihre bereits vorhandenen MongoDB-Tools, -Pakete und -Anwendungen mit Cosmos DB zu verwenden.
Sie müssen sich beim Azure-Portal anmelden, um diese Schritte zum Erstellen einer Cosmos DB-Instanz ausführen zu können.
Anweisungen
Screenshot
Führen Sie im Azure-Portal die folgenden Schritte aus:
Geben Sie oben im Azure-Portal auf der Suchleiste den Suchbegriff „Cosmos DB“ ein.
Wählen Sie im Menü, das unterhalb der Suchleiste angezeigt wird, unter Dienste das Element mit der Bezeichnung Azure Cosmos DB aus.
Wählen Sie auf der Seite Azure Cosmos DB die Option +Erstellen aus.
Es wird eine Seite angezeigt, auf der Sie aufgefordert werden, eine API-Option für Ihre Cosmos DB-Datenbank auszuwählen. Wählen Sie Azure Cosmos DB-API für MongoDB aus.
Füllen Sie auf der Seite Azure Cosmos DB-Konto erstellen das Formular wie folgt aus.
Wählen Sie für die Ressourcengruppe dieselbe Ressourcengruppe aus der Dropdownliste aus, die Sie für Ihre Web-App in App Service verwendet haben (msdocs-expressjs-mongodb-quickstart). Dadurch werden alle Komponenten, die für diese Anwendung benötigt werden, logisch in derselben Ressourcengruppe gruppiert, um die Erkennbarkeit und Verwaltung zu vereinfachen.
Geben Sie den Kontonamenmsdocs-expressjs-mongodb-database-XYZ für den Namen der Azure Cosmos DB-Instanz ein, wobei XYZ für drei beliebige eindeutige Zeichen steht. Cosmos DB-Kontonamen müssen in Azure eindeutig sein. Der Name muss zwischen 3 und 44 Zeichen lang sein und darf nur Kleinbuchstaben, Zahlen und das Bindestrichsymbol (-) enthalten.
Wählen Sie für den Standort denselben Azure-Standort aus, den Sie für Ihre App Service-Web-App verwendet haben. Es ist wichtig, Ihre Anwendung und Datenbank am gleichen Azure-Standort zu hosten, um die Netzwerkwartezeit zwischen verschiedenen Komponenten der Lösung zu minimieren.
Wenn der Rabatt im Free-Tarif für Ihr Konto verfügbar ist, können Sie ihn anwenden.
Wählen Sie Überprüfen und erstellen aus, um zur Bestätigungsseite zu wechseln, und klicken Sie dann auf Erstellen, um Ihre Datenbank zu erstellen.
Das Erstellen einer neuen Azure CosmosDB-Datenbank dauert in der Regel etwa fünf Minuten.
Anweisungen
Screenshot
Suchen Sie den Abschnitt Datenbanken in der Erweiterung „Azure-Tools für VS Code“ und wählen Sie ihn aus. Wählen Sie das Pluszeichen (+) aus, um eine neue Datenbank zu erstellen.
Am oberen Rand des VS Code-Fensters wird ein Dialogfeld angezeigt. Wählen Sie das Azure-Abonnement aus, in dem die Datenbank erstellt wird. Dies sollte dasselbe Abonnement sein, das Sie beim Erstellen Ihrer App Service-Instanz verwendet haben.
Wählen Sie Azure Cosmos DB für MongoDB-API als Datenbanktyp aus, den Sie im Dialogfeld erstellen möchten.
Geben Sie im Dialogfeld einen Namen für die Datenbank ein. Für dieses Beispiel geben Sie Ihrer Datenbank den Namen msdocs-expressjs-mongodb-XYZ, wobei XYZ für drei beliebige Zeichen steht. Cosmos DB-Kontonamen müssen in Azure eindeutig sein. Der Name muss zwischen 3 und 44 Zeichen lang sein und darf nur Kleinbuchstaben, Zahlen und das Bindestrichsymbol (-) enthalten.
Wählen Sie Bereitgestellter Durchsatz für das Dialogfeld für den Durchsatz aus.
Wählen Sie die Ressourcengruppe für die Erstellung Ihrer Cosmos DB-Instanz aus. Die Ressourcengruppe sollte dieselbe sein wie Ihre App Service-Instanz, da sie typischerweise alle für eine Anwendung benötigten Azure-Ressourcen in einer einzigen Ressourcengruppe zusammenfasst, um die Verwaltung zu erleichtern.
Wählen Sie den Standort aus, an dem Ihre Cosmos DB-Instanz erstellt wird. Dies sollte derselbe sein wie der Standort, an dem sich Ihre App Service-Instanz befindet, da Sie Ihre Anwendung und Ihre Datenbank immer am selben Standort ausführen sollten.
Mit dem Befehl az cosmosdb create wird ein neues Azure Cosmos DB-Konto erstellt.
Der Name des Cosmos DB-Kontos muss in Azure eindeutig sein. Der Name darf nur Kleinbuchstaben, Ziffern und Bindestriche (-) enthalten, und er muss zwischen 3 und 50 Zeichen lang sein.
Das --kind MongoDB-Flag weist Azure an, eine Cosmos DB-Instanz zu erstellen, die mit der MongoDB-API kompatibel ist. Dieses Flag muss enthalten sein, damit Ihre Cosmos DB-Instanz als MongoDB-Datenbank funktioniert.
# Replace 123 with any three characters to form a unique name
COSMOS_DB_NAME='msdocs-expressjs-mongodb-database-123'
az cosmosdb create \
--name $COSMOS_DB_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--kind MongoDB
# Replace 123 with any three characters to form a unique name
$cosmosDbName='msdocs-expressjs-mongodb-database-123'
az cosmosdb create `
--name $cosmosDbName `
--resource-group $resourceGroupName `
--kind MongoDB
Das Erstellen einer neuen Azure Cosmos DB-Datenbank dauert in der Regel etwa fünf Minuten.
3. Verbinden Ihrer App Service-Instanz mit Ihrer Cosmos DB-Datenbank
Um eine Verbindung mit Ihrer Cosmos DB-Datenbank herzustellen, müssen Sie Ihrer Anwendung die Verbindungszeichenfolge für die Datenbank zur Verfügung stellen. Dies erfolgt in der Beispielanwendung durch Lesen der Umgebungsvariablen DATABASE_URL. Bei lokaler Ausführung verwendet die Beispielanwendung das dotenv-Paket, um den Wert der Verbindungszeichenfolge aus der Datei .env zu lesen.
Bei Ausführung in Azure können Konfigurationswerte wie Verbindungszeichenfolgen in den Anwendungseinstellungen der App Service-Instanz gespeichert werden, die die Web-App hostet. Diese Werte werden Ihrer Anwendung dann während der Laufzeit als Umgebungsvariablen zur Verfügung gestellt. Dadurch wird die Verbindungszeichenfolge aus process.env von der Anwendung auf die gleiche Weise verwendet – unabhängig davon, ob sie lokal oder in Azure ausgeführt wird. Außerdem entfällt dadurch die Notwendigkeit, umgebungsspezifische Konfigurationsdateien mit Ihrer Anwendung zu verwalten und bereitzustellen.
Navigieren Sie zu Ihrem Cosmos DB-Konto. Wenn Sie Ihr Cosmos DB-Konto gerade erstellt haben, können Sie die Schaltfläche Zu Ressource wechseln wählen, um direkt zum Konto zu gelangen. Sie können auch das Suchfeld am oberen Rand des Bildschirms verwenden, um nach Ihrer Cosmos DB-Datenbank zu suchen und zu ihr zu navigieren.
Vergewissern Sie sich auf der Seite für Ihre Cosmos DB-Datenbank, dass der Punkt „Schnellstart“ im linken Menü ausgewählt ist. Es wird ein Textfeld mit der Bezeichnung Primäre Verbindungszeichenfolge angezeigt. Es gibt zwar Registerkarten für verschiedene Sprachen, aber die Zeichenfolge ist unabhängig von der Sprache dieselbe.
Kopieren Sie den Wert der Verbindungszeichenfolge in den Zwischenablagepuffer.
Navigieren Sie zurück zu Ihrer App Service-Instanz, um die Verbindungszeichenfolge für Ihre Web-App festzulegen.
Geben Sie im Suchfeld oben auf dem Bildschirm den Namen Ihrer App Service-Instanz (msdocs-expressjs-mongodb-XYZ) ein.
Wählen Sie Ihre App Service-Instanz aus, wenn sie unter dem Abschnitt Ressourcen des Dialogfelds angezeigt wird, um zur App Service-Instanz zu wechseln.
Auf der Seite für die App Service-Instanz:
Wählen Sie unter Einstellungen die Option Konfiguration aus.
Wählen Sie im Abschnitt Anwendungseinstellungen (nicht im Abschnitt „Verbindungszeichenfolgen“) das Menüelement + Neue Anwendungseinstellung aus, um eine Einstellung hinzuzufügen.
Legen Sie im Dialogfeld Anwendungseinstellung hinzufügen/bearbeiten den Namen der Einstellung auf DATABASE_URL fest, damit er mit dem im Anwendungscode verwendeten Namen übereinstimmt. Fügen Sie dann den Wert der Verbindungszeichenfolge für Ihre Datenbank in das Feld Wert ein. Wählen Sie OK aus, um diese Einstellung zu speichern.
Anweisungen
Screenshot
Im Abschnitt Datenbanken in der Erweiterung „Azure-Tools für VS Code“:
Suchen Sie die Datenbank für Ihre Anwendung, und klicken Sie mit der rechten Maustaste auf Ihre Datenbank.
Wählen Sie im Kontextmenü Verbindungszeichenfolge kopieren aus, um die Verbindungszeichenfolge in die Zwischenablage zu kopieren.
Suchen Sie den Abschnitt App Service der Erweiterung „Azure-Tools für VS Code“.
Suchen Sie Ihre Anwendung, und wählen Sie das Caretzeichen (>) aus, um die Eigenschaften der Anwendung zu erweitern.
Klicken Sie mit der rechten Maustaste auf das Element Anwendungseinstellungen, und wählen Sie Neue Einstellung hinzufügen... aus dem Kontextmenü aus.
Geben Sie den Namen der DATABASE_URL in das Dialogfeld ein, das oben im Fenster des VS Code-Editors angezeigt wird.
Dieser Name muss mit dem Namen der Umgebungsvariablen übereinstimmen, die zum Lesen der Einstellung im Code verwendet wird.
Geben Sie den Wert (Einfügen aus der Zwischenablage) der Verbindungszeichenfolge im nächsten angezeigten Dialogfeld ein.
Die Anwendungseinstellung wird jetzt in Azure App Service gespeichert.
Um diese oder andere App-Einstellungen für die App anzuzeigen, erweitern Sie den Knoten Anwendungseinstellungen unter der Anwendung in der Azure-Tools-Erweiterung, und wählen Sie das Augensymbol aus. Wenn Sie mit der rechten Maustaste auf eine Einstellung klicken, können Sie diese Einstellung bearbeiten oder löschen.
Verwenden Sie den Befehl az cosmos keys list, um die Verbindungszeichenfolge für eine Cosmos DB-Datenbank abzurufen.
Anstatt den Wert zu kopieren und einzufügen, kann die Verbindungszeichenfolge in einer Variablen gespeichert werden, um den nächsten Schritt zu vereinfachen.
Der Befehl az webapp config appsettings wird verwendet, um Anwendungseinstellungswerte für eine App Service-Web-App festzulegen. Mindestens ein Schlüssel-Wert-Paar wird mit dem --settings-Parameter festgelegt. Verwenden Sie den folgenden Befehl, um den DATABASE_URL-Wert auf die Verbindungszeichenfolge für Ihre Web-App festzulegen.
az webapp config appsettings set \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--settings DATABASE_URL=$COSMOS_DB_CONNECTION_STRING
az webapp config appsettings set `
--name $appServiceName `
--resource-group $resourceGroupName `
--settings DATABASE_URL=$cosmosDbConnectionString
4. Bereitstellen des Anwendungscodes in Azure
Azure App Service unterstützt mehrere Methoden zum Bereitstellen Ihres Anwendungscodes in Azure, einschließlich der Unterstützung für GitHub Actions und alle wichtigen CI/CD-Tools. In diesem Artikel geht es hauptsächlich darum, wie Sie Code von Ihrer lokalen Arbeitsstation in Azure bereitstellen.
Für die Bereitstellung Ihres Anwendungscodes direkt aus VS Code müssen Sie das Paket mit der Azure-Tools-Erweiterung installiert haben und über VS Code bei Azure angemeldet sein.
Suchen Sie das Azure-Symbol in der linken Symbolleiste und wählen Sie es aus, um die Erweiterung „Azure-Tools für VS Code“ aufzurufen.
Suchen Sie den Abschnitt App Service in der Azure-Tools-Erweiterung, und suchen Sie dann Ihre Web-App unter dem richtigen Abonnement. Klicken Sie mit der rechten Maustaste auf die Web-App, und wählen Sie dann im Menü In Web-App bereitstellen... aus.
Am oberen Rand des Fensters wird ein Dialogfeld angezeigt, in dem Sie das Verzeichnis auswählen können, über das die Bereitstellung erfolgen soll. Wählen Sie das Stammverzeichnis aus, in dem sich der Quellcode für Ihre Anwendung befindet.
In einem Dialogfeld werden Sie aufgefordert, Buildbefehle auf dem Zielserver auszuführen. Wenn Sie diese Frage mit „Ja“ beantworten, wird die Leistung für zukünftige Bereitstellungen verbessert.
In der unteren rechten Ecke von VS Code wird eine Benachrichtigung angezeigt, um Sie über die laufende Bereitstellung zu informieren. Wenn die Bereitstellung abgeschlossen ist, wird diese Benachrichtigung durch ein Dialogfeld ersetzt, in dem Sie zur Website navigieren können.
Sie können Ihren Anwendungscode aus einem lokalen Git-Repository in Azure bereitstellen, indem Sie ein Git-Remoterepository in Ihrem lokalen Repository konfigurieren, das auf Azure verweist und an das Code gepusht werden soll. Die URL des Remoterepositorys und die Git-Anmeldeinformationen, die für die Konfiguration erforderlich sind, können entweder über das Azure-Portal oder mit der Azure-Befehlszeilenschnittstelle abgerufen werden.
Navigieren Sie zu der App Service-Instanz für Ihre Anwendung.
Geben Sie den Namen Ihrer App Service-Instanz in das Suchfeld oben auf dem Bildschirm ein.
Die App Service-Instanz wird unter der Überschrift Ressourcen angezeigt. Wählen Sie die App Service-Instanz aus, um zu ihr zu navigieren.
Auf der Seite für die App Service-Instanz:
Wählen Sie im Menü auf der linken Seite des Bildschirms Bereitstellungscenter aus.
Wählen Sie in der Dropdownliste mit der Bezeichnung Quelle die Option Git (lokal) aus.
Wählen Sie in der oberen Menüleiste Speichern aus.
Nach dem Speichern wird die Seite aktualisiert und zeigt die Adresse für das Git-Remoterepository an.
Kopieren Sie den Wert von Git-Klon-URI, da Sie diesen Wert in einem späteren Schritt zum Einrichten eines Git-Remoterepositorys verwenden.
Auf der Seite Bereitstellungscenter:
Navigieren Sie zur Registerkarte Lokale Git-/FTPS-Anmeldeinformationen.
Suchen Sie den Benutzernamen und das Kennwort unter den Anmeldeinformationen für den Anwendungsbereich.
Lassen Sie diesen Bildschirm geöffnet, damit Sie diese Anmeldeinformationen vorübergehend verwenden können, wenn Sie Ihren Code im Remoterepository bereitstellen.
Wenn Sie zum ersten Mal Code in das Git-Remoterepository pushen, werden diese Anmeldeinformationen für die Authentifizierung beim Remoterepository benötigt.
Konfigurieren Sie zunächst mit dem Befehl az webapp deployment das lokale Git-Repository als Bereitstellungsquelle für Ihre Web-App.
Rufen Sie die Anmeldeinformationen für die Bereitstellung Ihrer Anwendung ab. Diese werden benötigt, damit sich Git bei Azure authentifizieren kann, wenn Sie in einem späteren Schritt Code an Azure pushen.
Als nächstes fügen wir unserem lokalen Git-Repository einen Azure-Ursprung hinzu, indem wir die Git-Bereitstellungs-URL der App Service-Instanz aus dem Schritt verwenden, in dem wir unsere App Service-Instanz erstellt haben. Stellen Sie sicher, dass Sie den Namen Ihrer App in der folgenden URL ersetzen. Sie können diese vollständige URL auch über die Registerkarte „Lokale Git-/FTPS-Anmeldeinformationen“ im Azure-Portal abrufen.
Sie können nun Code aus Ihrem lokalen Git-Repository mithilfe des soeben konfigurierten Git-Remoterepositorys an Azure pushen.
## Master is the default deployment branch for App Service - this will ensure our local main branch works for the deployment
git push azure main:master
Wenn Sie zum ersten Mal Code an Azure pushen, werden Sie von Git zur Eingabe der Anmeldeinformationen für die Azure-Bereitstellung aufgefordert, die Sie in einem vorherigen Schritt abgerufen haben. Git speichert diese Anmeldeinformationen dann zwischen, sodass Sie sie bei nachfolgenden Bereitstellungen nicht erneut eingeben müssen.
Anwendungen können in Azure bereitgestellt werden, indem eine ZIP-Datei mit den Anwendungsartefakten erstellt und die ZIP-Datei in Azure hochgeladen wird. ZIP-Dateien können mit der Azure-Befehlszeilenschnittstelle oder einem HTTP-Client wie Postman oder cURL in Azure hochgeladen werden.
Es gibt zwei Ansätze zum Bereitstellen einer ZIP-Datei in Azure:
Bereitstellen einer ZIP-Datei, die alle Artefakte (z. B. node_modules) enthält, die für die Anwendung erforderlich sind.
Bereitstellen einer ZIP-Datei, die nur den Anwendungsquellcode enthält und die Buildautomatisierung von Azure nutzt.
In diesem Tutorial aktivieren Sie die Buildautomatisierung in Azure App Service. Durch die Aktivierung der Buildautomatisierung führt App Service Buildaufgaben wie npm für Sie aus, sodass Sie nur Ihren Anwendungsquellcode in Ihre ZIP-Datei einschließen müssen.
Aktivieren der Buildautomatisierung
Um die Buildautomatisierung zu aktivieren, legen Sie die App-Einstellung SCM_DO_BUILD_DURING_DEPLOYMENT entweder im Azure-Portal oder in der Azure-Befehlszeilenschnittstelle fest.
# Change these values to the ones used to create the App Service.
RESOURCE_GROUP_NAME='msdocs-expressjs-mongodb-tutorial'
APP_SERVICE_NAME='msdocs-expressjs-mongodb-123'
az webapp config appsettings set \
--resource-group $RESOURCE_GROUP_NAME \
--name $APP_SERVICE_NAME \
--settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
# Change these values to the ones used to create the App Service.
$resourceGroupName='msdocs-expressjs-mongodb-tutorial'
$appServiceName='msdocs-expressjs-mongodb-123'
az webapp config appsettings set `
--resource-group $resourceGroupName `
--name $appServiceName `
--settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
Erstellen einer ZIP-Datei Ihrer Anwendung
Erstellen Sie eine ZIP-Datei für Ihre Anwendung. Sie müssen nur den Quellcode der Anwendung einbeziehen und sollten keine Dateien oder Verzeichnisse einschließen, die mit einem Punkt (.) beginnen, z. B. .env, .gitignore, .github oder .vscode. Sie sollten das Verzeichnis node_modules auch nicht einschließen, da Sie die Buildautomatisierung im letzten Schritt aktiviert haben.
Unter Linux oder auf einem Mac können Sie das integrierte Hilfsprogramm zip verwenden, um eine ZIP-Datei zu erstellen.
zip -r <file-name>.zip . -x '.??*'
Verwenden Sie unter Windows ein Programm wie 7-Zip, um eine ZIP-Datei zu erstellen, die zum Bereitstellen der Anwendung erforderlich ist.
Hochladen der ZIP-Datei in Azure
Nachdem Sie eine ZIP-Datei erstellt haben, können Sie die Datei entweder mithilfe der Azure-Befehlszeilenschnittstelle oder eines HTTP-Clients wie Postman oder cURL in Azure hochladen.
# Change these values to the ones used to create the App Service.
RESOURCE_GROUP_NAME='msdocs-python-webapp-quickstart'
APP_SERVICE_NAME='msdocs-python-webapp-quickstart-123'
az webapp deploy \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--src-path <zip-file-path>
# Change these values to the ones used to create the App Service.
$resourceGroupName='msdocs-python-webapp-quickstart'
$appServiceName='msdocs-python-webapp-quickstart-123'
az webapp deploy `
--name $appServiceName `
--resource-group $resourceGroupName `
--src-path <zip-file-path>
Um Postman zum Hochladen Ihrer ZIP-Datei in Azure zu verwenden, benötigen Sie den Benutzernamen und das Kennwort für die Bereitstellung von Ihrer App Service-Instanz. Diese Anmeldeinformationen können über das Azure-Portal abgerufen werden.
Wählen Sie auf der Seite der Web-App im Menü auf der linken Seite die Option Bereitstellungscenter aus.
Wählen Sie die Registerkarte FTPS-Anmeldeinformationen aus.
Der Benutzername und das Kennwort werden unter der Überschrift Anwendungsbereich angezeigt. Verwenden Sie bei Bereitstellungen mit einer ZIP-Datei nur den Teil des Benutzernamens nach dem Zeichen \, der mit $ beginnt, z. B. $msdocs-python-webapp-quickstart-123. Diese Anmeldeinformationen werden benötigt, wenn Sie Ihre ZIP-Datei mit Postman hochladen.
Laden Sie Ihre Datei in Postman mit den folgenden Schritten hoch.
Anweisungen
Screenshot
Klicken Sie auf das Pluszeichen (+), um eine neue Anforderung zu erstellen.
Wählen Sie als Anforderungstyp „POST“ aus.
Geben Sie die URL https://\<app-name\>.scm.azurewebsites.net/api/zipdeploy ein, wobei <app-name> der Name der Web-App ist. Diese URL ist der Endpunkt, der zum Bereitstellen einer ZIP-Datei für Ihren Azure-Dienst verwendet wird.
Auf der Registerkarte Autorisierung:
Legen Sie den Typ auf Basic fest.
Geben Sie den Benutzernamen und das Kennwort für die Bereitstellung ein, die Sie aus dem Azure-Portal abgerufen haben. Achten Sie darauf, nur den Teil des Benutzernamens nach dem Zeichen \, der mit $ beginnt, zu verwenden.
Auf der Registerkarte Text:
Wählen Sie als Inhaltstyp binär aus.
Verwenden Sie die Schaltfläche Datei auswählen, um Ihre ZIP-Datei auszuwählen.
Der Dateiname der hochzuladenden Datei wird im Abschnitt „Text“ angezeigt.
Wählen Sie die Schaltfläche Senden aus, um Ihre ZIP-Datei in Azure hochzuladen.
Je nach Netzwerkbandbreite dauert das Hochladen von Dateien in Azure in der Regel zwischen 10 und 30 Sekunden.
Je nach Netzwerkbandbreite dauert das Hochladen von Dateien in Azure in der Regel zwischen 10 und 30 Sekunden.
Um cURL zum Hochladen Ihrer ZIP-Datei in Azure zu verwenden, benötigen Sie den Benutzernamen und das Kennwort für die Bereitstellung von Ihrer App Service-Instanz. Diese Anmeldeinformationen können über das Azure-Portal abgerufen werden.
Wählen Sie auf der Seite der Web-App im Menü auf der linken Seite die Option Bereitstellungscenter aus.
Wählen Sie die Registerkarte FTPS-Anmeldeinformationen aus.
Der Benutzername und das Kennwort werden unter der Überschrift Anwendungsbereich angezeigt. Verwenden Sie bei Bereitstellungen mit einer ZIP-Datei nur den Teil des Benutzernamens nach dem Zeichen \, der mit $ beginnt, z. B. $msdocs-python-webapp-quickstart-123. Diese Anmeldeinformationen werden im cURL-Befehl benötigt.
Führen Sie den folgenden Befehl curl aus, um Ihre ZIP-Datei in Azure hochzuladen und Ihre Anwendung bereitzustellen.
Schließen Sie für PowerShell unbedingt den Benutzernamen in einfache Anführungszeichen ein, damit PowerShell nicht versucht, den Benutzernamen als PowerShell-Variable zu interpretieren.
Je nach Netzwerkbandbreite dauert das Hochladen von Dateien in Azure in der Regel zwischen 10 und 30 Sekunden.
5. Navigieren zur Anwendung
Die Anwendung hat eine URL im Format https://<app name>.azurewebsites.net. Navigieren Sie zu dieser URL, um die Anwendung anzuzeigen.
Verwenden Sie die Formularelemente in der Anwendung, um Aufgaben hinzuzufügen und abzuschließen.
6. Konfigurieren und Anzeigen von Anwendungsprotokollen
Azure App Service erfasst alle Nachrichten, die an der Konsole protokolliert werden, um Sie bei der Diagnose von Problemen mit Ihrer Anwendung zu unterstützen. Die Beispiel-App gibt Konsolenprotokollmeldungen an jedem ihrer Endpunkte aus, um diese Funktion zu veranschaulichen. Beispielsweise gibt der Endpunkt get eine Meldung über die Anzahl der aus der Datenbank abgerufenen Aufgaben aus, und eine Fehlermeldung wird angezeigt, wenn etwas nicht geklappt hat.
Der Inhalt der App Service-Diagnoseprotokolle kann über das Azure-Portal, in VS Code oder mithilfe der Azure-Befehlszeilenschnittstelle angezeigt werden.
Als Erstes müssen Sie das Streamen von Protokollen in Azure App Service aktivieren. Navigieren Sie zur Seite für die App Service-Instanz im Azure-Portal.
Wählen Sie im Menü auf der linken Seite unter der Überschrift Überwachung die Option App Service-Protokolle aus.
Ändern Sie die Eigenschaft Application Logging von Aus in „Dateisystem“.
Geben Sie für die Protokolle einen Aufbewahrungszeitraum von 30 Tagen ein.
Wählen Sie Speichern, um Ihre Änderungen zu speichern.
Wählen Sie im Menü im Abschnitt „Überwachung“ das Element Protokolldatenstrom aus. Aktualisieren Sie die Homepage in der App, oder versuchen Sie mit anderen Anforderungen, einige Protokollmeldungen zu generieren.
In der Ausgabe werden alle von Ihrer App generierten Protokollmeldungen und alle vom Dienst generierten Nachrichten angezeigt.
Anweisungen
Screenshot
Als Erstes müssen Sie das Streamen von Protokollen in Azure App Service aktivieren.
Klicken Sie im Abschnitt App Service der Erweiterung „Azure-Tools für VS Code“ mit der rechten Maustaste auf Ihre App Service-Instanz, und wählen Sie im Menü Start Streaming Logs (Streamen der Protokolle starten) aus.
Die Konsolenprotokolle werden im Ausgabefenster von VS Code angezeigt. Aktualisieren Sie die Homepage in der App, oder versuchen Sie mit anderen Anforderungen, einige Protokollmeldungen zu generieren.
In der Ausgabe werden alle von Ihrer App generierten Protokollmeldungen sowie andere vom Dienst generierte Nachrichten angezeigt.
Als Erstes müssen Sie mithilfe des Befehls az webapp log config Azure App Service so konfigurieren, dass Protokolle an das App Service-Dateisystem ausgegeben werden.
az webapp log tail \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
az webapp log tail `
--name $appServiceName `
--resource-group $resourceGroupName
Aktualisieren Sie die Homepage in der App, oder versuchen Sie mit anderen Anforderungen, einige Protokollmeldungen zu generieren. Die Ausgabe sollte in etwa wie folgt aussehen:
2021-10-26T20:12:01.825485319Z npm start
2021-10-26T20:12:04.478474807Z npm info it worked if it ends with ok
2021-10-26T20:12:04.496736134Z npm info using npm@6.14.10
2021-10-26T20:12:04.497958909Z npm info using node@v14.15.1
2021-10-26T20:12:05.874225522Z npm info lifecycle todolist@0.0.0~prestart: todolist@0.0.0
2021-10-26T20:12:05.891572192Z npm info lifecycle todolist@0.0.0~start: todolist@0.0.0
2021-10-26T20:12:05.941127150Z
2021-10-26T20:12:05.941161452Z > todolist@0.0.0 start /home/site/wwwroot
2021-10-26T20:12:05.941168852Z > node ./bin/www
2021-10-26T20:12:05.941173652Z
2021-10-26T20:12:16.234642191Z Mongoose connection open to database
2021-10-26T20:12:19.360371481Z GET /robots933456.txt 404 2144.146 ms - 1497
2021-10-26T20:12:38.419182028Z Total tasks: 6 Current tasks: 3 Completed tasks: 3
2021-10-26T20:12:38.799957538Z GET / 304 500.485 ms - -
2021-10-26T20:12:38.900597945Z GET /stylesheets/style.css 304 2.574 ms - -
2021-10-26T20:12:38.900637447Z GET /css/bootstrap.css 304 12.300 ms - -
2021-10-26T20:12:38.903103684Z GET /images/Azure-A-48px-product.svg 304 8.896 ms - -
2021-10-26T20:12:38.904441659Z GET /js/bootstrap.min.js 304 9.372 ms - -
7. Untersuchen bereitgestellter Dateien mit Kudu
Azure App Service bietet eine webbasierte Diagnosekonsole namens Kudu, über die Sie die Serverhostingumgebung für Ihre Web-App untersuchen können. Mit Kudu können Sie die in Azure bereitgestellten Dateien anzeigen, den Bereitstellungsverlauf der Anwendung überprüfen und sogar eine SSH-Sitzung in der Hostingumgebung öffnen.
Besuchen Sie eine der folgenden URLs, um auf Kudu zuzugreifen. Sie müssen sich mit Ihren Azure-Anmeldeinformationen bei der Kudu-Website anmelden.
Für Apps, die in den App Service-Plänen „Free“, „Shared“, „Basic“, „Standard“ und „Premium“ bereitgestellt werden: https://<app-name>.scm.azurewebsites.net
Für Apps, die in Dienstplänen vom Typ „App Service (isoliert)“ bereitgestellt werden: https://<app-name>.scm.<ase-name>.p.azurewebsites.net
Auf der Hauptseite in Kudu können Sie auf Informationen zur Anwendungshostingumgebung, zu App-Einstellungen und Bereitstellungen zugreifen und die Dateien im wwwroot-Verzeichnis durchsuchen.
Wenn Sie unter dem REST-API-Header auf den Link Deployments (Bereitstellungen) klicken, wird der Verlauf der Bereitstellungen Ihrer Web-App angezeigt.
Wenn Sie unter der Überschrift „Browse Directory“ (Verzeichnis durchsuchen) den Link Site wwwroot auswählen, können Sie die Dateien auf dem Webserver durchsuchen und anzeigen.
Bereinigen von Ressourcen
Wenn Sie fertig sind, können Sie alle Ressourcen aus Azure löschen, indem Sie die Ressourcengruppe für die Anwendung löschen.
Führen Sie zum Löschen einer Ressourcengruppe die folgenden Schritte aus, während Sie beim Azure-Portal angemeldet sind:
Anweisungen
Screenshot
Navigieren Sie im Azure-Portal zur Ressourcengruppe.
Geben Sie den Namen Ihrer Ressourcengruppe auf der Suchleiste oben auf der Seite ein.
Wählen Sie unter der Überschrift Ressourcengruppen im nachfolgenden Dialogfeld den Namen der Ressourcengruppe aus, um zu dieser zu navigieren.
Wählen Sie oben auf der Seite die Schaltfläche Ressourcengruppe löschen aus.
Geben Sie im Bestätigungsdialogfeld den Namen der Ressourcengruppe ein, um den Löschvorgang zu bestätigen. Wählen Sie unten auf der Seite die Schaltfläche Löschen aus, um die Ressourcengruppe zu löschen.
Anweisungen
Screenshot
In der Erweiterung „Azure-Tools für VS Code“:
Suchen Sie den Abschnitt Ressourcengruppen, und klicken Sie mit der rechten Maustaste auf den Namen der Ressourcengruppe, die Sie löschen möchten.
Wählen Sie im Menü Löschen aus.
Geben Sie den Namen der Ressourcengruppe in das Dialogfeld ein, um das Löschen der Ressourcengruppe zu bestätigen.
Löschen Sie die Ressourcengruppe mit dem Befehl az group delete.
RESOURCE_GROUP_NAME='msdocs-expressjs-mongodb-tutorial'
# Removing a resource group will delete all Azure resources inside the resource group!
az group delete \
--name $RESOURCE_GROUP_NAME
$resourceGroupName='msdocs-expressjs-mongodb-tutorial'
# Removing a resource group will delete all Azure resources inside the resource group!
az group delete `
--name $resourceGroupName