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.
Ez az oktatóanyag bemutatja, hogyan tárolózhat egy Python Flask vagy FastAPI webalkalmazást, és hogyan helyezheti üzembe Azure Container Apps. Azure Container Apps Docker tárolótechnológiát használ a beépített képek és az egyéni rendszerképek üzemeltetéséhez. További információ az Azure-ban való tárolóhasználatról: Az Azure tároló lehetőségek összehasonlítása.
Ebben az oktatóanyagban a Docker CLI és a Azure CLI használatával hoz létre egy Docker-képet. Ezt a képet üzembe helyezi az Azure Container Apps szolgáltatásban. Az üzembe helyezéshez használhatja a Visual Studio Code és a Azure Tools Extension.
Előfeltételek
Az oktatóanyag elvégzéséhez a következőkre van szüksége:
Egy Azure fiók, ahol webalkalmazást helyezhet üzembe Azure Container Apps. (A folyamat létrehoz egy Azure Container Registry és Log Analytics munkaterületet.)
Azure CLI, Docker és a helyi környezetben telepített Docker CLI.
A mintakód lekérése
A helyi környezetben kérje le a kódot.
Dockerfile és .dockerignore fájlok hozzáadása
Adjon hozzá egy Docker-fájlt , amely arra utasítja a Dockert, hogyan készítse el a lemezképet. A Dockerfile a Gunicorn, egy éles szintű webkiszolgáló használatát határozza meg, amely webkérelmeket továbbít a Flask- és FastAPI-keretrendszereknek. Az ENTRYPOINT és a CMD parancsok arra utasítják a Gunicornt, hogy kezelje az alkalmazásobjektumra vonatkozó kéréseket.
# syntax=docker/dockerfile:1
FROM python:3.11
WORKDIR /code
COPY requirements.txt .
RUN pip3 install -r requirements.txt
COPY . .
EXPOSE 50505
ENTRYPOINT ["gunicorn", "--config", "gunicorn.conf.py", "app:app"]
Ez a példa a (belső) tárolóportot használja 50505 , de bármilyen ingyenes portot használhat.
Ellenőrizze a requirements.txt fájlt, hogy tartalmazza-e gunicorn.
Flask==3.1.0
gunicorn
Konfigurálja a gunicorn-t
A Gunicorn egy gunicorn.conf.py fájllal konfigurálható. Ha a gunicorn.conf.py fájl ugyanabban a könyvtárban van, ahol futgunicorn, nem kell megadnia a helyét a ENTRYPOINTCMD utasításában vagy utasításában. A konfigurációs fájl megadásáról további információt a Gunicorn beállításai című témakörben talál.
Ebben az oktatóanyagban a javasolt konfigurációs fájl úgy konfigurálja a Gunicornt, hogy növelje a feldolgozók számát az elérhető processzormagok száma alapján. A gunicorn.conf.py fájlbeállításokról további információt a Gunicorn konfigurációja című témakörben talál.
# Gunicorn configuration file
import multiprocessing
max_requests = 1000
max_requests_jitter = 50
log_file = "-"
bind = "0.0.0.0:50505"
workers = (multiprocessing.cpu_count() * 2) + 1
threads = workers
timeout = 120
Adjon hozzá egy .dockerignore fájlt, hogy kizárja a felesleges fájlokat a képből.
.git*
**/*.pyc
.venv/
A képfájl lokális létrehozása és futtatása
Hozza létre helyileg a képet.
Futtassa a képet helyileg egy Docker-tárolóban.
docker run --detach --publish 5000:50505 flask-demo
Nyissa meg http://localhost:5000 a böngészőben a helyileg futó webalkalmazás megtekintéséhez.
A --detach beállítás a háttérben futtatja a tárolót. A --publish beállítás leképozza a tárolóportot a gazdagép egyik portjára. A gazdaport (külső) első a párban, a tárolóport (belső) pedig a második. További információ: Docker run reference.
Azure webalkalmazás üzembe helyezése
A Docker-rendszerkép az Azure Container Appshez történő üzembe helyezéséhez használja az az containerapp up parancsot. (A következő parancsok a Bash shellhez vannak megadva. Módosítsa a folytatási karaktert (\), hogy az jellemzően illeszkedjen a többi shellhez.
az containerapp up \
--resource-group web-flask-aca-rg --name web-aca-app \
--ingress external --target-port 50505 --source .
Amikor az üzembe helyezés befejeződik, egy erőforráscsoporttal rendelkezik, benne a következő erőforrásokkal:
- Egy Azure Container Registry
- Konténeralkalmazások környezete
- A tárolóalkalmazás, amely a webalkalmazás lemezképét futtatja
- Egy Log Analytics munkaterület
A parancs kimenete az containerapp up tartalmazza az üzembe helyezett alkalmazás URL-címét. Nyissa meg az URL-címet a böngészőben a Azure futó webalkalmazás megtekintéséhez. Az URL-cím a következőképpen néz ki: https://web-aca-app.<generated-text>.<location-info>.azurecontainerapps.io, ahol az <generated-text> és <location-info> az üzembe helyezéshez egyedi értékek.
Frissítések és ismételt üzembe helyezés
A kódfrissítések elvégzése után futtassa újra az előző az containerapp up parancsot. A parancs újraépíti a rendszerképet, és újra üzembe helyezi azt az Azure Container Apps. Amikor ismét futtatja a parancsot, az észleli, hogy az erőforráscsoport és az alkalmazás már létezik, és csak a tárolóalkalmazást frissíti.
Összetettebb frissítési forgatókönyvekben az az acr build és az az containerapp frissítési parancsok együttes használatával újra üzembe helyezheti a tárolóalkalmazást.
Takarítás
Az oktatóanyagban létrehozott összes Azure erőforrás ugyanabban az erőforráscsoportban található. Az erőforráscsoport eltávolítása eltávolítja az erőforráscsoport összes erőforrását. Ez a leggyorsabb módja annak, hogy eltávolítsa az alkalmazáshoz használt összes Azure erőforrást.
Az erőforrások eltávolításához használja az az group delete parancsot.
A csoportot a Azure portálon vagy Visual Studio Code is eltávolíthatja a Azure Eszközök bővítmény használatával.
Következő lépések
További információt a következő források tartalmaznak: