Samouczek: Połączenie aplikacji internetowej usługi App Services do usługi Azure Database for MySQL — serwer elastyczny w sieci wirtualnej

DOTYCZY: Azure Database for MySQL — serwer elastyczny

W tym samouczku pokazano, jak utworzyć i połączyć aplikację internetową usługi aplikacja systemu Azure z wystąpieniem serwera elastycznego usługi Azure Database for MySQL izolowanym wewnątrz tych samych lub różnych sieci wirtualnych.

Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Tworzenie wystąpienia serwera elastycznego usługi Azure Database for MySQL w sieci wirtualnej
  • Tworzenie podsieci do delegowania do usługi App Service i tworzenie aplikacji internetowej
  • Dodawanie aplikacji internetowej do sieci wirtualnej
  • Połączenie do serwera elastycznego usługi Azure Database for MySQL z poziomu aplikacji internetowej
  • Połączenie aplikacji internetowej i wystąpienia serwera elastycznego usługi Azure Database for MySQL izolowane w różnych sieciach wirtualnych

Wymagania wstępne

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure. Obecnie za pomocą bezpłatnego konta platformy Azure możesz wypróbować usługę Azure Database for MySQL — serwer elastyczny bezpłatnie przez 12 miesięcy. Aby uzyskać więcej informacji, zobacz Wypróbuj bezpłatnie usługę Azure Database for MySQL — serwer elastyczny.

Ten artykuł wymaga lokalnego uruchomienia interfejsu wiersza polecenia platformy Azure w wersji 2.0 lub nowszej. Aby sprawdzić zainstalowaną wersję, uruchom polecenie az --version. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Musisz zalogować się do konta przy użyciu polecenia az login . Zanotuj właściwość id z danych wyjściowych polecenia dla odpowiedniej nazwy subskrypcji.

az login

Jeśli masz wiele subskrypcji, wybierz odpowiednią subskrypcję, w ramach której powinny być naliczane opłaty za ten zasób. Wybierz określony identyfikator subskrypcji na Twoim koncie za pomocą polecenia az account set. Zastąp właściwość identyfikatora subskrypcji z elementu az login output dla subskrypcji do symbolu zastępczego identyfikatora subskrypcji.

az account set --subscription <subscription ID>

Tworzenie wystąpienia elastycznego serwera usługi Azure Database for MySQL

Utwórz prywatne wystąpienie serwera elastycznego usługi Azure Database for MySQL w sieci wirtualnej przy użyciu następującego polecenia:

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

Skopiuj parametry połączenia i nazwę nowo utworzonej sieci wirtualnej. To polecenie wykonuje następujące akcje, które mogą potrwać kilka minut:

  • Utwórz grupę zasobów, jeśli jeszcze nie istnieje.
  • Generuje nazwę serwera, jeśli nie zostanie podana.
  • Utwórz nową sieć VNETName wirtualną dla nowego wystąpienia serwera elastycznego usługi Azure Database for MySQL i podsieci w tej sieci wirtualnej dla wystąpienia serwera elastycznego usługi Azure Database for MySQL. Upewnij się, że nazwa jest unikatowa.
  • Tworzy nazwę użytkownika administratora , hasło dla serwera, jeśli nie zostanie podane.
  • Tworzy pustą bazę danych o nazwie flexibleserverdb.

Uwaga

Zanotuj hasło wygenerowane dla Ciebie, jeśli nie zostanie podane. Jeśli zapomnisz hasło, musisz zresetować hasło przy użyciu az mysql flexible-server update polecenia .

Tworzenie podsieci dla punktu końcowego usługi App Service

Teraz potrzebna jest podsieć delegowana do punktu końcowego aplikacji internetowej usługi App Service. Uruchom następujące polecenie, aby utworzyć nową podsieć w tej samej sieci wirtualnej co wystąpienie serwera elastycznego usługi Azure Database for MySQL.

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

Zanotuj nazwę sieci wirtualnej i nazwę podsieci po tym poleceniu, ponieważ wymagałoby dodania reguły integracji sieci wirtualnej dla aplikacji internetowej po jej utworzeniu.

Tworzenie aplikacji internetowej

W tej sekcji utworzysz hosta aplikacji w aplikacji usługi App Service i połączysz tę aplikację z elastyczną bazą danych serwera usługi Azure Database for MySQL. Upewnij się, że jesteś w katalogu głównym repozytorium kodu aplikacji w terminalu.

Utwórz aplikację usługi App Service (proces hosta) za pomocą polecenia az webapp up.

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

Uwaga

  • W przypadku argumentu --location użyj tej samej lokalizacji, co w przypadku bazy danych w poprzedniej sekcji.
  • Zastąp <ciąg app-name> unikatową nazwą na całej platformie Azure (punkt końcowy serwera to https://\<app-name>.azurewebsites.net). Dozwolone znaki dla <nazwy> aplikacji to A-Z, 0-9 i -. Dobrym wzorcem jest użycie kombinacji nazwy firmy i identyfikatora aplikacji.
  • Warstwa Podstawowa usługi App Service nie obsługuje integracji z siecią wirtualną. Użyj warstwy Standardowa lub Premium.

To polecenie wykonuje następujące akcje, które mogą potrwać kilka minut:

  • Utwórz grupę zasobów, jeśli jeszcze nie istnieje. (W tym poleceniu użyjesz tej samej grupy zasobów, w której utworzono wcześniej bazę danych).
  • Utwórz plan testappserviceplan usługi App Service w warstwie cenowej Podstawowa (B1), jeśli nie istnieje. --plan i --sku są opcjonalne.
  • Utwórz aplikację usługi App Service, jeśli nie istnieje.
  • Włącz domyślne rejestrowanie dla aplikacji, jeśli nie jest jeszcze włączone.
  • Przekaż repozytorium przy użyciu wdrożenia ZIP z włączoną automatyzacją kompilacji.

Dodawanie aplikacji internetowej do sieci wirtualnej

Użyj polecenia az webapp vnet-integration , aby dodać regionalną integrację sieci wirtualnej do aplikacji internetowej. Zastąp <ciąg vnet-name> i <subnet-name nazwą sieci wirtualnej i podsieci używanej przez wystąpienie serwera elastycznego usługi Azure Database for MySQL.

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

Konfigurowanie zmiennych środowiskowych w celu nawiązania połączenia z bazą danych

Po wdrożeniu kodu w usłudze App Service następnym krokiem jest połączenie aplikacji z elastycznym wystąpieniem serwera usługi Azure Database for MySQL na platformie Azure. Kod aplikacji oczekuje znalezienia informacji o bazie danych w wielu zmiennych środowiskowych. Aby ustawić zmienne środowiskowe w usłudze App Service, należy utworzyć "ustawienia aplikacji" za az webapp config appsettings set pomocą polecenia .

az webapp config appsettings set --settings DBHOST="<mysql-server-name>.mysql.database.azure.com" DBNAME="flexibleserverdb" DBUSER="<username>" DBPASS="<password>"
  • Zastąp ciąg <mysql-server-name>, <username> i< password> dla nowo utworzonego polecenia serwera elastycznego usługi Azure Database for MySQL.
  • Zastąp <nazwę użytkownika> i <hasło> poświadczeniami wygenerowanymi przez polecenie.
  • Grupa zasobów i nazwa aplikacji są pobierane z buforowanych wartości w pliku .azure/config.
  • Polecenie tworzy ustawienia o nazwach DBHOST, DBNAME, DBUSER i DBPASS. Jeśli kod aplikacji używa innej nazwy informacji o bazie danych, użyj tych nazw dla ustawień aplikacji, jak wspomniano w kodzie.

Skonfiguruj aplikację internetową, aby zezwalać na wszystkie połączenia wychodzące z sieci wirtualnej.

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

Aplikacja internetowa usługi App Service i wystąpienie serwera elastycznego usługi Azure Database for MySQL w różnych sieciach wirtualnych

Jeśli utworzono aplikację usługi App Service i wystąpienie serwera elastycznego usługi Azure Database for MySQL w różnych sieciach wirtualnych, należy wykonać następujące dwa kroki, aby nawiązać bezproblemowe połączenie:

  • Połączenie dwie sieci wirtualne przy użyciu komunikacji równorzędnej sieci wirtualnych (lokalnej lub globalnej). Zobacz przewodnik dotyczący Połączenie sieci wirtualnych za pomocą komunikacji równorzędnej sieci wirtualnych.
  • Połącz strefę Prywatna strefa DNS wystąpienia elastycznego serwera usługi Azure Database for MySQL z siecią wirtualną aplikacji internetowej przy użyciu linków sieci wirtualnej. Jeśli używasz witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure do tworzenia wystąpień serwera elastycznego usługi Azure Database for MySQL w sieci wirtualnej, nowa prywatna strefa DNS zostanie automatycznie aprowizowana w ramach subskrypcji przy użyciu podanej nazwy serwera. Przejdź do prywatnej strefy DNS wystąpienia serwera elastycznego usługi Azure Database for MySQL i postępuj zgodnie z przewodnikiem Jak połączyć prywatną strefę DNS z siecią wirtualną, aby skonfigurować link do sieci wirtualnej.

Czyszczenie zasobów

Wyczyść wszystkie zasoby utworzone w samouczku przy użyciu następującego polecenia. To polecenie usuwa wszystkie zasoby w tej grupie zasobów.

az group delete -n myresourcegroup

Następne kroki