Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
usługa aplikacja systemu Azure Service oferuje wysoce skalowalną, samonastosową usługę hostingu internetowego przy użyciu systemu operacyjnego Linux. W tym samouczku pokazano, jak utworzyć bezpieczną aplikację PHP w usłudze Azure App Service połączoną z bazą danych MySQL (przy użyciu usługi Azure Database for MySQL — serwer elastyczny). Po zakończeniu będziesz mieć aplikację Laravel działającą w usłudze aplikacja systemu Azure Service w systemie Linux.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie domyślnej aplikacji PHP i MySQL na platformie Azure
- Konfigurowanie wpisów tajnych połączenia z usługą MySQL przy użyciu ustawień aplikacji
- Wdrażanie kodu aplikacji przy użyciu funkcji GitHub Actions
- Aktualizowanie i ponowne wdrażanie aplikacji
- Bezpieczne uruchamianie migracji bazy danych
- Strumieniowe przesyłanie dzienników diagnostycznych z platformy Azure
- Zarządzanie aplikacją w witrynie Azure Portal
Wymagania wstępne
- Subskrypcja platformy Azure 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.
Aplikacja przykładowa
Aby wykonać czynności opisane w tym samouczku, sklonuj lub pobierz przykładową aplikację z repozytorium:
git clone https://github.com/Azure-Samples/laravel-tasks.git
Jeśli chcesz uruchomić aplikację lokalnie, wykonaj następujące czynności:
W pliku env skonfiguruj ustawienia bazy danych (takie jak
DB_DATABASE,DB_USERNAMEiDB_PASSWORD) przy użyciu ustawień w lokalnej bazie danych usługi Azure Database for MySQL — serwer elastyczny. Aby uruchomić ten przykład, potrzebujesz lokalnej instancji serwera Azure Database for MySQL Flexible Server.W katalogu głównym repozytorium uruchom aplikację Laravel przy użyciu następujących poleceń:
composer install php artisan migrate php artisan key:generate php artisan serve
1 — Tworzenie zasobów usługi App Service i usługi Azure Database for MySQL — serwer elastyczny
W tym kroku utworzysz zasoby platformy Azure. Kroki użyte w tym samouczku umożliwiają utworzenie domyślnie bezpiecznej konfiguracji usługi App Service i serwera elastycznego usługi Azure Database for MySQL. W procesie tworzenia określisz następujące elementy:
- Nazwa aplikacji internetowej. Jest to nazwa używana jako część nazwy DNS aplikacji internetowej w postaci
https://<app-name>.azurewebsites.net. - Środowisko uruchomieniowe aplikacji. W tym miejscu wybierasz wersję języka PHP, która ma być używana dla aplikacji.
- Grupa zasobów dla aplikacji. Grupa zasobów umożliwia grupowanie (w kontenerze logicznym) wszystkich zasobów platformy Azure potrzebnych dla aplikacji.
Zaloguj się do witryny Azure Portal i wykonaj następujące kroki, aby utworzyć zasoby usługi aplikacja systemu Azure.
| Instrukcje | Zrzut ekranu |
|---|---|
W witrynie Azure Portal:
|
|
Na stronie Tworzenie aplikacji internetowej i bazy danych wypełnij formularz w następujący sposób.
|
|
Wdrożenie trwa kilka minut i tworzy następujące zasoby:
|
|
2 — Konfigurowanie łączności z bazą danych
Kreator tworzenia wygenerował ustawienia aplikacji służące do nawiązywania połączenia z bazą danych, ale nie w formacie, który jest jeszcze używany dla kodu. W tym kroku edytujesz i zaktualizujesz ustawienia aplikacji do formatu wymaganego przez aplikację.
| Instrukcje | Zrzut ekranu | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Na stronie App Service w menu po lewej stronie wybierz pozycję Konfiguracja. |
|
||||||||||
Na karcie Ustawienia aplikacji na stronie Konfiguracja dla każdego z następujących ustawień wybierz pozycję Edytuj, zaktualizuj pole Nazwa nowymi wartościami i wybierz przycisk OK.
|
|
||||||||||
Utwórz nowe MYSQL_ATTR_SSL_CA ustawienie bazy danych:
|
|
||||||||||
Utwórz następujące dodatkowe ustawienia aplikacji, wykonując te same kroki, a następnie wybierz pozycję Zapisz.
|
|
3 — Wdrażanie przykładowego kodu
W tym kroku skonfigurujesz wdrożenie usługi GitHub przy użyciu funkcji GitHub Actions. Jest to tylko jeden z wielu sposobów wdrażania w usłudze App Service, ale także doskonały sposób ciągłej integracji w procesie wdrażania. Domyślnie każde git push repozytorium GitHub uruchamia akcję kompilacji i wdrażania. Wprowadzisz pewne zmiany w bazie kodu za pomocą programu Visual Studio Code bezpośrednio w przeglądarce, a następnie zezwolisz na automatyczne wdrażanie funkcji GitHub Actions.
| Instrukcje | Zrzut ekranu |
|---|---|
W nowym oknie przeglądarki:
|
|
Na stronie GitHub otwórz program Visual Studio Code w przeglądarce, naciskając . . |
|
W programie Visual Studio Code w przeglądarce otwórz plik config/database.php w eksploratorze. W połączeniu mysql sprawdź, czy ustawienia aplikacji utworzone wcześniej dla połączenia MySQL są już używane (DB_HOST, DB_DATABASE, , DB_USERNAMEDB_PASSWORD, ). MYSQL_ATTR_SSL_CA |
|
| Po powrocie do strony usługi App Service w menu po lewej stronie wybierz pozycję Centrum wdrażania. |
|
Na stronie Centrum wdrażania:
.github/workflows katalogu. |
|
Na stronie Centrum wdrażania:
|
|
Aby wprowadzić zmiany w kodzie, przejdź do programu Visual Studio Code w przeglądarce:
Napiwek Akcja usługi GitHub jest definiowana przez plik w repozytorium GitHub w witrynie .github/workflow. Możesz przyspieszyć jego dostosowywanie, dostosowując plik. |
|
4 — Generowanie schematu bazy danych
Kreator tworzenia umieszcza elastyczne wystąpienie serwera Azure Database for MySQL za prywatnym punktem końcowym, dzięki czemu jest dostępne tylko z sieci wirtualnej. Ponieważ aplikacja usługi App Service jest już zintegrowana z siecią wirtualną, najprostszym sposobem uruchamiania migracji baz danych z bazą danych jest bezpośrednio z poziomu kontenera usługi App Service.
| Instrukcje | Zrzut ekranu |
|---|---|
Na stronie App Service:
https://<app-name>.scm.azurewebsites.net/webssh/host strony . |
|
W terminalu SSH:
|
|
5 — Zmienianie katalogu głównego witryny
Zamiast tego cykl życia aplikacji Laravel rozpoczyna się w katalogu /public . Domyślny kontener PHP 8.0 dla usługi App Service używa serwera Nginx, który rozpoczyna się w katalogu głównym aplikacji. Aby zmienić katalog główny witryny, musisz zmienić plik konfiguracji serwera Nginx w kontenerze PHP 8.0 (/etc/nginx/sites-available/default). Dla wygody przykładowe repozytorium zawiera niestandardowy plik konfiguracji o nazwie default. Jak wspomniano wcześniej, nie chcesz zastępować tego pliku przy użyciu powłoki SSH, ponieważ zmiany zostaną utracone po ponownym uruchomieniu aplikacji.
6 — Przechodzenie do aplikacji
7 — Przesyłanie strumieniowe dzienników diagnostycznych
Czyszczenie zasobów
Po zakończeniu możesz usunąć wszystkie zasoby z subskrypcji platformy Azure, usuwając grupę zasobów.
Często zadawane pytania
- Ile kosztuje ta konfiguracja?
- Jak połączyć się z bazą danych Azure Database for MySQL Flexible Server, która jest zabezpieczona za pomocą sieci wirtualnej?
- W jaki sposób programowanie aplikacji lokalnych działa z funkcją GitHub Actions?
- Dlaczego wdrożenie funkcji GitHub Actions jest tak powolne?
Ile kosztuje ta konfiguracja?
Cennik zasobów tworzenia jest następujący:
- Plan usługi App Service jest tworzony w warstwie Premium V2 i można go skalować w górę lub w dół. Zobacz Cennik usługi App Service.
- Instancja Azure Database for MySQL serwera elastycznego jest tworzona w warstwie B1ms i można ją skalować w górę lub w dół. W przypadku bezpłatnego konta platformy Azure warstwa B1ms jest bezpłatna przez 12 miesięcy, do miesięcznych limitów. Zobacz Cennik serwera elastycznego usługi Azure Database for MySQL.
- Sieć wirtualna nie powoduje naliczania opłat, chyba że skonfigurujesz dodatkowe funkcje, takie jak komunikacja równorzędna. Zobacz Cennik usługi Azure Virtual Network.
- Prywatna strefa DNS wiąże się z niewielką opłatą. Zobacz Cennik usługi Azure DNS.
Jak nawiązać połączenie z bazą danych Azure Database for MySQL Flexible Server, który jest zabezpieczony za pomocą sieci wirtualnej?
Aby nawiązać połączenie z bazą danych usługi Azure Database for MySQL Flexible Server, możesz użyć kilku metod opartych na narzędziach i środowiskach, którymi dysponujesz.
-
Dostęp do narzędzia wiersza polecenia:
-
mysqlUżyj polecenia z poziomu terminalu SSH aplikacji, aby uzyskać dostęp podstawowy.
-
-
Narzędzia klasyczne (na przykład MySQL Workbench):
- Korzystanie z tunelowania SSH za pomocą interfejsu wiersza polecenia platformy Azure:
-
Korzystanie z sieci VPN typu lokacja-lokacja lub maszyny wirtualnej platformy Azure:
- Maszyna musi być częścią sieci wirtualnej.
- Rozważ użycie:
- Maszyna wirtualna platformy Azure połączona z jedną z podsieci.
- Maszyna w sieci lokalnej, która ma połączenie sieci VPN typu lokacja-lokacja z siecią wirtualną platformy Azure.
-
Integracja usługi Azure Cloud Shell:
- Integrowanie usługi Azure Cloud Shell z siecią wirtualną w celu uzyskania bezpośredniego dostępu.
W jaki sposób programowanie aplikacji lokalnych działa z funkcją GitHub Actions?
Pobierz automatycznie wygenerowany plik przepływu pracy z usługi App Service, aby na przykład git push uruchomić nową kompilację i uruchomienie wdrożenia. Z lokalnego klonu repozytorium GitHub należy wprowadzić żądane aktualizacje wypychane do usługi GitHub. Na przykład:
git add .
git commit -m "<some-message>"
git push origin main
Dlaczego wdrożenie funkcji GitHub Actions jest tak powolne?
Automatycznie wygenerowany plik przepływu pracy z usługi App Service definiuje polecenie build-then-deploy, dwuzadniowe uruchomienie. Ponieważ każde zadanie jest uruchamiane we własnym czystym środowisku, plik przepływu pracy zapewnia, że deploy zadanie ma dostęp do plików z build zadania:
- Na końcu
buildzadania przekaż pliki jako artefakty. - Na początku
deployzadania pobierz artefakty.
Większość czasu poświęcanego przez proces dwóch zadań jest poświęcana na przekazywanie i pobieranie artefaktów. Jeśli chcesz, możesz uprościć plik przepływu pracy, łącząc dwa zadania w jeden, co eliminuje konieczność przekazywania i pobierania kroków.
Podsumowanie
W tym samouczku zawarto informacje na temat wykonywania następujących czynności:
- Tworzenie aplikacji PHP z domyślnie zabezpieczoną bazą danych Azure Database for MySQL Flexible Server w Azure
- Konfigurowanie tajnych danych połączenia z usługą Azure Database for MySQL Flexible Server przy użyciu ustawień aplikacji
- Wdrażanie kodu aplikacji przy użyciu funkcji GitHub Actions
- Aktualizowanie i ponowne wdrażanie aplikacji
- Bezpieczne uruchamianie migracji bazy danych
- Strumieniowe przesyłanie dzienników diagnostycznych z platformy Azure
- Zarządzanie aplikacją w witrynie Azure Portal