Oktatóanyag: PHP (Laravel) és Azure Database for MySQL – Rugalmas kiszolgálóalkalmazás létrehozása Azure-alkalmazás Szolgáltatáson
A következőkre vonatkozik: Azure Database for MySQL – rugalmas kiszolgáló
Azure-alkalmazás Szolgáltatás egy nagymértékben skálázható, önjavító web hosting szolgáltatást biztosít a Linux operációs rendszer használatával. Ez az oktatóanyag bemutatja, hogyan hozhat létre biztonságos PHP-alkalmazást Azure-alkalmazás Szolgáltatásban, amely egy Rugalmas Azure Database for MySQL-kiszolgálóhoz csatlakozik. Ha végzett, egy Laravel-alkalmazás fog futni a linuxos Azure-alkalmazás szolgáltatásban.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Biztonságos PHP- és MySQL-alkalmazás létrehozása az Azure-ban
- Kapcsolati titkos kulcsok konfigurálása a MySQL-hez alkalmazásbeállítások használatával
- Alkalmazáskód üzembe helyezése a GitHub Actions használatával
- Az alkalmazás frissítése és ismételt üzembe helyezése
- Adatbázis-migrálások biztonságos futtatása
- Diagnosztikai naplók streamelése az Azure-ból
- Az alkalmazás kezelése az Azure Portalon
Előfeltételek
- Azure-előfizetés Ha nem rendelkezik Azure-előfizetéssel, a kezdés előtt hozzon létre egy ingyenes Azure-fiókot . Jelenleg ingyenes Azure-fiókkal 12 hónapig ingyenesen kipróbálhatja a Rugalmas Azure Database for MySQL-kiszolgálót. További információ: Azure Database for MySQL – Rugalmas kiszolgáló ingyenes kipróbálás.
Mintaalkalmazás
Az oktatóanyag követéséhez klónozza vagy töltse le a mintaalkalmazást az adattárból:
git clone https://github.com/Azure-Samples/laravel-tasks.git
Ha helyileg szeretné futtatni az alkalmazást, tegye a következőket:
Az .env alkalmazásban konfigurálja az adatbázis beállításait (például
DB_DATABASE
,DB_USERNAME
ésDB_PASSWORD
) a helyi Rugalmas Azure Database for MySQL-kiszolgálóadatbázis beállításaival. A minta futtatásához egy rugalmas Azure Database for MySQL-kiszolgálópéldányra van szükség.Az adattár gyökeréből indítsa el a Laravelt a következő parancsokkal:
composer install php artisan migrate php artisan key:generate php artisan serve
1 – Rugalmas App Service- és Azure Database for MySQL-kiszolgálói erőforrások létrehozása
Ebben a lépésben hozza létre az Azure-erőforrásokat. Az oktatóanyag lépései alapértelmezés szerint biztonságos, rugalmas App Service- és Azure Database for MySQL-kiszolgálókonfigurációt hoznak létre. A létrehozási folyamathoz a következőket kell megadnia:
- A webalkalmazás neve . Ez a webalkalmazás
https://<app-name>.azurewebsites.net
DNS-nevének részeként használt név. - Az alkalmazás futtatókörnyezete . Itt választhatja ki az alkalmazáshoz használni kívánt PHP-verziót.
- Az alkalmazás erőforráscsoportja . Az erőforráscsoportokkal (logikai tárolóban) csoportosíthatja az alkalmazáshoz szükséges Összes Azure-erőforrást.
Jelentkezzen be az Azure Portalra, és kövesse az alábbi lépéseket a Azure-alkalmazás szolgáltatás erőforrásainak létrehozásához.
Utasítások | Képernyőkép |
---|---|
Az Azure Portalon:
|
|
A Webalkalmazás létrehozása + Adatbázis lapon töltse ki az űrlapot az alábbiak szerint.
|
|
Az üzembe helyezés néhány percet vesz igénybe, és a következő erőforrásokat hozza létre:
|
2 – Adatbázis-kapcsolat beállítása
A létrehozási varázsló alkalmazásbeállításokat hozott létre az adatbázishoz való csatlakozáshoz, de a kódhoz még nem használható formátumban. Ebben a lépésben az alkalmazásbeállításokat az alkalmazás igényeinek megfelelő formátumra szerkesztheti és frissítheti.
Utasítások | Képernyőkép | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Az App Service lap bal oldali menüjében válassza a Konfiguráció lehetőséget. | |||||||||||
A Konfiguráció lap Alkalmazásbeállítások lapján az alábbi beállítások mindegyikéhez kattintson a Szerkesztés gombra, frissítse a Név mezőt új értékekkel, és kattintson az OK gombra.
|
|||||||||||
Hozzon létre egy új MYSQL_ATTR_SSL_CA adatbázis-beállítást:
|
|||||||||||
Az alábbi további alkalmazásbeállításokat ugyanezekkel a lépésekkel hozhatja létre, majd kattintson a Mentés gombra.
|
3 – Mintakód üzembe helyezése
Ebben a lépésben konfigurálja a GitHub üzembe helyezését a GitHub Actions használatával. Ez csak egy az App Service-ben történő üzembe helyezés számos módja közül, de nagyszerű módja annak is, hogy folyamatos integrációt nyújtsunk az üzembe helyezési folyamatba. Alapértelmezés szerint a GitHub-adattár minden git push
eleme elindítja a buildelési és üzembe helyezési műveletet. A kódbázist a Visual Studio Code-tal közvetlenül a böngészőben fogja módosítani, majd lehetővé teszi a GitHub Actions automatikus üzembe helyezését.
Utasítások | Képernyőkép |
---|---|
Új böngészőablakban:
|
|
A GitHub lapon nyissa meg a Visual Studio Code-ot a böngészőben a . billentyű lenyomásával. |
|
A Visual Studio Code böngészőben nyissa meg a config/database.php böngészőben. A kapcsolaton mysql belül ellenőrizze, hogy a MySQL-kapcsolathoz korábban létrehozott alkalmazásbeállítások már használatban vannak (DB_HOST , DB_DATABASE , DB_USERNAME , , DB_PASSWORD MYSQL_ATTR_SSL_CA ). |
|
Az App Service lap bal oldali menüjében válassza az Üzembe helyezési központ lehetőséget. | |
Az Üzembe helyezési központ lapon:
.github/workflows címtárban. |
|
Az Üzembe helyezési központ lapon:
|
|
A kód módosításához nyissa meg a Visual Studio Code-ot a böngészőben:
Tipp. A GitHub-műveletet a GitHub-adattárban, a .github/munkafolyamatban található fájl határozza meg. A fájl testreszabásával felgyorsíthatja a folyamatot. |
4 – Adatbázisséma létrehozása
A létrehozási varázsló az Azure Database for MySQL rugalmas kiszolgálópéldányát egy privát végpont mögé helyezi, így csak a virtuális hálózatról érhető el. Mivel az App Service-alkalmazás már integrálva van a virtuális hálózattal, az adatbázis migrálásának legegyszerűbb módja közvetlenül az App Service-tárolóból történik.
Utasítások | Képernyőkép |
---|---|
Az App Service oldalán:
https://<app-name>.scm.azurewebsites.net/webssh/host . |
|
Az SSH-terminálban:
|
5 – Webhely gyökerének módosítása
A Laravel-alkalmazás életciklusa a /public könyvtárban kezdődik. Az App Service alapértelmezett PHP 8.0-tárolója az Nginxet használja, amely az alkalmazás gyökérkönyvtárában kezdődik. A webhely gyökerének módosításához módosítania kell az Nginx konfigurációs fájlt a PHP 8.0 tárolóban (/etc/nginx/sites-available/default). Az Ön kényelme érdekében a mintaadattár egy alapértelmezett nevű egyéni konfigurációs fájlt tartalmaz. Ahogy korábban már említettük, nem szeretné lecserélni ezt a fájlt az SSH-felülettel, mert a módosítások elvesznek az alkalmazás újraindítása után.
6 – Tallózás az alkalmazáshoz
7 – Diagnosztikai naplók streamelése
Az erőforrások eltávolítása
Ha végzett, törölheti az összes erőforrást az Azure-előfizetéséből az erőforráscsoport törlésével.
Gyakori kérdések
- Mennyibe kerül ez a beállítás?
- Hogyan csatlakozni egy rugalmas Azure Database for MySQL-kiszolgálóadatbázishoz, amely egy virtuális hálózat mögött védett?
- Hogyan működik a helyi alkalmazásfejlesztés a GitHub Actions használatával?
- Miért olyan lassú a GitHub Actions üzembe helyezése?
Mennyibe kerül ez a beállítás?
A létrehozási erőforrások díjszabása a következő:
- Az App Service-csomag prémium V2-szinten jön létre, és fel- vagy leskálázható. Lásd az App Service díjszabását.
- A rugalmas Azure Database for MySQL-kiszolgálópéldány B1ms-szinten jön létre, és fel- vagy leskálázható. Ingyenes Azure-fiók esetén a B1ms szint 12 hónapig ingyenes, a havi korlátokig. Tekintse meg az Azure Database for MySQL rugalmas kiszolgálói díjszabását.
- A virtuális hálózat csak akkor számít fel díjat, ha nem konfigurál további funkciókat, például társviszony-létesítést. Tekintse meg az Azure Virtual Network díjszabását.
- A privát DNS-zóna kis díjat számít fel. Tekintse meg az Azure DNS díjszabását.
Hogyan csatlakozni egy rugalmas Azure Database for MySQL-kiszolgálóadatbázishoz, amely egy virtuális hálózat mögött védett?
Rugalmas Azure Database for MySQL-kiszolgálóadatbázishoz való csatlakozáshoz számos módszert használhat a rendelkezésére álló eszközök és környezetek alapján:
- Parancssori eszköz hozzáférése:
mysql
Az alapszintű hozzáféréshez használja az alkalmazás SSH-termináljának parancsát.
- Asztali eszközök (például MySQL Workbench):
- SSH-bújtatás használata az Azure CLI-vel:
- Hozzon létre egy SSH-munkamenetet a webalkalmazásban az Azure CLI használatával.
- Az SSH-munkamenet használatával bújtathatja a forgalmat a MySQL-be.
- Helyek közötti VPN vagy Azure-beli virtuális gép használata:
- A gépnek a virtuális hálózat részét kell képeznie.
- Fontolja meg a következő használatát:
- Az egyik alhálózathoz csatolt Azure-beli virtuális gép.
- Egy helyszíni hálózat azon gépe, amely helyek közötti VPN-kapcsolattal rendelkezik az Azure-beli virtuális hálózathoz.
- SSH-bújtatás használata az Azure CLI-vel:
- Azure Cloud Shell-integráció:
- Integrálja az Azure Cloud Shellt a virtuális hálózattal a közvetlen hozzáférés érdekében.
Hogyan működik a helyi alkalmazásfejlesztés a GitHub Actions használatával?
Vegyük példaként az App Service automatikusan létrehozott munkafolyamat-fájlját, és mindegyik git push
elindít egy új buildet és üzembe helyezést. A GitHub-adattár helyi klónjából a kívánt frissítéseket leküldheti a GitHubra. Példa:
git add .
git commit -m "<some-message>"
git push origin main
Miért olyan lassú a GitHub Actions üzembe helyezése?
Az App Service automatikusan létrehozott munkafolyamat-fájlja a build-then-deploy, kétfeladatos futtatás definícióját határozza meg. Mivel minden feladat a saját tiszta környezetében fut, a munkafolyamat-fájl biztosítja, hogy a deploy
feladat hozzáférhessen a build
feladat fájljaihoz:
- A feladat végén töltse fel a
build
fájlokat összetevőként. - A feladat elején
deploy
töltse le az összetevőket.
A kétfeladatos folyamat legtöbbször az összetevők feltöltésével és letöltésével foglalkozik. Ha szeretné, egyszerűsítheti a munkafolyamat-fájlt a két feladat egybe egyesítésével, ami szükségtelenné teszi a feltöltési és letöltési lépéseket.
Összegzés
Ez az oktatóanyag bemutatta, hogyan végezheti el az alábbi műveleteket:
- Biztonságos alapértelmezett PHP- és Azure Database for MySQL-kiszolgálóalkalmazás létrehozása az Azure-ban
- Kapcsolati titkos kulcsok konfigurálása rugalmas Azure Database for MySQL-kiszolgálóhoz alkalmazásbeállítások használatával
- Alkalmazáskód üzembe helyezése a GitHub Actions használatával
- Az alkalmazás frissítése és ismételt üzembe helyezése
- Adatbázis-migrálások biztonságos futtatása
- Diagnosztikai naplók streamelése az Azure-ból
- Az alkalmazás kezelése az Azure Portalon