Share via


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

A kezdeti környezet beállítása

  1. 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
    
  2. 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, futtassa az upgrade (a 2.30.0+-os verziót igényli).

  3. 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

  1. 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 
    
  2. 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.

  3. 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-rgerő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 és psql parancsokkal, de az 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 a az account list-locations paranccsal szerezheti be. Éles alkalmazások esetén helyezze az adatbázist és az alkalmazást ugyanabba a helyre.

  1. 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 
    
  2. 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
    
  3. 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értelmezett Standard_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.
    • 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.
  4. 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

  1. A terminálban győződjön meg arról, hogy az alkalmazáskódot tartalmazó djangoapp-adattár mappában van.

  2. 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őkZA-: é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ául az postgres upjelenleg nem használják a gyorsítótárat, ezért kellett itt megadni az erőforráscsoportot és a helyet a kezdeti használattal az webapp up.
  1. A terminálban győződjön meg arról, hogy az alkalmazáskódot tartalmazó djangoapp-adattár mappában van.

  2. 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
    
  3. 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 a eastus 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.

Sikeres üzembe helyezés esetén a parancs az alábbi példához hasonlóan JSON-kimenetet hoz létre:

Screenshot of the terminal, showing an example output for the az webapp up command.

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_NAMEa 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.

  1. Futtassa az webapp ssh a webalkalmazás SSH-munkamenetének megnyitásához a böngészőben:

    az webapp ssh
    
  2. 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.

  3. 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ónevet root, nyomja le az Enter billentyűt az e-mail-cím üresen hagyásához, és adja meg Pollsdb1 a jelszót.

  4. 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

  1. 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.

  2. Keresse meg a webalkalmazás rendszergazdai lapját az URL-címhez fűzve /admin , például http://<app-name>.azurewebsites.net/admin. Jelentkezzen be Django superuser hitelesítő adataival az előző szakaszból (root és Pollsdb1). 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.

  3. 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.