Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben az oktatóanyagban egy adatvezérelt Python-webalkalmazást (Flask) fog üzembe helyezni az Azure App Service-ben az Azure Database for PostgreSQL relációs adatbázis-szolgáltatással. Az Azure App Service támogatja a Python-t Linux szerver környezetben. Ha szeretné, tekintse meg inkább a Django-oktatóanyagot vagy a FastAPI-oktatóanyagot .
Ebben az oktatóanyagban a következőket sajátíthatja el:
- Hozzon létre egy biztonságos alapértelmezett App Service-, PostgreSQL- és Redis Cache-architektúrát.
- A kapcsolati titkos kulcsok biztonságossá tételéhez használjon felügyelt identitást és Key Vault-hivatkozásokat.
- Beteszel egy minta Python alkalmazást az App Service-be egy GitHub tárházból.
- Férjen hozzá az alkalmazásszolgáltatás kapcsolati karakterláncaihoz és alkalmazásbeállításaihoz az alkalmazás kódjában.
- Frissítse és telepítse újra az alkalmazás kódját.
- Állítsa elő az adatbázis sémaét az adatbázis migrációk futtatásával.
- Diagnosztikai naplók streamelése az Azure-ból.
- Az alkalmazást kezelje az Azure portálon.
- Hozza létre ugyanazt az architektúrát, és telepítse az Azure Developer CLI segítségével.
- Optimalizáld a fejlesztési munkafolyamatodat a GitHub Codespaces és a GitHub Copilot segítségével.
Előfeltételek
- Az Azure fiók aktív előfizetéssel. Ha nincs Azure-fiókja, ingyenesen létrehozhat egyet.
- GitHub-fiók. ingyenesen is beszerezhet egyet.
- Python ismerete Flask fejlesztéssel.
- (Opcionális) A GitHub Copilot kipróbálásához szükség van egy GitHub Copilot fiókra. Egy 30 napos ingyenes próbaidőszak elérhető.
- Az Azure fiók aktív előfizetéssel. Ha nincs Azure-fiókja, ingyenesen létrehozhat egyet.
- GitHub-fiók. ingyenesen is beszerezhet egyet.
- Azure Developer CLI telepítve. A lépéseket követheti a Azure Cloud Shell segítségével, mert az már tartalmazza az Azure Developer CLI-t.
- Python ismerete Flask fejlesztéssel.
- (Opcionális) A GitHub Copilot kipróbálásához szükség van egy GitHub Copilot fiókra. Egy 30 napos ingyenes próbaidőszak elérhető.
Ugorj a végére
Ha csak azt szeretnéd látni, hogy az oktatóanyag egy mintaalkalmazása miként működik Azure-ban, futtasd a következő parancsokat az Azure Cloud Shell környezetben, és kövesd az utasításokat.
mkdir msdocs-flask-postgresql-sample-app
cd msdocs-flask-postgresql-sample-app
azd init --template msdocs-flask-postgresql-sample-app
azd up
1. Futtassa a mintát
Először hozz létre egy minta adatalapú alkalmazást kiindulási pontként. Az Ön kényelme érdekében a példatár tartalmazza a fejlesztői konténer konfigurációt. A fejlesztői konténer mindent tartalmaz, amire szükség van egy alkalmazás fejlesztéséhez, beleértve az adatbázist, a gyorsítótárat és minden környezeti változót, amelyre a mintaalkalmazásnak szüksége van. A fejlesztői tároló egy GitHub-kódtérben futtatható, ami azt jelenti, hogy a mintát bármely számítógépen futtathatja webböngészővel.
Megjegyzés:
Ha saját alkalmazásoddal követed ezt az útmutatót, nézd meg a requirements.txt fájlleírást a README.md-ben, hogy láthasd, milyen csomagokra lesz szükséged.
1. lépés: Új böngészőablakban:
- Jelentkezzen be GitHub-fiókjába.
- Navigáljon ide https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app/fork.
- Törölje a jelölést a Csak a fő ágat másolja lehetőségről. Akarod az összes ágat.
- Válassza a Fork létrehozása lehetőséget.
2. lépés: A GitHub-forkban:
- Select main>starter-no-infra a kezdő ág számára. Ez az ág csak a példaprojektet tartalmazza, és nincsenek benne Azure-hoz kapcsolódó fájlok vagy konfigurációk.
- Válassza a Kód>kódteret létrehozása a starter-no-infra területen.
A kódtér néhány percet vesz igénybe a beállítás során, és a végén lefuttatja a
pip install -r requirements.txt
a repozitóriumod számára.
3. lépés: A kódtér termináljában:
- Hajtsa végre az adatbázis-migrációkat
flask db upgrade
segítségével. - Futtassa az alkalmazást
flask run
-vel. - Amikor megjelenik az értesítés
Your application running on port 5000 is available.
, válassza a Megnyitás böngészőben lehetőséget. Az alkalmazás mintapéldáját meg kellene látnia egy új böngészőfülön. Az alkalmazás leállításához írja beCtrl
+C
.
Tipp
Megkérdezheted GitHub Copilot ezt a tárházról. Például:
- @workspace Mit csinál ez a projekt?
- @workspace Mit csinál a .devcontainer mappa?
Problémái vannak? Nézze meg a Hibaelhárítás szakaszt.
2. App szolgáltatás és PostgreSQL létrehozása
Ebben a lépésben létrehozod az Azure erőforrásokat. A bemutatóban használt lépések egy alapértelmezés szerint biztonságos erőforráskészletet hoznak létre, amely magában foglalja az App Service-t és az Azure Database for PostgreSQL-t. A létrehozási folyamathoz a következőket kell megadnia:
- A webes alkalmazás Name-ja. Az alkalmazás DNS-nevének részeként használják.
- Az a régió, ahol az alkalmazás fizikailag fut a világban. Ez az alkalmazás DNS-nevének a részeként is használatos.
- A(z) Runtime stack az alkalmazáshoz. Itt választhatja ki az alkalmazáshoz használni kívánt Python-verziót.
- Az alkalmazás tárhelyterve. A díjszabási szint az az árkategória, amely magában foglalja az alkalmazásához szükséges funkciókészletet és a méretezési kapacitást.
- A Resource Group az alkalmazáshoz. Egy erőforráscsoport lehetővé teszi, hogy egy logikai tárolóban csoportosítsa a programhoz szükséges összes Azure-erőforrást.
Lépjen be az Azure portálra, és kövesse ezeket a lépéseket az Azure App Service-erőforrások létrehozásához.
1. lépés: Az Azure portálon:
- Írja be a "web app database" kifejezést az Azure portál tetején található keresősávba.
- Válaszd ki a Piactér cím alatt található Web App + Database címkéjű elemet. A készítés varázslójához közvetlenül is navigálhat.
2. Lépés: A Webalkalmazás + Adatbázis Létrehozása oldalon töltse ki az űrlapot az alábbiak szerint.
- Erőforráscsoport: Válassza a Új létrehozása lehetőséget, és használja a msdocs-flask-postgres-tutorial nevet.
- Régió: Bármely Azure régió az Ön közelében.
- Név: msdocs-python-postgres-XYZ.
- Futtatókörnyezeti verem: Python 3.12.
- Adatbázis: Alapértelmezés szerint a PostgreSQL - Flexible Server van kiválasztva adatbázis motor esetén. A szerver- és adatbázisnév alapértelmezés szerint megfelelő értékekre van beállítva.
- Azure Cache for Redis hozzáadása?: Nem.
- Üzemeltetési terv: Alapszintű. Amikor készen áll, átválthat egy termelési / gyártási árazási szintre.
- Válassza az Áttekintés + létrehozás lehetőséget.
- A validálás befejezése után válassza a Létrehozás lehetőséget.
3. lépés: A telepítés néhány percet vesz igénybe a befejezéshez. A telepítés befejeződése után válassza a Go to resource gombot. Közvetlenül az App Service alkalmazásba kerül, de a következő erőforrások létrejönnek:
- Erőforrás csoport: Az elkészített erőforrások tárolója.
- App Service terv: Meghatározza az App Service számítási erőforrásait. A Basic szintű Linux terv létrejött.
- App Service: Képviseli az alkalmazását és az App Service tervben fut.
- Virtual network: Az App Service alkalmazással integrált, és izolálja a háttérhálózati forgalmat.
- Hálózati interfészek: Képviselnek privát IP-címeket, egyet-egyet a privát végpontok számára.
- Azure Database for PostgreSQL rugalmas szerver: Csak a virtuális hálózaton belül érhető el. Az adatbázis és a felhasználó létrehozásra került a szerveren.
- Privát DNS zónák: Lehetővé teszi a kulcstároló és az adatbázis-szerver DNS feloldását a virtuális hálózatban.
3. Biztonságos kapcsolati titkok
A létrehozási varázsló már létrehozta a kapcsolati változókat, mint alkalmazás beállítások. Azonban a biztonsági legjobb gyakorlat az, hogy teljesen távol tartsuk a titkokat az App Service-től. A titkokat áthelyezi egy kulcstárházba, és az alkalmazás beállításait a Kulcstárház hivatkozásokra módosítja a Szolgáltatáskapcsolók segítségével.
1. lépés: A meglévő kapcsolati karakterlánc előhívása
- Az alkalmazásszolgáltatás oldal bal oldali menüjében válassza a Beállítások > Környezeti változók lehetőséget.
- Válaszd ki AZURE_POSTGRESQL_CONNECTIONSTRING.
- A Alkalmazásbeállítás hozzáadása/szerkesztése menüpontban, a Érték mezőben keresse meg a szöveg végén a password= részt.
- Másolja a jelszókarakterláncot a Password= után későbbi felhasználásra. Ez az alkalmazásbeállítás lehetővé teszi, hogy csatlakozzon a privát végpont mögött biztosított Postgres adatbázishoz. Azonban a titok közvetlenül az App Service alkalmazásban van elmentve, ami nem a legjobb. Meg fogod változtatni ezt.
2. lépés: Hozzon létre egy kulcstartót a titkok biztonságos kezeléséhez
- A felső keresőmezőbe írja be a "key vault" kifejezést, majd válassza ki a Marketplace>Key Vault lehetőséget.
- Az Erőforráscsoportban válassza az msdocs-python-postgres-tutorial lehetőséget.
- A kulcstár neve mezőbe írjon be egy nevet, amely csak betűket és számokat tartalmaz.
- A Régió mezőben állítsa be ugyanarra a helyre, mint az erőforráscsoport.
3. lépés: Védje meg a kulcstárolót egy privát végponttal
- Válassza a Hálózatkezelés lapot.
- Törölje a jelölést Nyilvános hozzáférés engedélyezése.
- Válassza a Privát végpont létrehozása lehetőséget.
- Az Erőforráscsoportban válassza az msdocs-python-postgres-tutorial lehetőséget.
- A párbeszédablakban, a Location résznél válassza ki ugyanazt a helyszínt, mint az App Service alkalmazása.
- A Name mezőbe írja be a következő szöveget: msdocs-python-postgres-XYZVaultEndpoint.
- A virtuális hálózatban válassza az msdocs-python-postgres-XYZVnet lehetőséget.
- Az alhálózatbanmsdocs-python-postgres-XYZSubnet.
- Kattintson az OK gombra.
- Válassza a(z) Felülvizsgálat + létrehozás, majd válassza a Létrehozás lehetőséget. Várja meg, amíg a kulcstár telepítése befejeződik. Meg kell jelennie a „A telepítésed befejeződött.”
4. lépés: A PostgreSQL-összekötő konfigurálása
- A felső keresősávba írja be a msdocs-python-postgres kifejezést, majd válassza ki az msdocs-python-postgres-XYZ nevű App Service erőforrást.
- Az App Service oldalon, a bal menüben válassza a Beállítások > Szolgáltatás Csatlakozó opciót. Már van egy összekötő, amelyet az alkalmazáslétrehozó varázsló hozott létre Önnek.
- Jelölje be a PostgreSQL-összekötő melletti jelölőnégyzetet, majd válassza a Szerkesztés lehetőséget.
- Ügyféltípusban válassza a Django lehetőséget. Annak ellenére, hogy van egy Flask alkalmazásod, a PostgreSQL szolgáltatási csatlakozóban lévő Django ügyféltípus külön beállításokban adja meg az adatbázis változókat egyetlen kapcsolati sztring helyett. A különálló változók könnyebben használhatók az alkalmazáskódban, amely az SQLAlchemy használatával csatlakozik az adatbázishoz.
- Válassza a Hitelesítés lapot.
- A Jelszó mezőbe illessze be az előzőleg másolt jelszót.
- Válassza a Titkosítás tárolása a Kulcstárban lehetőséget.
- A kulcstár kapcsolat alatt válassza a Új létrehozása lehetőséget. A Kapcsolat létrehozása párbeszédpanel az szerkesztő párbeszédpanel tetején nyílik meg.
5. lépés: A Key Vault kapcsolat létrehozása
- A Kapcsolat létrehozása párbeszédablakban a Kulcstartó kapcsolathoz, a Kulcstartó részben válassza ki az előzőleg létrehozott kulcstartót.
- Válassza a Felülvizsgálat és létrehozás lehetőséget.
- Amikor az érvényesítés befejeződött, válassza a Létrehozás lehetőséget.
6. lépés: A PostgreSQL-összekötő beállításainak véglegesítése
- Visszatértél a defaultConnector szerkesztési párbeszédablakába. Az Hitelesítés fülön várjuk meg, amíg a kulcstartó csatlakozó létrejön. Amikor befejeződik, a Key Vault Connection legördülő menü automatikusan kiválasztja.
- Válassza ki Következő: Hálózatkezelés.
- Válassza az Mentésgombot. Várjon, amíg meg nem jelenik a A frissítés sikeres volt értesítés.
7. lépés: A Key Vault integrációjának ellenőrzése
- A bal oldali menüből válassza a Beállítások > Környezeti változók opciót újra.
- A(z) AZURE_POSTGRESQL_PASSWORD mellett válassza a Érték megjelenítése lehetőséget. Az értéknek
@Microsoft.KeyVault(...)
kell lennie, ami azt jelenti, hogy ez egy kulcstároló referencia, mivel a titok most a kulcstárolóban van kezelve.
Összefoglalva, a kapcsolat titkainak biztosításához szükséges folyamat a következőket tartalmazta:
- Az App Service alkalmazás környezeti változóiból kapcsolati titkok visszakeresése.
- Kulcstár létrehozása.
- Rendszer által hozzárendelt felügyelt identitással létrehozni egy Key Vault kapcsolatot.
- A szolgáltatás csatlakozók frissítése a titkok kulcstárban való tárolására.
Problémái vannak? Nézze meg a Hibaelhárítás szakaszt.
4. Példakód telepítése
Ebben a lépésben konfigurálja a GitHub üzembe helyezését a GitHub Actions használatával. Csak egy a sok módszer közül az App Service szolgáltatásba történő telepítésre, de ugyanakkor remek módja annak, hogy folyamatos integrációt valósítson meg a telepítési folyamatában. Alapértelmezés szerint minden git push
a GitHub tárházához elindítja az építési és bevetési műveletet.
1. Lépés: A bal oldali menüben válassza ki a Telepítés>Telepítési Központ lehetőséget.
2. lépés: A Telepítési Központ oldalán:
- A Forrás területen válassza a GitHubot. Alapértelmezés szerint a GitHub Actions van kiválasztva mint build szolgáltató.
- Jelentkezzen be GitHub-fiókjába, és kövesse a felugró ablak útmutatásait az Azure engedélyezéséhez.
- A(z) Organization felületén válassza ki a fiókját.
- Az Adattárban válassza az msdocs-flask-postgresql-sample-app elemet.
- A Branch alkalmazásban válaszd ki a starter-no-infra lehetőséget. Ez ugyanaz az ág, amelyen a mintaalakmazásával dolgozott, Azure-hoz kapcsolódó fájlok vagy konfiguráció nélkül.
- A(z) Hitelesítés típusa esetében válassza a Felhasználó által hozzárendelt identitás lehetőséget.
- A felső menüben válassza a Mentés lehetőséget.
Az App Service elhelyez egy munkafolyamat fájlt a kiválasztott GitHub-tárházban, a
.github/workflows
könyvtárban. Alapértelmezés szerint a telepítési központ felhasználó által hozzárendelt identitást hoz létre, hogy a munkafolyamat hitelesíthesse magát a Microsoft Entra (OIDC-hitelesítés) használatával. Alternatív hitelesítési lehetőségekért lásd: Telepítés App Service-re a GitHub Actions használatával.
3. lépés: Térjen vissza a mintafork GitHub kódtérterületére, és futtassa a git pull origin starter-no-infra
parancsot.
Ez behúzza az újonnan elkötelezett munkafolyamat fájlt a kódtérbe.
4. lépés (1. lehetőség: a GitHub Copilot használatával):
- Új csevegési munkamenetet indíthat, ha kiválasztja a Csevegés nézetet, majd kiválasztja a +-t.
- Kérdezze meg a következőt: "@workspace Hogyan csatlakozik az alkalmazás az adatbázishoz?" A Copilot esetleg magyarázatot ad arra,
SQLAlchemy
hogy a kapcsolati URI hogyan van konfigurálva az azureproject/development.py és az azureproject/production.py. - Kérdezzen: "@workspace Éles üzemmódban az alkalmazásom egy App Service webalkalmazásban fut, amely az Azure Service Connector-t használja, hogy a Django kliens típussal kapcsolódjon egy PostgreSQL rugalmas szerverhez. Milyen környezeti változók neveit kell használnom?" A Copilot esetleg egy olyan kódjavaslatot ad, amely hasonló az alább található 2. lehetőség: GitHub Copilot nélkül lépésekhez, és akár azt is javasolhatja, hogy változtasson a azureproject/production.py fájlban.
- Nyissa meg a azureproject/production.py fájlt az Intézőben, és adja hozzá a kódsajánlást. GitHub Copilot nem adja mindig ugyanazt a választ, és nem mindig helyes. Lehet, hogy több kérdést kell feltennie, hogy finomhangolja a válaszát. Tippekért lásd Mit tehetek a GitHub Copilottal a kódtérben?.
4. lépés (2. lehetőség: a GitHub Copilot nélkül):
- Nyissa meg a Program.cs-t a fájlböngészőben.
- Keresd meg a kommentelt kódot (3-8 sorok), és távolítsd el a kommentet.
Ez létrehoz egy kapcsolati karakterláncot az SQLAlchemy-hez az
AZURE_POSTGRESQL_USER
,AZURE_POSTGRESQL_PASSWORD
,AZURE_POSTGRESQL_HOST
ésAZURE_POSTGRESQL_NAME
használatával.
5. lépés:
- Válassza ki a Source Control kiterjesztést.
- A szövegdobozba írjon egy
Configure Azure database connection
-hez hasonló commit üzenetet. Vagy válassza alehetőséget, és hagyja, hogy a GitHub Copilot létrehozzon egy commit üzenetet.
- Válassza a Küldés lehetőséget, majd erősítse meg a Igen gombbal.
- Válassza a Sync changes 1 opciót, majd erősítse meg az OK gombbal.
6. lépés: Vissza az Üzembehelyezési központ lapra az Azure Portalon:
- Válassza a Naplók fület, majd válassza a Frissítés lehetőséget, hogy megtekinthesse az új telepítési futást.
- A telepítési futtatás naplóelemében válassza ki a legfrissebb időbélyeggel rendelkező Build/Deploy Naplók bejegyzést.
7. lépés: A GitHub-adattárba kerül, és láthatja, hogy a GitHub-művelet fut. A munkafolyamat fájl két különálló szakaszt határoz meg: építés és telepítés. Várj, amíg a GitHub futtatás állapotot mutat: Success. Körülbelül 5 percet vesz igénybe.
Problémái vannak? Tekintse meg a hibaelhárítási útmutatót.
5. Adatbázis séma generálása
A virtuális hálózat által védett PostgreSQL-adatbázissal a Flask-adatbázisok migrálásának legegyszerűbb módja egy SSH-munkamenet, amelyen az App Service Linux-tárolója található.
1. lépés: Térjen vissza az App Service oldalra, a bal oldali menüben,
- Válassza a Development Tools>SSH lehetőséget.
- Válassza az Ugrás lehetőséget.
2. lépés: Indítsd el a flask db upgrade
az SSH munkamenetben. Ha sikerül, az App Service sikeresen csatlakozik az adatbázishoz.
Tipp
SSH-munka során csak a /home
fájlok módosításai maradhatnak meg az alkalmazás újraindítása után. A /home
kívüli változtatások nem kerülnek mentésre.
Problémái vannak? Nézze meg a Hibaelhárítás szakaszt.
6. Nyissa meg az alkalmazást
1. lépés: Az App Service oldalon:
- A bal oldali menüből válassza a Áttekintés lehetőséget.
- Válassza ki az alkalmazása URL-jét.
2. lépés: Adj hozzá néhány éttermet a listához. Gratulálunk, egy webalkalmazást futtat az Azure App Service-ben, biztonságos kapcsolattal az Azure Database for PostgreSQL-hez.
7. Átviteli diagnosztikai naplók
Az Azure App Service rögzíti az összes konzolnaplót, hogy segítse Önt az alkalmazása problémáinak diagnosztizálásában. A mintaalkalmazás tartalmaz print()
utasításokat, hogy bemutassa ezt a képességet, ahogy az alább látható.
@app.route('/', methods=['GET'])
def index():
print('Request for index page received')
restaurants = Restaurant.query.all()
return render_template('index.html', restaurants=restaurants)
1. lépés: Az App Service oldalon:
- A bal oldali menüből válassza a Megfigyelés>App Service naplókat.
- Az Alkalmazásnaplózás területen válassza a Fájlrendszer lehetőséget.
- A felső menüben válassza a Mentés lehetőséget.
2. lépés: A bal oldali menüből válassza a naplófolyamot. A(z) alkalmazása naplóit látja, beleértve a platform naplókat és a tárolón belüli naplókat is.
Tudjon meg többet a Python alkalmazások naplózásáról az Azure Monitor beállítása Python alkalmazásához című sorozatban.
8. Takarítsa fel az erőforrásokat
Amikor elkészültél, törölheted az összes erőforrást az Azure-előfizetésedből, ha törlöd az erőforráscsoportot.
1. lépés: Az Azure portál tetején található keresősávba:
- Adja meg az erőforráscsoport nevét.
- Válassza ki az erőforráscsoportot.
2. lépés: Az erőforráscsoport oldalán válassza az Erőforráscsoport törlése lehetőséget.
3. lépés:
- Adja meg az erőforráscsoport nevét a törlés megerősítéséhez.
- Válassza a Törlés lehetőséget.
- Erősítse meg ismét a Törlés választásával.
2. Azure erőforrások létrehozása és egy mintaalkalmazás telepítése
Ebben a lépésben létrehozza az Azure erőforrásokat és egy mintalkalmazást telepít az App Service szolgáltatásra Linuxon. A bemutatóban használt lépések egy alapértelmezés szerint biztonságos erőforráskészletet hoznak létre, amely magában foglalja az App Service-t és az Azure Database for PostgreSQL-t.
A fejlesztői konténer már tartalmazza az Azure Developer CLI (AZD).
A tároló gyökérkönyvtárából futtassa
azd init
.azd init --template python-app-service-postgresql-infra
Amikor megkérdezik, adja meg a következő válaszokat:
Kérdés Válasz Az aktuális könyvtár nem üres. Szeretnél inicializálni egy projektet itt, ebben a könyvtárban: '<your-directory>'? Y Mit szeretne kezdeni ezekkel a fájlokkal? Tartsa meg a meglévő fájljaimat változatlanul Adjon meg egy új környezeti nevet Írjon be egy egyedi nevet. Az AZD sablon ezt a nevet az Azure-ban lévő webalkalmazás DNS-nevének részeként használja ( <app-name>-<hash>.azurewebsites.net
). Alfanumerikus karakterek és kötőjelek megengedettek.Az Azure-ba való belépéshez futtassa a
azd auth login
parancsot, és kövesse az utasításokat.azd auth login
Hozza létre a szükséges Azure-erőforrásokat a
azd provision
paranccsal. Kövesse az utasításokat az Azure erőforrásokhoz kívánt előfizetés és helyszín kiválasztásához.azd provision
A
azd provision
parancs körülbelül 15 percet vesz igénybe a befejezéshez (a legtöbb időt a Redis cache veszi igénybe). Később módosítja a kódját, hogy működjön az App Service-szel, és telepíti a változásokat a(z)azd deploy
segítségével. Amíg fut, a parancs üzeneteket nyújt az előkészítési és telepítési folyamatról, beleértve egy hivatkozást az Azure-ban történt telepítésre.Ez az AZD sablon olyan fájlokat tartalmaz (azure.yaml és a infra könyvtár), amelyek alapértelmezett módon biztonságos architektúrát hoznak létre a következő Azure-erőforrásokkal:
- Erőforrás csoport: Az elkészített erőforrások tárolója.
- App Service terv: Meghatározza az App Service számítási erőforrásait. A Basic szintű Linux terv létrejött.
- App Service: Képviseli az alkalmazását és az App Service tervben fut.
- Virtual network: Az App Service alkalmazással integrált, és izolálja a háttérhálózati forgalmat.
- Privát végpontok: Hozzáférési végpontok a kulcstartóhoz és a Redis gyorsítótárhoz a virtuális hálózatban.
- Hálózati interfészek: Képviselnek privát IP-címeket, egyet-egyet a privát végpontok számára.
- Azure Database for PostgreSQL rugalmas szerver: Csak a virtuális hálózaton belül érhető el. Az adatbázis és a felhasználó létrehozásra került a szerveren.
- Privát DNS zóna: Lehetővé teszi a PostgreSQL szerver DNS feloldását a virtuális hálózatban.
- Log Analytics munkaterület: A célkonténerként szolgál az alkalmazásod számára, ahova a naplóit küldheti, és ahol a naplókat is lekérdezheti.
- Azure Cache for Redis: Csak a saját privát végpontja mögül érhető el.
- Key vault: Csak a privát végpontja mögül érhető el. Az App Service alkalmazás titkainak kezelésére használják.
Miután a parancs befejezte az erőforrások létrehozását és az alkalmazáskód első telepítését, a telepített mintalkalmazás még nem működik, mert apró módosításokat kell végeznie, hogy az Azure-ban található adatbázishoz csatlakozzon.
Problémái vannak? Nézze meg a Hibaelhárítás szakaszt.
3. Használja az adatbázis csatlakozási karakterláncát
Az Ön által használt AZD-sablon már alkalmazásbeállításokként létrehozta a kapcsolati változókat, és azokat az ön kényelme érdekében a terminálon adja ki. Az alkalmazásbeállítások egy módja annak, hogy a kapcsolat titkait távol tartsuk a kódtárunktól.
Az AZD kimenetében találja meg a
AZURE_POSTGRESQL_USER
,AZURE_POSTGRESQL_PASSWORD
,AZURE_POSTGRESQL_HOST
ésAZURE_POSTGRESQL_NAME
beállításokat. A titkok biztonsága érdekében csak a beállítások nevei jelennek meg. Így néznek ki az AZD kimenetében.App Service app has the following connection settings: - AZURE_POSTGRESQL_NAME - AZURE_POSTGRESQL_HOST - AZURE_POSTGRESQL_USER - AZURE_POSTGRESQL_PASSWORD - AZURE_REDIS_CONNECTIONSTRING - AZURE_KEYVAULT_RESOURCEENDPOINT - AZURE_KEYVAULT_SCOPE
A kényelme érdekében az AZD sablon megmutatja az alkalmazás beállítási oldalának közvetlen linkjét. Keresd meg a linket, és nyisd meg egy új böngészőfülön.
Problémái vannak? Nézze meg a Hibaelhárítás szakaszt.
4. Módosítsa a mintakódot, és telepítse újra.
A GitHub-munkatérben indítson új beszélgetést úgy, hogy kiválasztja a Chat nézetet, majd a +.
Kérdezze meg a következőt: "@workspace Hogyan csatlakozik az alkalmazás az adatbázishoz?" A Copilot esetleg magyarázatot ad arra,
SQLAlchemy
hogy a kapcsolati URI hogyan van konfigurálva az azureproject/development.py és az azureproject/production.py.Kérdezzen: "@workspace Éles üzemmódban az alkalmazásom egy App Service webalkalmazásban fut, amely az Azure Service Connector-t használja, hogy a Django kliens típussal kapcsolódjon egy PostgreSQL rugalmas szerverhez. Milyen környezeti változók neveit kell használnom?" A Copilot esetleg egy olyan kódjavaslatot ad, amely hasonló az alább található 2. lehetőség: GitHub Copilot nélkül lépésekhez, és akár azt is javasolhatja, hogy változtasson a azureproject/production.py fájlban.
Nyissa meg a azureproject/production.py fájlt az Intézőben, és adja hozzá a kódsajánlást.
GitHub Copilot nem adja mindig ugyanazt a választ, és nem mindig helyes. Lehet, hogy több kérdést kell feltennie, hogy finomhangolja a válaszát. Tippekért lásd Mit tehetek a GitHub Copilottal a kódtérben?.
A terminálban futtassa a
azd deploy
.azd deploy
Problémái vannak? Nézze meg a Hibaelhárítás szakaszt.
5. Adatbázis séma generálása
A virtuális hálózat által védett PostgreSQL-adatbázissal a Flask-adatbázisok migrálásának legegyszerűbb módja egy SSH-munkamenet, amelyen az App Service Linux-tárolója található.
Az AZD kimenetén keresse meg az SSH munkamenet URL-jét, és nyissa meg azt a böngészőben. Így néz ki a kimenetben:
Open SSH session to App Service container at: <URL>
Az SSH munkamenetben futtassa a
flask db upgrade
parancsot. Ha sikerül, az App Service sikeresen csatlakozik az adatbázishoz.Megjegyzés:
Csak a
/home
fájljaiban történt változások maradhatnak meg az alkalmazás újraindítása után. A/home
kívüli változtatások nem kerülnek mentésre.
Problémái vannak? Nézze meg a Hibaelhárítás szakaszt.
6. Nyissa meg az alkalmazást
A AZD kimenetében keresse meg az alkalmazása URL-jét, és nyissa meg a böngészőben. Az URL így néz ki az AZD kimenetében:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <URL>
Adj hozzá néhány éttermet a listához.
Gratulálunk, egy webalkalmazást futtat az Azure App Service-ben, biztonságos kapcsolattal az Azure Database for PostgreSQL-hez.
Problémái vannak? Nézze meg a Hibaelhárítás szakaszt.
7. Átviteli diagnosztikai naplók
Az Azure App Service rögzítheti a konzolnaplókat, hogy segítsen diagnosztizálni az alkalmazásod problémáit. Kényelmi szempontból az AZD sablon már lehetővé teszi a naplózást a helyi fájlrendszerhez, és a naplókat egy Log Analytics munkaterületre küldi.
A mintapéldány alkalmazás tartalmaz print()
utasításokat, amelyek ezt a képességet demonstrálják, az alábbi kódrészlet szerint.
@app.route('/', methods=['GET'])
def index():
print('Request for index page received')
restaurants = Restaurant.query.all()
return render_template('index.html', restaurants=restaurants)
Az AZD kimenetében keresse meg az App Service naplók streamelésének linkjét, és navigáljon rá a böngészőben.
Tudjon meg többet a Python alkalmazások naplózásáról az Azure Monitor beállítása Python alkalmazásához című sorozatban.
Problémái vannak? Nézze meg a Hibaelhárítás szakaszt.
8. Takarítsa fel az erőforrásokat
Az összes Azure erőforrás törléséhez a jelenlegi telepítési környezetben futtassa a azd down
parancsot és kövesse az utasításokat.
azd down
Hibaelhárítás
Az alábbiakban felsorolt problémákkal találkozhatsz, miközben megpróbálod végigvinni ezt az oktatóanyagot, és lépések ennek megoldására.
Nem tudok csatlakozni az SSH-munkamenethez.
Ha nem tud csatlakozni az SSH munkamenethez, akkor maga az alkalmazás nem indult el. Ellenőrizze a diagnosztikai naplókat a részletekért. Például, ha olyan hibát lát, mint a KeyError: 'AZURE_POSTGRESQL_HOST'
, ez azt jelentheti, hogy hiányzik a környezeti változó (lehet, hogy eltávolította az alkalmazás beállítást).
Amikor adatbázis-migrációkat futtatok, hibát kapok.
Ha bármilyen hibával találkozik, ami az adatbázishoz való csatlakozással kapcsolatos, ellenőrizze, hogy az alkalmazás beállításait (AZURE_POSTGRESQL_USER
, AZURE_POSTGRESQL_PASSWORD
, AZURE_POSTGRESQL_HOST
és AZURE_POSTGRESQL_NAME
) megváltoztatták vagy törölték-e. Ahhoz a kapcsolati karakterlánchoz, a migrate parancs nem tud kommunikálni az adatbázissal.
Gyakran ismételt kérdések
- Mennyibe kerül ez a beállítás?
- Hogyan csatlakozhatok a PostgreSQL szerverhez, amely a virtuális hálózat mögött más eszközökkel biztosított?
- Hogyan működik a helyi alkalmazásfejlesztés a GitHub Actions segítségével?
- Hogyan hibakereshetek a GitHub Actions telepítés során fellépő hibákat?
- Nincs jogosultságom felhasználó által hozzárendelt identitás létrehozására
- Mit tehetek a GitHub Copilot-tal a kodetérben?
Mennyibe kerül ez a beállítás?
A létrehozott erőforrások árazása a következő:
- Az App Service terv Basic rétegben lett létrehozva, és felfelé vagy lefelé skálázható. Lásd az App Service díjszabását.
- A PostgreSQL rugalmas szerver a legalacsonyabb, burstable szintű Standard_B1ms szinten jön létre, a minimális tárhely mérettel, amely felskálázható vagy lecsökkenthető. Tekintse meg a Azure Database for PostgreSQL árazását.
- A virtuális hálózat nem kerül felszámításra díj, hacsak nem konfigurál extra funkciókat, például a peeringet. Tekintse meg az Azure Virtual Network díjszabását.
- A privát DNS zóna kis díjat számol fel. Tekintse meg az Azure DNS díjszabását.
Hogyan csatlakozni a virtuális hálózat mögött más eszközökkel védett PostgreSQL-kiszolgálóhoz?
- Az alapvető hozzáféréshez egy parancssori eszközből futtathatja a
psql
parancsot az alkalmazás SSH munkamenetéből. - Asztali eszközről való csatlakozáshoz a gépnek a virtuális hálózaton belül kell lennie. Például lehet egy Azure VM, amely az egyik alhálózathoz csatlakozik, vagy egy olyan gép egy helyszíni hálózatban, amelynek site-to-site VPN kapcsolata van az Azure virtuális hálózattal.
- Ön is integrálhatja az Azure Cloud Shellt a virtuális hálózattal.
Hogyan működik a helyi alkalmazásfejlesztés a GitHub Actions használatával?
Az App Service automatikusan generált munkafolyamat-fájlja példaként szolgálva, minden egyes git push
elindít egy új build- és telepítési folyamatot. A GitHub-tárház helyi klónjából elvégzi a kívánt frissítéseket, és feltölti azokat a GitHubra. Például:
git add .
git commit -m "<some-message>"
git push origin main
Hogyan tudom hibakeresni a hibákat a GitHub Actions telepítése során?
Ha egy lépés sikertelen az automatikusan generált GitHub munkafolyamat fájlban, próbálja meg módosítani a sikertelen parancsot, hogy részletesebb kimenetet generáljon. Például több kimenetet kaphat a python
parancsból, ha hozzáadja a -d
opciót. Commitálja és pusholja a változtatásait, hogy elindítson egy újabb telepítést az App Service-re.
Nincsenek jogosultságaim egy felhasználó által hozzárendelt identitás létrehozásához.
Tekintse meg a GitHub Actions telepítés beállítását a Telepítési Központból.
Mit tehetek a GitHub Copilottal a kódtáramban?
Észrevehetted, hogy a GitHub Copilot chat nézete már ott volt számodra, amikor létrehoztad a codespace-t. Az Ön kényelme érdekében a GitHub Copilot csevegési bővítményt beépítjük a konténer definíciójába (lásd .devcontainer/devcontainer.json). Azonban szüksége van egy GitHub Copilot-fiókra (30 napos ingyenes próbaidőszak elérhető).
Íme néhány tipp, amikor a GitHub Copilot-tal beszélsz:
- Egyetlen chatbeszélgetés során a kérdések és válaszok egymásra épülnek, és a kérdéseidet úgy alakíthatod, hogy finomítsd a kapott választ.
- Alapértelmezés szerint a GitHub Copilot nem fér hozzá a tárhelyed egyetlen fájljához sem. A fájllal kapcsolatos kérdések feltevéséhez először nyissa meg a fájlt a szerkesztőben.
- Annak érdekében, hogy a GitHub Copilot hozzáférjen a tárhely összes fájljához a válaszok előkészítése során, kezdd a kérdésedet a
@workspace
-vel. További információért lásd: Use the @workspace agent. - A beszélgetési munkamenet során a GitHub Copilot javaslatokat tehet a változtatásokra, és (a
@workspace
használatával) még azt is megmutathatja, hol történjenek ezek a változtatások, de nincs engedélyezve, hogy elvégezze a változtatásokat ön helyett. Rajtad áll, hogy hozzáadod-e a javasolt módosításokat, és teszteled-e.
Következő lépések
Lépjen tovább a következő oktatási segédanyaghoz, hogy megtudja, hogyan biztosíthatja alkalmazását egyedi domainnel és tanúsítvánnyal.
Ismerje meg, hogyan futtat egy Python alkalmazást az App Service.