Oktatóanyag: Django-alkalmazás létrehozása a Service Csatlakozás or használatával a Postgres használatával Azure-alkalmazás Service-en
Feljegyzés
A Service Csatlakozás ort használja, amely megkönnyíti a webalkalmazás adatbázis-szolgáltatáshoz való csatlakoztatását ebben az oktatóanyagban. Az oktatóanyag az App Service oktatóanyagának módosítása a funkció használatához, így hasonlóságok jelennek meg. Ebben az oktatóanyagban a Környezeti változók konfigurálása az adatbázis csatlakoztatásához című szakaszból megtudhatja, hogy a Service Csatlakozás or hol játszik szerepet, és leegyszerűsíti az App Service-oktatóanyagban megadott csatlakozási folyamatot.
Ez az oktatóanyag bemutatja, hogyan helyezhet üzembe egy adatvezérelt Python Django-webalkalmazást a Azure-alkalmazás Szolgáltatásban, és hogyan csatlakoztathatja azt egy Azure Database for a Postgres-adatbázishoz. A rugalmas PostgreSQL-kiszolgálót is kipróbálhatja a fenti lehetőség kiválasztásával. A rugalmas kiszolgáló egyszerűbb üzembehelyezési mechanizmust és alacsonyabb folyamatos költségeket biztosít.
Ebben az oktatóanyagban az Azure CLI használatával hajtja végre a következő feladatokat:
- A kezdeti környezet beállítása a Pythonnal és az Azure CLI-vel
- Azure Database for PostgreSQL-adatbázis létrehozása
- Kód üzembe helyezése a szolgáltatás Azure-alkalmazás és a PostgreSQL-hez való csatlakozáshoz
- A kód frissítése és ismételt üzembe helyezés
- Diagnosztikai naplók megtekintése
- A webalkalmazás kezelése az Azure Portalon
Ez az oktatóanyag bemutatja, hogyan helyezhet üzembe egy adatvezérelt Python Django-webalkalmazást a Azure-alkalmazás Szolgáltatásban, és hogyan csatlakoztathatja egy rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázishoz. Ha nem tudja használni a Rugalmas PostgreSQL-kiszolgálót, válassza a fenti Egykiszolgálós lehetőséget.
Ebben az oktatóanyagban az Azure CLI használatával fogja elvégezni a következő feladatokat:
- A kezdeti környezet beállítása a Pythonnal és az Azure CLI-vel
- Rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázis létrehozása
- Kód üzembe helyezése a Azure-alkalmazás szolgáltatásban, és csatlakozás rugalmas PostgreSQL-kiszolgálóhoz
- A kód frissítése és ismételt üzembe helyezés
- Diagnosztikai naplók megtekintése
- A webalkalmazás kezelése az Azure Portalon
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
A kezdeti környezet beállítása
Telepítse a Python 3.8-at vagy újabb verziót. Annak ellenőrzéséhez, hogy a Python 3.8-as vagy újabb verziója van-e, futtassa a következő kódot egy terminálablakban:
python3 --version
Telepítse az Azure CLI 2.30.0-s vagy újabb verzióját. Annak ellenőrzéséhez, hogy az Azure CLI 2.30.0-s vagy újabb verziója van-e, futtassa a
az --version
parancsot. Ha frissítenie kell, futtassaaz upgrade
(a 2.30.0+-os verziót igényli).Jelentkezzen be az Azure-ba a parancssori felület használatával
az login
. Ez a parancs megnyitja a böngészőt a hitelesítő adatok gyűjtéséhez. Amikor a parancs befejeződik, JSON-kimenet jelenik meg, amely az előfizetésekkel kapcsolatos információkat tartalmazza. Miután bejelentkezett, azure-parancsokat futtathat az Azure CLI-vel az előfizetés erőforrásainak használatához.
A mintaalkalmazás klónozása vagy letöltése
Klónozza a mintaadattárat:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-postgresql-django.git
Lépjen a következő mappába:
cd serviceconnector-webapp-postgresql-django
Használja a minta rugalmas kiszolgálói ágát, amely néhány szükséges módosítást tartalmaz, például az adatbázis-kiszolgáló URL-címének beállítását és a Django-adatbázis konfigurációjának hozzáadását 'OPTIONS': {'sslmode': 'require'}
az Azure PostgreSQL rugalmas kiszolgáló által megkövetelt módon.
git checkout flexible-server
A django-minta tartalmazza az adatvezérelt Django szavazási alkalmazást, amelyet az első Django-alkalmazás django-dokumentációban való megírása után kaphat. A kész alkalmazás itt érhető el az Ön kényelme érdekében.
A minta úgy is módosul, hogy éles környezetben fusson, például az App Service-ben:
- Az éles beállítások az azuresite/production.py fájlban találhatók. A fejlesztési beállítások az Azuresite/settings.py-ban találhatók.
- Az alkalmazás éles beállításokat használ a
WEBSITE_HOSTNAME
környezeti változó beállításakor. Azure-alkalmazás Szolgáltatás automatikusan beállítja ezt a változót a webalkalmazás URL-címére, példáulmsdocs-django.azurewebsites.net
.
Az éles beállítások a Django konfigurálására vonatkoznak, hogy bármilyen éles környezetben fussanak, és nem az App Service-ra vonatkoznak. További információt a Django üzembehelyezési ellenőrzőlistájában talál. Az Azure-beli Django éles beállításai között további részleteket talál a változásokról.
Problémákat tapasztal? Tudassa velünk.
Postgres-adatbázis létrehozása az Azure-ban
Engedélyezze a paraméterek gyorsítótárazását az Azure CLI-vel, hogy ne kelljen minden parancsot megadnia ezeknek a paramétereknek. (A gyorsítótárazott értékek az .azure mappába vannak mentve.)
az config param-persist on
Telepítse az
db-up
Azure CLI bővítményét:az extension add --name db-up
Ha a
az
parancs nem ismerhető fel, győződjön meg arról, hogy az Azure CLI telepítve van a kezdeti környezet beállítása című cikkben leírtak szerint.Hozza létre a Postgres-adatbázist az Azure-ban a
az postgres up
következő paranccsal:az postgres up --resource-group ServiceConnector-tutorial-rg --location eastus --sku-name B_Gen5_1 --server-name <postgres-server-name> --database-name pollsdb --admin-user <admin-username> --admin-password <admin-password> --ssl-enforcement Enabled
Cserélje le a következő helyőrző szövegeket a saját adataira:
Cserélje le
<postgres-server-name>
az összes Azure-ban egyedi nevet (a kiszolgáló végpontja leszhttps://<postgres-server-name>.postgres.database.azure.com
). Jó minta a cég nevének és egy másik egyedi értéknek a kombinációja.<admin-password>
A<admin-username>
Postgres-kiszolgáló rendszergazdai felhasználójának létrehozásához szükséges hitelesítő adatokat adja meg és adja meg. A rendszergazdai felhasználónév nem lehet azure_superuser, azure_pg_admin, rendszergazda, rendszergazda, gyökér, vendég vagy nyilvános. Nem kezdődhet a következővel: pg_. A jelszónak 8–128 karaktert kell tartalmaznia a következő kategóriák közül háromból: angol nagybetűk, angol kisbetűk, számok (0–9) és nem alfanumerikus karakterek (például!, #, %). A jelszó nem tartalmazhat felhasználónevet.Ne használja a karaktert
$
a felhasználónévben vagy a jelszóban. Később olyan környezeti változókat fog létrehozni ezekkel az értékekkel, amelyekben a$
karakter speciális jelentéssel rendelkezik a Python-alkalmazások futtatásához használt Linux-tárolóban.Az
*B_Gen5_1*
itt használt (Alapszintű, Gen5, 1 magos) tarifacsomag a legkevésbé költséges. Éles adatbázisok esetén hagyja ki az argumentumot a--sku-name
GP_Gen5_2 (Általános célú, 5. generációs, 2 magos) szint használatához.
Ez a parancs a következő műveleteket hajtja végre, amelyek eltarthatnak néhány percig:
- Hozzon létre egy nevű
ServiceConnector-tutorial-rg
erőforráscsoportot, ha még nem létezik. - Hozzon létre egy Postgres-kiszolgálót, amelyet az
--server-name
argumentum elnevezett. - Hozzon létre egy rendszergazdai fiókot az és az
--admin-user
--admin-password
argumentumok használatával. Kihagyhatja ezeket az argumentumokat, hogy a parancs egyedi hitelesítő adatokat hozzon létre Önnek. - Hozzon létre egy adatbázist
pollsdb
az--database-name
argumentum által elnevezett módon. - Engedélyezze a hozzáférést a helyi IP-címről.
- Hozzáférés engedélyezése az Azure-szolgáltatásokból.
- Hozzon létre egy adatbázis-felhasználót az
pollsdb
adatbázishoz való hozzáféréssel.
Az összes lépést külön is elvégezheti másokkal
az postgres
éspsql
parancsokkal, deaz postgres up
az összes lépést együtt hajthatja végre.Amikor a parancs befejeződik, egy JSON-objektumot ad ki, amely az adatbázis különböző kapcsolati sztring tartalmaz a kiszolgáló URL-címével együtt, egy létrehozott felhasználónevet (például "joyfulKoala@msdocs-djangodb-12345"), valamint egy GUID-jelszót.
Fontos
Másolja a felhasználónevet és a jelszót egy ideiglenes szövegfájlba, ahogy az oktatóanyag későbbi részében szüksége lesz rájuk.
Tipp.
-l <location-name>
bármely Azure-régióra beállítható. Az előfizetés számára elérhető régiókat aaz account list-locations
paranccsal szerezheti be. Éles alkalmazások esetén helyezze az adatbázist és az alkalmazást ugyanabba a helyre.
Engedélyezze a paraméterek gyorsítótárazását az Azure CLI-vel, hogy ne kelljen minden parancsot megadnia ezeknek a paramétereknek. (A gyorsítótárazott értékek az .azure mappába vannak mentve.)
az config param-persist on
Hozzon létre egy erőforráscsoportot (igény szerint módosíthatja a nevet). A rendszer gyorsítótárazza az erőforráscsoport nevét, és automatikusan alkalmazza a következő parancsokra.
az group create --name ServiceConnector-tutorial-rg --location eastus
Az adatbázis-kiszolgáló létrehozása (a folyamat néhány percet vesz igénybe):
az postgres flexible-server create --sku-name Standard_B1ms --public-access all
Ha a
az
parancs nem ismerhető fel, győződjön meg arról, hogy az Azure CLI telepítve van a kezdeti környezet beállítása című cikkben leírtak szerint.Az az postgres flexible-server create parancs a következő műveleteket hajtja végre, amelyek néhány percet vesznek igénybe:
- Hozzon létre egy alapértelmezett erőforráscsoportot, ha még nincs gyorsítótárazott név.
- Rugalmas PostgreSQL-kiszolgáló létrehozása:
- A parancs alapértelmezés szerint egy olyan generált nevet használ, mint a
server383813186
. A paraméterrel--name
megadhatja a saját nevét. A névnek az Azure-ban egyedinek kell lennie. - A parancs a legalacsonyabb költségű
Standard_B1ms
tarifacsomagot használja. Hagyja ki az--sku-name
argumentumot az alapértelmezettStandard_D2s_v3
szint használatához. - A parancs az előző
az group create
parancsból gyorsítótárazott erőforráscsoportot és helyet használja, amely ebben a példában a régióban lévőeastus
erőforráscsoportServiceConnector-tutorial-rg
.
- A parancs alapértelmezés szerint egy olyan generált nevet használ, mint a
- Hozzon létre egy rendszergazdai fiókot felhasználónévvel és jelszóval. Ezeket az értékeket közvetlenül a paraméterekkel és
--admin-password
a--admin-user
paraméterekkel adhatja meg. - Alapértelmezés szerint hozzon létre egy adatbázist
flexibleserverdb
. A paraméterrel megadhatja az--database-name
adatbázis nevét. - Engedélyezi a teljes nyilvános hozzáférést, amelyet a
--public-access
paraméterrel szabályozhat.
Amikor a parancs befejeződik, másolja a parancs JSON-kimenetét egy fájlba , mivel az oktatóanyag későbbi részében szüksége lesz a kimenetből származó értékekre, különösen a gazdagépre, a felhasználónévre és a jelszóra, valamint az adatbázis nevére.
Problémákat tapasztal? Tudassa velünk.
A kód üzembe helyezése a Azure-alkalmazás Szolgáltatásban
Ebben a szakaszban alkalmazás-gazdagépet hoz létre az App Service-alkalmazásban, csatlakoztatja ezt az alkalmazást a Postgres-adatbázishoz, majd üzembe helyezi a kódot az adott gazdagépen.
Az App Service-alkalmazás létrehozása
A terminálban győződjön meg arról, hogy az alkalmazáskódot tartalmazó djangoapp-adattár mappában van.
Hozzon létre egy App Service-alkalmazást (a gazdafolyamatot) a
az webapp up
következő paranccsal:az webapp up --resource-group ServiceConnector-tutorial-rg --location eastus --plan ServiceConnector-tutorial-plan --sku B1 --name <app-name>
--location
Az argumentum esetében győződjön meg arról, hogy a Service Csatlakozás or által támogatott helyet használja.- Cserélje le<az alkalmazásnevet> egy egyedi névre az összes Azure-ban (a kiszolgáló végpontja).
https://<app-name>.azurewebsites.net
Az alkalmazásnév> megengedett< karakterei a következőkZ
A
-: és .0
-9
-
Jó példa a cég nevének és egy alkalmazásazonosítónak a kombinációjára.
Ez a parancs a következő műveleteket hajtja végre, amelyek eltarthatnak néhány percig:
- Hozza létre az erőforráscsoportot , ha még nem létezik. (Ebben a parancsban ugyanazt az erőforráscsoportot használja, amelyben korábban létrehozta az adatbázist.)
- Ha nem létezik, hozza létre az App Service-csomagDjangoPostgres-tutorial-plan csomagját az alapszintű tarifacsomagban (B1).
--plan
és--sku
nem kötelező. - Ha nem létezik, hozza létre az App Service-alkalmazást.
- Ha még nincs engedélyezve, engedélyezze az alkalmazás alapértelmezett naplózását.
- Töltse fel az adattárat ZIP-telepítéssel, és engedélyezze a buildautomatizálást.
- Gyorsítótárazza a gyakori paramétereket, például az erőforráscsoport nevét és az App Service-csomagot az .azure/config fájlba. Ennek eredményeképpen nem kell ugyanazt a paramétert megadnia a későbbi parancsokkal. Ha például a módosítások elvégzése után újra üzembe szeretné helyezni az alkalmazást, egyszerűen futtathatja
az webapp up
újra paraméterek nélkül. A PARANCSSOR-bővítményekből származó parancsok, példáulaz postgres up
jelenleg nem használják a gyorsítótárat, ezért kellett itt megadni az erőforráscsoportot és a helyet a kezdeti használattalaz webapp up
.
A terminálban győződjön meg arról, hogy az alkalmazáskódot tartalmazó djangoapp-adattár mappában van.
Váltson a mintaalkalmazás ágára
flexible-server
. Ez az ág a Rugalmas PostgreSQL-kiszolgálóhoz szükséges konfigurációt tartalmazza:git checkout flexible-server
Futtassa a következő
az webapp up
parancsot az App Service-gazdagép létrehozásához az alkalmazáshoz:az webapp up --name <app-name> --sku B1
Ez a parancs a következő műveleteket hajtja végre, amelyek eltarthatnak néhány percig az előző
az group create
parancsból gyorsítótárazott erőforráscsoport és hely használatával (ebben a példában aeastus
régióban lévő csoportPython-Django-PGFlex-rg
).- App Service-csomag létrehozása az alapszintű tarifacsomagban (B1). Kihagyhatja
--sku
az alapértelmezett értékek használatát. - Hozza létre az App Service-alkalmazást.
- Engedélyezze az alkalmazás alapértelmezett naplózását.
- Töltse fel az adattárat ZIP-telepítéssel, és engedélyezze a buildautomatizálást.
- App Service-csomag létrehozása az alapszintű tarifacsomagban (B1). Kihagyhatja
Sikeres üzembe helyezés esetén a parancs az alábbi példához hasonlóan JSON-kimenetet hoz létre:
Problémákat tapasztal? Tekintse meg először a hibaelhárítási útmutatót, különben tudassa velünk.
Környezeti változók konfigurálása az adatbázis csatlakoztatásához
Az App Service-ben üzembe helyezett kód következő lépése az alkalmazás csatlakoztatása az Azure Postgres-adatbázisához.
Az alkalmazáskód várhatóan négy környezeti változóban keresi meg az adatbázis adatait, AZURE_POSTGRESQL_NAME
a neve AZURE_POSTGRESQL_HOST
, AZURE_POSTGRESQL_USER
és a AZURE_POSTGRESQL_PASS
.
Ha környezeti változókat szeretne beállítani az App Service-ben, hozzon létre "alkalmazásbeállításokat" az alábbi az connection create
paranccsal.
az webapp connection create postgres --client-type django
Az erőforráscsoport, az alkalmazás neve és a db neve a gyorsítótárazott értékekből származik. A parancs végrehajtása során meg kell adnia a postgres-adatbázis rendszergazdai jelszavát.
- A parancs létrehozza a "AZURE_POSTGRESQL_HOST", "AZURE_POSTGRESQL_NAME", "AZURE_POSTGRESQL_UStandard kiadás R", "AZURE_POSTGRESQL_PASS" nevű beállításokat az alkalmazás kódjának megfelelően.
- Ha elfelejtette a rendszergazdai hitelesítő adatait, a parancs segítségével visszaállíthatja azt.
az webapp connection create postgres-flexible --client-type django
Az erőforráscsoport, az alkalmazás neve és a db neve a gyorsítótárazott értékekből származik. A parancs végrehajtása során meg kell adnia a postgres-adatbázis rendszergazdai jelszavát.
- A parancs létrehozza a "AZURE_POSTGRESQL_HOST", "AZURE_POSTGRESQL_NAME", "AZURE_POSTGRESQL_UStandard kiadás R", "AZURE_POSTGRESQL_PASS" nevű beállításokat az alkalmazás kódjának megfelelően.
- Ha elfelejtette a rendszergazdai hitelesítő adatait, a parancs segítségével visszaállíthatja azt.
Feljegyzés
Ha a "Az előfizetés nincs regisztrálva a Microsoft.ServiceLinker használatához" hibaüzenet jelenik meg, futtassa az provider register -n Microsoft.ServiceLinker
a Service Csatlakozás or erőforrás-szolgáltató regisztrálásához, és futtassa újra a kapcsolati parancsot.
A Python-kódban ezeket a beállításokat környezeti változókként érheti el olyan utasításokkal, mint a os.environ.get('AZURE_POSTGRESQL_HOST')
. További információ: Access környezeti változók.
Problémákat tapasztal? Tekintse meg először a hibaelhárítási útmutatót, különben tudassa velünk.
Django-adatbázisok áttelepítésének futtatása
A Django-adatbázisok migrálása biztosítja, hogy az Azure-adatbázis PostgreSQL-sémája megegyezik a kóddal.
Futtassa
az webapp ssh
a webalkalmazás SSH-munkamenetének megnyitásához a böngészőben:az webapp ssh
Az SSH-munkamenetben futtassa a következő parancsokat:
# Run database migrations python manage.py migrate # Create the super user (follow prompts) python manage.py createsuperuser
Ha bármilyen, az adatbázishoz való csatlakozással kapcsolatos hibát tapasztal, ellenőrizze az előző szakaszban létrehozott alkalmazásbeállítások értékeit.
A
createsuperuser
parancssor a felügyelői hitelesítő adatok megadását kéri. Az oktatóanyag alkalmazásában használja az alapértelmezett felhasználónevetroot
, nyomja le az Enter billentyűt az e-mail-cím üresen hagyásához, és adja megPollsdb1
a jelszót.Ha hibaüzenet jelenik meg, hogy az adatbázis zárolva van, győződjön meg arról, hogy az előző szakaszban futtatta a
az webapp settings
parancsot. E beállítások nélkül a migrálási parancs nem tud kommunikálni az adatbázissal, ami a hibát eredményezi.
Problémákat tapasztal? Tekintse meg először a hibaelhárítási útmutatót, különben tudassa velünk.
Szavazási kérdés létrehozása az alkalmazásban
Nyissa meg az alkalmazás webhelyét. Az alkalmazásnak meg kell jelennie a "Szavazások alkalmazás" és a "Nincs elérhető szavazás" üzenetnek, mert még nincsenek konkrét szavazások az adatbázisban.
az webapp browse
Ha "Alkalmazáshiba" jelenik meg, akkor valószínű, hogy nem hozta létre a szükséges beállításokat az előző lépésben,"Környezeti változók konfigurálása az adatbázis csatlakoztatásához", vagy hogy ezek az értékek hibákat tartalmaznak. Futtassa a parancsot
az webapp config appsettings list
a beállítások ellenőrzéséhez.Miután frissítette a beállításokat, hogy kijavítsa a hibákat, adjon egy percet az alkalmazás újraindítására, majd frissítse a böngészőt.
Keresse meg a webalkalmazás rendszergazdai lapját az URL-címhez fűzve
/admin
, példáulhttp://<app-name>.azurewebsites.net/admin
. Jelentkezzen be Django superuser hitelesítő adataival az előző szakaszból (root
ésPollsdb1
). A Szavazások csoportban válassza a Hozzáadás a Kérdések mellett lehetőséget, és hozzon létre egy szavazási kérdést néhány választási lehetőséggel.Térjen vissza a fő webhelyre (
http://<app-name>.azurewebsites.net
) annak megerősítéséhez, hogy a kérdések most már megjelennek a felhasználó számára. Válaszoljon a kérdésekre, ha szeretne adatokat létrehozni az adatbázisban.
Gratulálunk! Python Django-webalkalmazást futtat a Linuxhoz készült Azure-alkalmazás Service-ben egy aktív Postgres-adatbázissal.
Feljegyzés
Az App Service úgy észleli a Django-projektet, hogy minden almappában keres egy wsgi.py fájlt, amely manage.py startproject
alapértelmezés szerint létrejön. Amikor az App Service megtalálja a fájlt, betölti a Django webalkalmazást. További információ: Beépített Python-rendszerkép konfigurálása.
Az erőforrások eltávolítása
Ha meg szeretné tartani az alkalmazást, vagy további oktatóanyagokat szeretne folytatni, ugorjon tovább a Következő lépésekre. Ellenkező esetben a folyamatban lévő díjak elkerülése érdekében törölje az oktatóanyaghoz létrehozott erőforráscsoportot:
az group delete --name ServiceConnector-tutorial-rg --no-wait
Az erőforráscsoport törlésével felszabadíthatja és törölheti a benne lévő összes erőforrást. A parancs használata előtt győződjön meg arról, hogy már nincs szüksége a csoport erőforrásaira.
Az összes erőforrás törlése eltarthat egy ideig. Az --no-wait
argumentum lehetővé teszi, hogy a parancs azonnal visszatérjen.
Problémákat tapasztal? Tudassa velünk.
Következő lépések
A Szolgáltatás Csatlakozás orról az alábbi oktatóanyagok alapján tájékozódhat.