Rövid útmutató: Python -webalkalmazás (Django, Flask vagy FastAPI) üzembe helyezése az Azure App Service-ben

Ebben a rövid útmutatóban üzembe helyez egy Python-webalkalmazást (Django, Flask vagy FastAPI) az Azure App Service-ben. Az Azure App Service egy teljes körűen felügyelt web hosting szolgáltatás, amely támogatja a Linux server környezetben üzemeltetett Python-alkalmazásokat.

A gyors kezdéshez ezekre lesz szüksége:

Megjegyzés:

Ez a cikk a Python-webalkalmazás Azure App Service-ben történő üzembe helyezésére vonatkozó aktuális utasításokat tartalmazza. A Python windowsos használata már nem támogatott.

Ugrás a végére

Ebben az oktatóanyagban gyorsan üzembe helyezheti a mintaalkalmazást az Azure Developer CLI használatával, és megtekintheti, hogy fut-e az Azure-ban. Futtassa a következő parancsokat az Azure Cloud Shellben, és kövesse az utasításokat:

mkdir flask-quickstart
cd flask-quickstart
azd init --template https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
azd up

És az erőforrások törléséhez:

azd down

Mintaalkalmazás

Ez a rövid útmutató a Flask, a Django vagy a FastAPI használatával is elvégezhető. Az egyes keretrendszerekben található mintaalkalmazások segítenek a rövid útmutató követésében. Töltse le vagy klónozza a mintaalkalmazást a helyi munkaállomásra.

git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart

Az alkalmazás helyi futtatása:

  1. Nyissa meg az alkalmazásmappát:

    cd msdocs-python-flask-webapp-quickstart
    
  2. Hozzon létre egy virtuális környezetet az alkalmazáshoz:

    py -m venv .venv
    .venv\scripts\activate
    
  3. Telepítse a függőségeket:

    pip install -r requirements.txt
    
  4. Futtassa az alkalmazást:

    flask run
    
  5. Nyissa meg a(z) http://localhost:5000 cím alatti mintaalkalmazást egy webböngészőben.

    A Flask alkalmazás helyileg futó képernyőképe egy böngészőben

Problémákat tapasztal? Értesítsen minket.

Webalkalmazás létrehozása az Azure-ban

Az alkalmazás Azure-ban való üzemeltetéséhez létre kell hoznia egy Azure App Service-webalkalmazást az Azure-ban. Webalkalmazást az Azure CLI, a VS Code, az Azure Tools bővítménycsomag vagy az Azure Portal használatával hozhat létre.

Az Azure CLI-parancsok futtathatók olyan számítógépen, amelyen telepítve van az Azure CLI.

Hozd létre az Azure erőforrásokat, majd telepítsd az alkalmazásodat külön Azure CLI parancsokkal.

Ha szükséges, jelentkezzen be az Azure-ba az login használatával.

az login

Cseréld <app-name> helyette egy globálisan egyedi névvel. Hozz létre egy erőforráscsoportot és egy App Service-csomagot, majd az az webapp create használatával hozd létre a webalkalmazást.

az group create --name myResourceGroup --location eastus
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku P0v3 --is-linux
az webapp create --name <app-name> --resource-group myResourceGroup --plan myAppServicePlan --runtime "PYTHON:3.14"
az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
  • Használd a --runtime paramétert annak a Python-verziónak a megadására, amelyen az alkalmazásod fut. Ez a példa a Python 3.14-et használja. A támogatott Python futóidők felsorolásához használd az webapp list-runtimes --os-type linux --runtime python --output table.
  • Használja a --sku paramétert az App Service csomag méretének (CPU és memória) és költségének meghatározására. Ez a példa a P0v3 (Premium v3) szolgáltatáscsomagot használja, amely költséggel jár az Azure-előfizetésedben. Az App Service-csomagok teljes listáját az App Service díjszabásában találja.
  • Cseréld ki a(z) eastus elemet az általad preferált régióra. A rendelkezésre álló régiók listázásához futtasd a az account list-locations parancsot --output table használatával.
  • A SCM_DO_BUILD_DURING_DEPLOYMENT beállítás lehetővé teszi az Oryx buildet, beleértve a requirements.txt fájlban felsorolt függőségek telepítését, amikor telepíted a forrásarchívumot.

Hozz létre egy ZIP fájlt az alkalmazás fájljaival, beleértve requirements.txt, az archívum gyökerében. Zárja ki a helyi fájlokat, például a .venv, .git és .env. A platformspecifikus utasításokért lásd: Létrehoz egy ZIP-fájlt az alkalmazásáról a ZIP-fájl használatával történő üzembe helyezés lapon. Ezután telepítsd az archívumot a(z) az webapp deploy használatával:

az webapp deploy --name <app-name> --resource-group myResourceGroup --src-path <zip-file-path> --type zip

A telepítés néhány percig is eltarthat. Lépj a(z) https://<app-name>.azurewebsites.net elemhez, hogy megtekinthesd az alkalmazásodat. A naplók streameléséhez engedélyezd őket futtatással az webapp log config --name <app-name> --resource-group myResourceGroup --docker-container-logging filesystem, majd futtatd az webapp log tail --name <app-name> --resource-group myResourceGroup.

Problémákat tapasztal? Értesítsen minket.

Az alkalmazáskód üzembe helyezése az Azure-ban

Az Azure App Service több módszert is támogat az alkalmazáskód Azure-ban való üzembe helyezéséhez, beleértve a GitHub Actionst és az összes fő CI/CD-eszközt. Ez a cikk azt ismerteti, hogyan helyezheti üzembe a kódot a helyi munkaállomásról az Azure-ban.

Az előző lépésben az Azure CLI parancsok létrehozták az erőforrásokat és telepítették az alkalmazásodat. Továbbléphetsz a következő lépésre.


Problémákat tapasztal? Először tekintse meg a hibaelhárítási útmutatót. Ha ez nem segít, tudassa velünk.

Indítási szkript konfigurálása

Bizonyos fájlok jelenléte alapján az App Service automatikusan észleli, hogy egy alkalmazás Django- vagy Flask-alkalmazás-e, és végrehajtja az alkalmazás futtatásának alapértelmezett lépéseit. Más webes keretrendszereken, például a FastAPI-n alapuló alkalmazásoknál lehet, hogy be kell állítani egy startup scriptet az App Service számára, hogy az alkalmazás futtasson. Egyébként az App Service egy alapértelmezett csak olvasható alkalmazást futtat, amely az opt/defaultsite mappában található.

  • Python 3.14 és újabb: App Service automatikusan felismeri és futtatja a FastAPI alkalmazásokat. Nem szükséges indítási parancs.
  • Python 3.13 vagy korábbi verziók: Egyedi indítási parancsot kell konfigurálnod.

Ha többet szeretne megtudni arról, hogyan futtatja az App Service a Python-alkalmazásokat, és hogyan konfigurálhatja és szabhatja testre a viselkedését az alkalmazással, olvassa el a Linux Python-alkalmazás konfigurálása az Azure App Service-hez című témakört.

Az App Service automatikusan észleli egy Flask-alkalmazás jelenlétét. Ehhez a gyors kezdő lépésekhez nincs szükség további konfigurációra.

Keresse meg az alkalmazást

Keresse meg az üzembe helyezett alkalmazást a webböngészőjében. Az Azure portálon követhet egy hivatkozást. Nyissa meg az Áttekintés lapot, és válassza az Alapértelmezett tartomány lehetőséget. Ha megjelenik egy alapértelmezett alkalmazáslap, várjon egy percet, és frissítse a böngészőt.

A Python-mintakód egy Linux-tárolót futtat az App Service-ben egy beépített rendszerkép használatával.

Képernyőkép az Azure-ban futó alkalmazásról

Gratulálok! Üzembe helyezte a Python-alkalmazást az App Service-ben.

Problémákat tapasztal? Először tekintse meg a hibaelhárítási útmutatót. Ha ez nem segít, tudassa velünk.

Naplók megtekintése

Az Azure App Service rögzíti a konzol összes üzenetkimenetét, hogy segítsen az alkalmazással kapcsolatos problémák diagnosztizálásában. A mintaalkalmazások olyan utasításokat tartalmaznak print() , amelyek bemutatják ezt a képességet.

@app.route('/')
def index():
   print('Request for index page received')
   return render_template('index.html')

@app.route('/favicon.ico')
def favicon():
    return send_from_directory(os.path.join(app.root_path, 'static'),
                               'favicon.ico', mimetype='image/vnd.microsoft.icon')

@app.route('/hello', methods=['POST'])
def hello():
   name = request.form.get('name')

   if name:
       print('Request for hello page received with name=%s' % name)
       return render_template('hello.html', name = name)
   else:
       print('Request for hello page received with no name or blank name -- redirecting')
       return redirect(url_for('index'))

Az App Service diagnosztikai naplóinak tartalmát az Azure CLI, a VS Code vagy az Azure Portal használatával tekintheti át.

Először konfigurálnia kell az Azure App Service-t, hogy az az webapp log config parancsot használja, és a naplókat az App Service fájlrendszerbe irányítsa.

az webapp log config \
    --web-server-logging filesystem \
    --name $APP_SERVICE_NAME \
    --resource-group $RESOURCE_GROUP_NAME

A naplók streameléséhez használja az az webapp log tail parancsot.

az webapp log tail \
    --name $APP_SERVICE_NAME \
    --resource-group $RESOURCE_GROUP_NAME

Frissítse a kezdőlapot az alkalmazásban, vagy próbálkozzon más kérésekkel néhány naplóüzenet létrehozásához. A kimenetnek az alábbiakhoz hasonlóan kell kinéznie.

Starting Live Log Stream ---

2021-12-23T02:15:52.740703322Z Request for index page received
2021-12-23T02:15:52.740740222Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET / HTTP/1.1" 200 1360 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.841043070Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.884541951Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:53.043211176Z 169.254.130.1 - - [23/Dec/2021:02:15:53 +0000] "GET /favicon.ico HTTP/1.1" 404 232 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"

2021-12-23T02:16:01.304306845Z Request for hello page received with name=David
2021-12-23T02:16:01.304335945Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "POST /hello HTTP/1.1" 200 695 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.398399251Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.430740060Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"

Problémákat tapasztal? Először tekintse meg a hibaelhárítási útmutatót. Ha ez nem segít, tudassa velünk.

Erőforrások tisztítása

Ha végzett a mintaalkalmazással, eltávolíthatja az alkalmazás összes erőforrását az Azure-ból. Az erőforráscsoport eltávolítása biztosítja, hogy ne járjon többletköltséggel, és hogy az Azure-előfizetés ne legyen zsúfolt. Az erőforráscsoport eltávolítása az erőforráscsoport összes erőforrását is eltávolítja, és ez a leggyorsabb módja az alkalmazás összes Azure-erőforrásának eltávolításának.

Törölje az erőforráscsoportot az az group delete paranccsal.

az group delete \
    --name msdocs-python-webapp-quickstart \
    --no-wait

Az --no-wait argumentum lehetővé teszi a parancs visszatérését a művelet befejezése előtt.

Problémákat tapasztal? Értesítsen minket.

Következő lépések