Python (Django vagy Flask) webalkalmazás üzembe helyezése a PostgreSQL-lel az Azure-ban

Ebben az oktatóanyagban egy adatvezérelt Python-webalkalmazást (Django vagy Flask) fog üzembe helyezni Azure-alkalmazás Szolgáltatásban az Azure Database for PostgreSQL relációs adatbázis-szolgáltatással. Azure-alkalmazás szolgáltatás támogatja Python linuxos kiszolgálói környezetben.

An architecture diagram showing an App Service with a PostgreSQL database in Azure.

Az oktatóanyag elvégzéséhez a következőkre lesz szüksége:

Ugrás a végére

Az Azure Developer CLI telepítésével üzembe helyezhet egy teljes körűen konfigurált mintaalkalmazást, amely az oktatóanyagban látható, és megtekintheti, hogy fut-e az Azure-ban. Csak futtassa a következő parancsokat egy üres munkakönyvtárban:

azd auth login
azd init --template msdocs-flask-postgresql-sample-app
azd up

Mintaalkalmazás

A Flask és Django keretrendszert használó Python-mintaalkalmazások segítenek az oktatóanyag követésében. Ha helyi futtatás nélkül szeretné üzembe helyezni őket, hagyja ki ezt a részt.

Az alkalmazás helyi futtatásához győződjön meg arról, hogy a Python 3.7 vagy újabb verziója és a PostgreSQL helyileg van telepítve. Ezután klónozza a mintaadattár ágát starter-no-infra , és váltson az adattár gyökerére.

git clone -b starter-no-infra https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app
cd msdocs-flask-postgresql-sample-app

Hozzon létre egy .env fájlt az alább látható módon az .env.sample fájl használatával útmutatóként. Állítsa be az értéket DBNAME egy meglévő adatbázis nevére a helyi PostgreSQL-példányban. Adja meg a helyi DBUSERDBPASS PostgreSQL-példány értékeitDBHOST.

DBNAME=<database name>
DBHOST=<database-hostname>
DBUSER=<db-user-name>
DBPASS=<db-password>

Hozzon létre egy virtuális környezetet az alkalmazáshoz:

py -m venv .venv
.venv\scripts\activate

Telepítse a függőségeket:

pip install -r requirements.txt

Futtassa a mintaalkalmazást a következő parancsokkal:

# Run database migration
flask db upgrade
# Run the app at http://127.0.0.1:5000
flask run

1. Az App Service és a PostgreSQL létrehozása

git clone https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app.git

Ebben a lépésben hozza létre az Azure-erőforrásokat. Az oktatóanyagban használt lépések az App Service-t és az Azure Database for PostgreSQL-t tartalmazó, alapértelmezés szerint biztonságos erőforrások készletét hozzák 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.netDNS-nevének részeként használt név.
  • A régió , amely fizikailag futtatja az alkalmazást a világon.
  • Az alkalmazás futtatókörnyezeti vereme . Itt választhatja ki az alkalmazáshoz használni kívánt Python-verziót.
  • Az alkalmazás üzemeltetési terve . Ez a tarifacsomag, amely tartalmazza az alkalmazás funkcióit és skálázási kapacitásá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.

1. lépés: Az Azure Portalon:

  1. Írja be a "webalkalmazás-adatbázis" kifejezést az Azure Portal tetején található keresősávba.
  2. Válassza ki a Web App + Adatbázis címkével ellátott elemet a Marketplace címsora alatt. A létrehozási varázslót közvetlenül is megnyithatja.

A screenshot showing how to use the search box in the top tool bar to find the Web App + Database creation wizard (Flask).

2. lépés: A Webalkalmazás létrehozása + Adatbázis lapon töltse ki az űrlapot az alábbiak szerint.

  1. Az erőforráscsoport → Válassza az Új létrehozása lehetőséget, és használja az msdocs-python-postgres-tutorial nevet.
  2. Régió → Az Önhöz közeli Bármely Azure-régió.
  3. Adja →msdocs-python-postgres-XYZ nevet, ahol az XYZ tetszőleges három véletlenszerű karakter. Ennek a névnek az Azure-on belül egyedinek kell lennie.
  4. Runtime stackPython 3.10.
  5. DatabasePostgreSQL – A rugalmas kiszolgáló alapértelmezés szerint adatbázismotorként van kiválasztva. A kiszolgáló neve és az adatbázis neve alapértelmezés szerint a megfelelő értékekre is be van állítva.
  6. Üzemeltetési tervAlapszintű. Ha készen áll, később felskálázhatja az éles tarifacsomagot.
  7. Select Review + create.
  8. Az ellenőrzés befejezése után válassza a Létrehozás lehetőséget.

A screenshot showing how to configure a new app and database in the Web App + Database wizard (Flask).

3. lépés: Az üzembe helyezés néhány percet vesz igénybe. Az üzembe helyezés befejeződése után válassza az Erőforrás megnyitása gombot. Közvetlenül az App Service-alkalmazásba kerül, de a következő erőforrások jönnek létre:

  • Az erőforráscsoport az összes létrehozott erőforrás tárolóját →.
  • Az App Service-csomag → Az App Service számítási erőforrásait határozza meg. Létrejön egy Linux-csomag az alapszinten .
  • Az App Service → Az alkalmazást jelöli, és az App Service-csomagban fut.
  • A virtuális hálózat → Integrálva van az App Service alkalmazással, és elkülöníti a háttérbeli hálózati forgalmat.
  • Rugalmas Azure Database for PostgreSQL-kiszolgáló → Csak a virtuális hálózaton belülről érhető el. A rendszer létrehoz egy adatbázist és egy felhasználót a kiszolgálón.
  • saját DNS zóna → Engedélyezi a PostgreSQL-kiszolgáló DNS-feloldását a virtuális hálózaton.

A screenshot showing the deployment process completed (Flask).

2. Kapcsolati beállítások ellenőrzése

A létrehozási varázsló már alkalmazásbeállításokként létrehozta a kapcsolati változókat. Az alkalmazásbeállítások az egyik módja annak, hogy a kapcsolat titkos kulcsait ne használja a kódtárban. Ha készen áll a titkos kulcsok biztonságosabb helyre való áthelyezésére, az alábbi cikk az Azure Key Vaultban való tárolásról szóló cikket ismerteti.

1. lépés: Az App Service lap bal oldali menüjében válassza a Konfiguráció lehetőséget.

A screenshot showing how to open the configuration page in App Service (Flask).

2. lépés: A Konfiguráció lap Alkalmazásbeállítások lapján ellenőrizze, hogy létezik-eAZURE_POSTGRESQL_CONNECTIONSTRING. Ez környezeti változóként lesz injektálva a futtatókörnyezetbe.

A screenshot showing how to see the autogenerated connection string (Flask).

3. lépés: Egy terminálban vagy parancssorban futtassa a következő Python-szkriptet egy egyedi titkos kód létrehozásához: python -c 'import secrets; print(secrets.token_hex())'. Másolja ki a következő lépésben használni kívánt kimeneti értéket.

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.

1. lépés: Új böngészőablakban:

  1. Jelentkezzen be a GitHub-fiókjába.
  2. Nyissa meg a https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app címet.
  3. Válassza az Elágazás lehetőséget.
  4. Válassza az Elágazás létrehozása lehetőséget.

A screenshot showing how to create a fork of the sample GitHub repository (Flask).

2. lépés: A GitHub lapon nyissa meg a Visual Studio Code-ot a böngészőben a . kulcs lenyomásával.

A screenshot showing how to open the Visual Studio Code browser experience in GitHub (Flask).

3. lépés: A visual Studio Code böngészőben nyissa meg az azureproject/production.py fájlt az explorerben. Tekintse meg az éles környezetben használt környezeti változókat, beleértve a konfigurációs lapon látott alkalmazásbeállításokat is.

A screenshot showing Visual Studio Code in the browser and an opened file (Flask).

4. lépés: Az App Service lap bal oldali menüjében válassza az Üzembe helyezési központ lehetőséget.

A screenshot showing how to open the deployment center in App Service (Flask).

5. lépés: Az Üzembehelyezési központ lapon:

  1. A Forrás területen válassza a GitHubot. Alapértelmezés szerint a GitHub Actions van kiválasztva buildszolgáltatóként.
  2. Jelentkezzen be a GitHub-fiókjába, és kövesse az utasításokat az Azure engedélyezéséhez.
  3. A Szervezetben válassza ki a fiókját.
  4. Az Adattárban válassza az msdocs-flask-postgresql-sample-app elemet.
  5. Az Ág területen válassza a fő lehetőséget.
  6. Hagyja bejelölve az alapértelmezett beállítást a munkafolyamat hozzáadásához.
  7. A Hitelesítés típusa területen válassza a felhasználó által hozzárendelt identitást.
  8. A felső menüben válassza a Mentés lehetőséget. Az App Service véglegesít egy munkafolyamat-fájlt a kiválasztott GitHub-adattárba a .github/workflows címtárban.

A screenshot showing how to configure CI/CD using GitHub Actions (Flask).

6. lépés: Az Üzembehelyezési központ lapon:

  1. Select Logs. Az üzembehelyezési futtatás már elindult.
  2. Az üzembe helyezési futtatás naplóelemében válassza a Build/Deploy Logs lehetőséget.

A screenshot showing how to open deployment logs in the deployment center (Flask).

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, a buildelést és az üzembe helyezést. Várja meg, amíg a GitHub fut, és megjeleníti a Kész állapotot. Körülbelül 5 percig tart.

A screenshot showing a GitHub run in progress (Flask).

Problémákat tapasztal? Tekintse meg a hibaelhárítási útmutatót.

4. Adatbázisséma létrehozá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 az App Service-tárolóval folytatott SSH-munkamenet.

1. lépés: Vissza az App Service lap bal oldali menüjébe,

  1. Válassza az SSH-t.
  2. Válassza az Ugrás lehetőséget.

A screenshot showing how to open the SSH shell for your app from the Azure portal (Flask).

2. lépés: Futtassa flask db upgradeaz SSH-terminálban. Ha sikeres, az App Service sikeresen csatlakozik az adatbázishoz. Csak a fájlok /home módosításai őrizhetők meg az alkalmazás újraindítása után. A külső /home módosítások nem maradnak meg.

A screenshot showing the commands to run in the SSH shell and their output (Flask).

5. Tallózás az alkalmazáshoz

1. lépés: Az App Service oldalán:

  1. A bal oldali menüben válassza az Áttekintés lehetőséget.
  2. Válassza ki az alkalmazás URL-címét. Közvetlenül a következőre https://<app-name>.azurewebsites.netis navigálhat.

A screenshot showing how to launch an App Service from the Azure portal (Flask).

2. lépés: Vegyen fel néhány éttermet a listára. Gratulálunk, egy webalkalmazást futtat a Azure-alkalmazás Service-ben, biztonságos kapcsolattal az Azure Database for PostgreSQL-hez.

A screenshot of the Flask web app with PostgreSQL running in Azure showing restaurants and restaurant reviews (Flask).

6. Diagnosztikai naplók streamelése

Azure-alkalmazás szolgáltatás rögzíti a konzolon megjelenő összes üzenet kimenetét, hogy segítsen diagnosztizálni az alkalmazással kapcsolatos problémákat. A mintaalkalmazás az print() alábbi módon mutatja be ezt a képességet.

@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 oldalán:

  1. A bal oldali menüben válassza az App Service-naplók lehetőséget.
  2. Az Alkalmazásnaplózás területen válassza a Fájlrendszer lehetőséget.
  3. A felső menüben válassza a Mentés lehetőséget.

A screenshot showing how to enable native logs in App Service in the Azure portal.

2. lépés: A bal oldali menüben válassza a Naplóstream lehetőséget. Láthatja az alkalmazás naplóit, beleértve a platformnaplókat és a tárolón belüli naplókat.

A screenshot showing how to view the log stream in the Azure portal.

További információ a Python-alkalmazásokban való naplózásról a Python-alkalmazásHoz készült Azure Monitor beállításáról szóló sorozatban.

7. Erőforrások törlése

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.

1. lépés: Az Azure Portal tetején található keresősávon:

  1. Adja meg az erőforráscsoport nevét.
  2. Válassza ki az erőforráscsoportot.

A screenshot showing how to search for and navigate to a resource group in the Azure portal.

2. lépés: Az erőforráscsoport lapján válassza az Erőforráscsoport törlése lehetőséget.

A screenshot showing the location of the Delete Resource Group button in the Azure portal.

3. lépés:

  1. A törlés megerősítéséhez adja meg az erőforráscsoport nevét.
  2. Select Delete.

A screenshot of the confirmation dialog for deleting a resource group in the Azure portal. :

1. Azure-erőforrások létrehozása és mintaalkalmazás üzembe helyezése

Ebben a lépésben létrehozza az Azure-erőforrásokat, és üzembe helyez egy mintaalkalmazást a Linuxon futó App Service-ben. Az oktatóanyagban használt lépések az App Service-t és az Azure Database for PostgreSQL-t tartalmazó, alapértelmezés szerint biztonságos erőforrások készletét hozzák létre.

  1. Ha még nem tette meg, klónozza a mintaadattár ágát starter-no-infra egy helyi terminálban.

    git clone -b starter-no-infra https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app
    cd msdocs-flask-postgresql-sample-app
    

    Ez a klónozott ág a kiindulópont. Egy egyszerű adatmeghajtó Flask-alkalmazást tartalmaz.

  2. Futtassa azd initaz adattár gyökerét.

    azd init --template python-app-service-postgresql-infra
    
  3. Amikor a rendszer kéri, adja meg a következő válaszokat:

    Question Answer
    Az aktuális könyvtár nem üres. Inicializálni szeretne egy projektet itt a "saját könyvtárában>"?< Y
    Mit szeretne tenni ezekkel a fájlokkal? Meglévő fájljaim változatlanul tartása
    Adjon meg egy új környezetnevet Írjon be egy egyedi nevet. Az azd-sablon ezt a nevet használja a webalkalmazás DNS-nevének részeként az Azure-ban (<app-name>.azurewebsites.net). Alfanumerikus karakterek és kötőjelek engedélyezettek.
  4. Futtassa a azd up parancsot a szükséges Azure-erőforrások kiépítéséhez és az alkalmazáskód üzembe helyezéséhez. Ha még nem jelentkezett be az Azure-ba, a böngésző elindul, és megkéri, hogy jelentkezzen be. A azd up parancs arra is kéri, hogy válassza ki a kívánt előfizetést és helyet, ahová üzembe szeretne helyezni.

    azd up
    

    A azd up parancs végrehajtása eltarthat néhány percig. Emellett lefordítja és üzembe helyezi az alkalmazáskódot, de később módosítja a kódot, hogy működjön az App Service-lel. Amíg fut, a parancs üzeneteket küld a kiépítési és üzembe helyezési folyamatról, beleértve az Azure-beli üzembe helyezésre mutató hivatkozást is. Amikor befejeződik, a parancs egy hivatkozást is megjelenít az üzembe helyezési alkalmazásra.

    Ez az azd-sablon olyan fájlokat (azure.yaml és infra könyvtár) tartalmaz, amelyek az alábbi Azure-erőforrásokkal létrehoznak egy alapértelmezett, biztonságos architektúrát:

    • Az erőforráscsoport az összes létrehozott erőforrás tárolóját →.
    • Az App Service-csomag → Az App Service számítási erőforrásait határozza meg. A B1 szinten linuxos csomag van megadva.
    • Az App Service → Az alkalmazást jelöli, és az App Service-csomagban fut.
    • A virtuális hálózat → Integrálva van az App Service alkalmazással, és elkülöníti a háttérbeli hálózati forgalmat.
    • Rugalmas Azure Database for PostgreSQL-kiszolgáló → Csak a virtuális hálózaton belülről érhető el. A rendszer létrehoz egy adatbázist és egy felhasználót a kiszolgálón.
    • saját DNS zóna → Engedélyezi a PostgreSQL-kiszolgáló DNS-feloldását a virtuális hálózaton.
    • A Log Analytics-munkaterület → Az alkalmazás céltárolójaként szolgál a naplók elküldéséhez, ahol a naplókat is lekérdezheti.

2. Az adatbázis kapcsolati sztring

Az ön által használt azd-sablon már alkalmazásbeállításokként generálta a kapcsolati változókat, és azokat az ön kényelme érdekében a terminálon adja ki. Az alkalmazásbeállítások az egyik módja annak, hogy a kapcsolat titkos kulcsait ne használja a kódtárban.

  1. Az azd kimenetben keresse meg az alkalmazás beállításait, és keresse meg a beállításokat AZURE_POSTGRESQL_CONNECTIONSTRING és AZURE_REDIS_CONNECTIONSTRINGa . A titkos kódok biztonsága érdekében csak a beállításnevek jelennek meg. Így néznek ki az azd kimenetben:

     App Service app has the following settings:
    
             - AZURE_POSTGRESQL_CONNECTIONSTRING
             - AZURE_REDIS_CONNECTIONSTRING
             - FLASK_DEBUG
             - SCM_DO_BUILD_DURING_DEPLOYMENT
             - SECRET_KEY
     
  2. AZURE_POSTGRESQL_CONNECTIONSTRINGtartalmazza az Azure Postgres-adatbázis kapcsolati sztring, és AZURE_REDIS_CONNECTIONSTRING tartalmazza az Azure-beli Redis Cache kapcsolati sztring. A csatlakozáshoz a kódot kell használnia. Nyissa meg az azureproject/production.py fájlt, bontsa ki a következő sorokat, és mentse a fájlt:

    conn_str = os.environ['AZURE_POSTGRESQL_CONNECTIONSTRING']
    conn_str_params = {pair.split('=')[0]: pair.split('=')[1] for pair in conn_str.split(' ')}
    DATABASE_URI = 'postgresql+psycopg2://{dbuser}:{dbpass}@{dbhost}/{dbname}'.format(
        dbuser=conn_str_params['user'],
        dbpass=conn_str_params['password'],
        dbhost=conn_str_params['host'],
        dbname=conn_str_params['dbname']
    )
    

    Az alkalmazáskód most már úgy van konfigurálva, hogy csatlakozzon az Azure PostgreSQL-adatbázisához. Ha szeretné, nyissa meg app.py , és nézze meg, hogyan használja a DATABASE_URI környezeti változót.

  3. A terminálban futtassa a azd deploy parancsot.

    azd deploy
    

4. Adatbázisséma létrehozá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 az App Service-tárolóval folytatott SSH-munkamenet.

  1. Az azd kimenetben keresse meg az SSH-munkamenet URL-címét, és keresse meg a böngészőben. Így néz ki a kimenetben:

     Open SSH session to App Service container at: https://<app-name>.scm.azurewebsites.net/webssh/host
     
  2. Az SSH-terminálban futtassa a következőt flask db upgrade: . Ha sikeres, az App Service sikeresen csatlakozik az adatbázishoz.

    A screenshot showing the commands to run in the SSH shell and their output (Flask).

    Megjegyzés:

    Csak a fájlok /home módosításai őrizhetők meg az alkalmazás újraindítása után. A külső /home módosítások nem maradnak meg.

5. Tallózás az alkalmazáshoz

  1. Az azd kimenetben keresse meg az alkalmazás URL-címét, és keresse meg a böngészőben. Az URL-cím így néz ki az AZD-kimenetben:

     Deploying services (azd deploy)
    
       (✓) Done: Deploying service web
       - Endpoint: https://<app-name>.azurewebsites.net/
     
  2. Vegyen fel néhány éttermet a listára.

    Gratulálunk, egy webalkalmazást futtat a Azure-alkalmazás Service-ben, biztonságos kapcsolattal az Azure Database for PostgreSQL-hez.

6. Diagnosztikai naplók streamelése

Azure-alkalmazás szolgáltatás rögzítheti a konzolnaplókat az alkalmazással kapcsolatos problémák diagnosztizálásához. Az egyszerűség kedvéért az azd sablon már engedélyezte a helyi fájlrendszerbe való naplózást, valamint egy Log Analytics-munkaterületre való szállítást.

A mintaalkalmazás az print() alábbi kódrészletben látható módon mutatja be ezt a képességet.

@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 kimenetben keresse meg az App Service-naplók streamelésére és a böngészőben való navigálásra szolgáló hivatkozást. A hivatkozás így néz ki az azd kimenetben:

Stream App Service logs at: https://portal.azure.com/#@/resource/subscriptions/<subscription-guid>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name>/logStream

További információ a Python-alkalmazásokban való naplózásról a Python-alkalmazásHoz készült Azure Monitor beállításáról szóló sorozatban.

7. Erőforrások törlése

Az aktuális üzemi környezetben lévő összes Azure-erőforrás törléséhez futtassa a következőt azd down:

azd down

Hibaelhárítás

Az alábbiakban azokat a problémákat soroljuk fel, amelyekkel az oktatóanyag és a megoldásuk lépései során találkozhat.

Nem tudok csatlakozni az SSH-munkamenethez

Ha nem tud csatlakozni az SSH-munkamenethez, akkor maga az alkalmazás nem indult el. Részletekért tekintse meg a diagnosztikai naplókat . Ha például egy hasonló KeyError: 'AZURE_POSTGRESQL_CONNECTIONSTRING'hibaüzenet jelenik meg, az azt jelentheti, hogy a környezeti változó hiányzik (lehet, hogy eltávolította az alkalmazásbeállítást).

Hibaüzenet jelenik meg az adatbázis-migrálások futtatásakor

Ha bármilyen, az adatbázishoz való csatlakozással kapcsolatos hibát tapasztal, ellenőrizze, hogy módosultak-e az alkalmazás beállításai (AZURE_POSTGRESQL_CONNECTIONSTRING). A kapcsolati sztring nélkül a migrálási parancs nem tud kommunikálni az adatbázissal.

Gyakori kérdések

Mennyibe kerül ez a beállítás?

A létrehozott erőforrások díjszabása a következő:

Hogyan csatlakozni a virtuális hálózat mögött más eszközökkel védett PostgreSQL-kiszolgálóhoz?

  • A parancssori eszközről való alapszintű hozzáféréshez az alkalmazás SSH-termináljáról is futtatható psql .
  • Asztali eszközről való csatlakozáshoz a gépnek a virtuális hálózaton belül kell lennie. Ez lehet például egy Azure-beli virtuális gép, amely az egyik alhálózathoz csatlakozik, vagy egy helyszíni hálózat egy olyan gépe, amely helyek közötti VPN-kapcsolattal rendelkezik az Azure-beli virtuális hálózattal.
  • Az Azure Cloud Shellt a virtuális hálózattal is integrálhatja.

Hogyan működik a helyi alkalmazásfejlesztés a GitHub Actions használatával?

Ha például az App Service automatikus munkafolyamat-fájlját használja, mindegyik git push elindít egy új buildet és üzembe helyezést. A GitHub-adattár helyi klónjából elvégezheti a kívánt frissítéseket, és leküldheti a GitHubra. Például:

git add .
git commit -m "<some-message>"
git push origin main

Hogyan van konfigurálva a Django-minta a Azure-alkalmazás Szolgáltatáson való futtatásra?

Megjegyzés:

Ha ezt az oktatóanyagot a saját alkalmazásával együtt követi, tekintse meg a requirements.txt fájl leírását az egyes projektek README.md fájljában (Flask, Django), hogy lássa, milyen csomagokra lesz szüksége.

A Django mintaalkalmazás konfigurálja az azureproject/production.py fájl beállításait, hogy az Azure-alkalmazás Szolgáltatásban fusson. Ezek a módosítások gyakoriak a Django éles környezetben való üzembe helyezéséhez, és nem az App Service-hez.

  • A Django ellenőrzi a HTTP_HOST fejlécet a bejövő kérelmekben. A mintakód az WEBSITE_HOSTNAME App Service környezeti változójával adja hozzá az alkalmazás tartománynevét Django ALLOWED_HOSTS beállításához.

    # Configure the domain name using the environment variable
    # that Azure automatically creates for us.
    ALLOWED_HOSTS = [os.environ['WEBSITE_HOSTNAME']] if 'WEBSITE_HOSTNAME' in os.environ else []
    
  • A Django nem támogatja a statikus fájlok éles környezetben való kiszolgálását. Ebben az oktatóanyagban a WhiteNoise használatával engedélyezi a fájlok kiszolgálását. A WhiteNoise csomag már telepítve van a requirements.txt fájllal, és a köztes szoftver hozzá van adva a listához.

    
    # WhiteNoise configuration
    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        # Add whitenoise middleware after the security middleware
        'whitenoise.middleware.WhiteNoiseMiddleware',
    

    Ezután a statikus fájlbeállítások a Django dokumentációja szerint vannak konfigurálva.

    SESSION_ENGINE = "django.contrib.sessions.backends.cache"
    STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
    

További információ: Django-alkalmazások éles beállításai.

További lépések

Folytassa a következő oktatóanyaggal, amelyből megtudhatja, hogyan védheti meg az alkalmazást egyéni tartománnyal és tanúsítvánnyal.

Megtudhatja, hogyan futtatja az App Service a Python-alkalmazásokat: