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 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:
- Egy Azure-fiók, aktív előfizetéssel. Hozzon létre egy fiókot ingyenesen.
- Helyileg telepített Python 3.14 vagy újabb .
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:
Nyissa meg az alkalmazásmappát:
cd msdocs-python-flask-webapp-quickstartHozzon létre egy virtuális környezetet az alkalmazáshoz:
py -m venv .venv .venv\scripts\activateTelepítse a függőségeket:
pip install -r requirements.txtFuttassa az alkalmazást:
flask runNyissa meg a(z)
http://localhost:5000cím alatti mintaalkalmazást egy webbö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.
Az Azure CLI rendelkezik egy paranccsal az webapp up , amely létrehozza a szükséges erőforrásokat, és egyetlen lépésben üzembe helyezi az alkalmazást.
Ha szükséges, jelentkezzen be az Azure-ba az login használatával.
az login
Hozza létre a webalkalmazást és más erőforrásokat, majd helyezze üzembe a kódot az Azure-ban az az webapp up használatával.
az webapp up --runtime PYTHON:3.14 --sku B1 --logs
- A
--runtimeparaméter megadja, hogy az alkalmazás melyik Python-verziót használja. Ez a példa a Python 3.13-at használja. Az összes elérhető futtatókörnyezet listázásához használja a parancsotaz webapp list-runtimes --os linux --output table. - A
--skuparaméter határozza meg az App Service-csomag méretét (CPU, memória) és költségét. Ez a példa a B1 (Alapszintű) szolgáltatáscsomagot használja, amely kis költséggel jár az Azure-előfizetésben. Az App Service-csomagok teljes listájáért tekintse meg az App Service díjszabási oldalát. - A
--logsjelölő az alapértelmezett naplózást konfigurálja, amely lehetővé teszi a naplóstream megtekintését közvetlenül a webalkalmazás elindítása után. - Opcionálisan megadhat egy nevet az
--name <app-name>argumentummal. Ha nem ad meg egyet, a rendszer automatikusan létrehoz egy nevet. - Opcionálisan megadhatja az
--location <location-name>argumentumot, ahol<location_name>egy elérhető Azure régió. A parancs futtatásával lekérheti az Azure-fiók engedélyezett régióinakaz appservice list-locationslistáját.
A parancs végrehajtása eltarthat néhány percig. Miközben a parancs fut, üzeneteket küld az erőforráscsoport, az App Service-csomag és az alkalmazáserőforrás létrehozásáról, a naplózás konfigurálásáról és a ZIP-telepítés elvégzéséről. Ezután egy üzenetet ad vissza, amely tartalmazza az alkalmazás URL-címét, amely az alkalmazás AZURE-beli URL-címe.
The webapp '<app-name>' doesn't exist
Creating Resource group '<group-name>' ...
Resource group creation complete
Creating AppServicePlan '<app-service-plan-name>' ...
Creating webapp '<app-name>' ...
Configuring default logging for the app, if not already enabled
Creating zip with contents of dir /home/cephas/myExpressApp ...
Getting scm site credentials for zip deployment
Starting zip deployment. This operation can take a while to complete ...
Deployment endpoint responded with status code 202
You can launch the app at <URL>
{
"URL": "<URL>",
"appserviceplan": "<app-service-plan-name>",
"location": "centralus",
"name": "<app-name>",
"os": "<os-type>",
"resourcegroup": "<group-name>",
"runtime_version": "python|3.14",
"runtime_version_detected": "0.0",
"sku": "FREE",
"src_path": "<your-folder-location>"
}
Megjegyzés:
Az az webapp up parancs a következő műveleteket hajtja végre:
Hozzon létre egy alapértelmezett erőforráscsoportot.
Hozzon létre egy alapértelmezett App Service-csomagot.
Hozzon létre egy alkalmazást a megadott névvel.
A Zip üzembe helyezi az összes fájlt az aktuális munkakönyvtárból, és engedélyezve van a buildautomatizálás.
Gyorsítótárazza a paramétereket helyileg az .azure/config fájlban, hogy ne kelljen újból megadnia őket, amikor később a
az webapp upvagy másaz webappparancs használatával telepít a projektmappából. A gyorsítótárazott értékek alapértelmezés szerint automatikusan használatosak.
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.
- Üzembe helyezés az Azure CLI használatával
- Üzembe helyezés VS Code használatával
- Üzembe helyezés ZIP-fájl használatával
Mivel a az webapp up parancs létrehozta a szükséges erőforrásokat, és egyetlen lépésben telepítette az alkalmazást, továbbléphet 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.
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.