Tutorial: Verbinden einer App Services-Web-App mit einem flexiblen Server von Azure Database for MySQL in einem virtuellen Netzwerk

GILT FÜR: Azure Database for MySQL – Flexibler Server

In diesem Tutorial erfahren Sie, wie Sie eine Azure App Service-Web-App erstellen und mit einer Instanz von Azure Database for MySQL – Flexibler Server verbinden, die im gleichen oder in einem anderen virtuellen Netzwerk isoliert ist.

In diesem Lernprogramm lernen Sie Folgendes:

  • Erstellen einer Instanz von Azure Database for MySQL – Flexibler Server in einem virtuellen Netzwerk
  • Erstellen eines Subnetzes zum Delegieren an App Service und Erstellen einer Web-App
  • Hinzufügen der Web-App zum virtuellen Netzwerk
  • Herstellen einer Verbindung mit Azure Database for MySQL – Flexibler Server über die Web-App
  • Herstellen einer Verbindung zwischen einer Web-App und einer Instanz von Azure Database for MySQL – Flexibler Server, die in verschiedenen VNets isoliert sind

Voraussetzungen

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen. Mit einem kostenlosen Azure-Konto können Sie Azure Database for MySQL – Flexibler Server derzeit 12 Monate lang kostenlos testen. Weitere Informationen finden Sie unter Testen Sie Azure Database for MySQL – Flexible Server kostenlos.

Für den Artikel müssen Sie mindestens Version 2.0 der Azure-Befehlszeilenschnittstelle lokal ausführen. Führen Sie den Befehl az --version aus, um die installierte Version anzuzeigen. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.

Sie müssen sich mithilfe des Befehls az login bei Ihrem Konto anmelden. Beachten Sie die Eigenschaft id aus der Befehlsausgabe für den entsprechenden Abonnementnamen.

az login

Wenn Sie über mehrere Abonnements verfügen, wählen Sie das entsprechende Abonnement aus, in dem die Ressource fakturiert sein sollte. Wählen Sie mithilfe des Befehls az account set die Abonnement-ID unter Ihrem Konto aus. Ersetzen Sie den Platzhalter für die Abonnement-ID durch die subscription ID-Eigenschaft der Ausgabe von az login für Ihr Abonnement.

az account set --subscription <subscription ID>

Erstellen einer Azure Database for MySQL Flexible Server-Instanz

Führen Sie den folgenden Befehl aus, um eine private Instanz von Azure Database for MySQL – Flexibler Server in einem virtuellen Netzwerk (VNet) zu erstellen:

az mysql flexible-server create --resource-group myresourcegroup --location westus2 --vnet VNETName

Kopieren Sie die Verbindungszeichenfolge und den Namen des neu erstellten virtuellen Netzwerks. Durch diesen Befehl werden folgende Aktionen ausgeführt, was einige Minuten dauern kann:

  • Erstellen Sie die Ressourcengruppe, wenn sie noch nicht vorhanden ist.
  • Generiert einen Servernamen, wenn er nicht angegeben ist.
  • Erstellt ein neues virtuelles Netzwerk (VNETName) für Ihre neue Instanz von Azure Database for MySQL – Flexibler Server sowie innerhalb dieses virtuellen Netzwerks ein Subnetz für die Instanz von Azure Database for MySQL – Flexibler Server. Stellen Sie sicher, dass der Name eindeutig ist
  • Erstellt einen Administratorbenutzernamen und ein Kennwort für Ihren Server, sofern nicht angegeben.
  • Erstellt eine leere Datenbank mit dem Namen flexibleserverdb.

Hinweis

Notieren Sie sich das Kennwort, das für Sie generiert wird, falls Sie keines angegeben haben. Wenn Sie das Kennwort vergessen, müssen Sie es mit dem Befehl az mysql flexible-server update zurücksetzen.

Erstellen eines Subnetzes für den App Service-Endpunkt

Sie benötigen nun ein Subnetz, das an den Endpunkt der App Service-Web-App delegiert wird. Führen Sie den folgenden Befehl aus, um ein neues Subnetz im gleichen virtuellen Netzwerk zu erstellen, in dem auch die Instanz von Azure Database for MySQL – Flexibler Server erstellt wurde.

az network vnet subnet create -g myresourcegroup --vnet-name VNETName --name webappsubnetName  --address-prefixes 10.0.1.0/24  --delegations Microsoft.Web/serverFarms --service-endpoints Microsoft.Web

Notieren Sie sich nach diesem Befehl den Namen des virtuellen Netzwerks und des Subnetzes, da Sie diese nach der Erstellung der Web-App zum Hinzufügen einer VNet-Integrationsregel benötigen.

Erstellen einer Web-App

In diesem Abschnitt erstellen Sie einen App-Host in der App Service-App und verbinden die App mit der Datenbank von Azure Database for MySQL – Flexibler Server. Vergewissern Sie sich im Terminal, dass Sie sich im Repositorystamm Ihres Anwendungscodes befinden.

Führen Sie den Befehl „az webapp up“ aus, um eine App Service-App (den Hostprozess) zu erstellen:

az webapp up --resource-group myresourcegroup --location westus2 --plan testappserviceplan --sku P2V2 --name mywebapp

Hinweis

  • Verwenden Sie für das Argument „--location“ den gleichen Standort wie für die Datenbank im vorherigen Abschnitt.
  • Ersetzen Sie <app-name> durch einen Namen, der in Azure eindeutig ist. (Der Serverendpunkt ist https://\<app-name>.azurewebsites.net). Gültige Zeichen für <app-name> sind A-Z, 0-9 und der Bindestrich (-). Ein bewährtes Muster ist eine Kombination aus Ihrem Firmennamen und einer App-ID.
  • Im Basic-Tarif von App Service wird die VNet-Integration nicht unterstützt. Verwenden Sie den Standard- oder Premium-Tarif.

Durch diesen Befehl werden folgende Aktionen ausgeführt, was einige Minuten dauern kann:

  • Erstellen einer Ressourcengruppe (sofern noch nicht vorhanden). Verwenden Sie in diesem Befehl die gleiche Ressourcengruppe, in der Sie zuvor schon die Datenbank erstellt haben.
  • Erstellen Sie den App Service-Plan testappserviceplan im Basic-Tarif (B1), falls er nicht vorhanden ist. „--plan“ und „--sku“ sind optional.
  • Erstellen der App Service-App (sofern noch nicht vorhanden)
  • Aktivieren der Standardprotokollierung für die App (sofern noch nicht aktiviert)
  • Hochladen des Repositorys per ZIP-Bereitstellung mit aktivierter Buildautomatisierung

Hinzufügen der Web-App zum virtuellen Netzwerk

Verwenden Sie den az webapp vnet-integration-Befehl, um eine regionale Integration eines virtuellen Netzwerks einer Web-App hinzuzufügen. Ersetzen Sie <vnet-name> und <subnet-name durch den Namen des virtuellen Netzwerks bzw. des Subnetzes, das die Instanz von Azure Database for MySQL – Flexibler Server verwendet.

az webapp vnet-integration add -g myresourcegroup -n  mywebapp --vnet VNETName --subnet webappsubnetName

Konfigurieren der Umgebungsvariablen für die Datenbankverbindung

Nachdem der Code nun in App Service bereitgestellt ist, müssen Sie als Nächstes eine Verbindung zwischen der App und der Instanz von Azure Database for MySQL – Flexibler Server herstellen. Vom App-Code werden Datenbankinformationen in einer Reihe von Umgebungsvariablen erwartet. Erstellen Sie mithilfe des Befehls az webapp config appsettings set „App-Einstellungen“, um Umgebungsvariablen in App Service festzulegen.

az webapp config appsettings set --settings DBHOST="<mysql-server-name>.mysql.database.azure.com" DBNAME="flexibleserverdb" DBUSER="<username>" DBPASS="<password>"
  • Ersetzen Sie <mysql-server-name>, <username> und <password> für den neu erstellten Befehl für Azure Database for MySQL – Flexibler Server.
  • Ersetzen Sie <username> und <password> durch die vom Befehl für Sie generierten Anmeldeinformationen.
  • Die Ressourcengruppe und der Name der App werden aus den zwischengespeicherten Werten in der Datei .azure/config abgerufen.
  • Der Befehl erstellt Einstellungen namens DBHOST, DBNAME, DBUSER und DBPASS. Wenn Ihr Anwendungscode einen anderen Namen für die Datenbankinformationen verwendet, verwenden Sie diese Namen für die App-Einstellungen, wie im Code erwähnt.

Konfigurieren Sie die Web-App so, dass alle ausgehenden Verbindungen, die vom virtuellen Netzwerk ausgehen, zugelassen werden.

az webapp config set --name mywebapp --resource-group myresourcesourcegroup --generic-configurations '{"vnetRouteAllEnabled": true}'

App Service-Web-App und Instanz von Azure Database for MySQL – Flexibler Server in verschiedenen virtuellen Netzwerken

Wenn Sie die App Service-App und die Instanz von Azure Database for MySQL – Flexibler Server in verschiedenen virtuellen Netzwerken (VNets) erstellt haben, müssen die beiden folgenden Schritte ausgeführt werden, um eine nahtlose Verbindung herzustellen:

  • Verbinden der beiden VNets mit VNet-Peering (lokal oder global). Siehe Herstellen einer Verbindung zwischen virtuellen Netzwerken mittels Peering.
  • Verknüpfen der privaten DNS-Zone der Instanz von Azure Database for MySQL – Flexibler Server mit dem VNet der Web-App mithilfe von Verknüpfungen mit virtuellen Netzwerken: Wenn Sie das Azure-Portal oder die Azure CLI verwenden, um die Instanzen von Azure Database for MySQL – Flexibler Server in einem virtuellen Netzwerk zu erstellen, wird automatisch eine neue private DNS-Zone in Ihrem Abonnement unter Verwendung des angegebenen Servernamens bereitgestellt. Navigieren Sie zur privaten DNS-Zone der Instanz von Azure Database for MySQL – Flexibler Server, und führen Sie die unter Verknüpfen der privaten DNS-Zone mit einem virtuellen Netzwerk beschriebenen Schritte aus, um eine Verbindung mit einem virtuellen Netzwerk einzurichten.

Bereinigen von Ressourcen

Bereinigen Sie alle im Tutorial erstellten Ressourcen mit dem folgenden Befehl. Mit diesem Befehl werden alle Ressourcen in dieser Ressourcengruppe gelöscht.

az group delete -n myresourcegroup

Nächste Schritte