Samouczek: łączenie aplikacji internetowej usługi App Services z usługą Azure Database for MySQL — serwer elastyczny w sieci wirtualnej
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
- Nawiązywanie połączenia z usługą Azure Database for MySQL — elastyczny serwer z poziomu aplikacji internetowej
- Łą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 Używanie bezpłatnego konta platformy Azure do bezpłatnego wypróbowania usługi Azure Database for MySQL — serwer elastyczny bezpłatnie.
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 serwera elastycznego 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 bazą danych serwera elastycznego 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, która jest używana 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 wystąpieniem serwera elastycznego 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łącz dwie sieci wirtualne przy użyciu komunikacji równorzędnej sieci wirtualnych (lokalnej lub globalnej). Zobacz Connect virtual networks with virtual network peering guide (Łączenie sieci wirtualnych za pomocą komunikacji równorzędnej sieci wirtualnych).
- Połącz strefę Prywatna strefa DNS wystąpienia serwera elastycznego 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