A Python Container Apps áttekintése az Azure-ban
Ez a cikk bemutatja, hogyan lehet a Python-projektkódból (például egy webalkalmazásból) egy üzembe helyezett Docker-tárolóba lépni az Azure-ban. Az alábbiakban a tárolók általános folyamatáról, az Azure-beli tárolók üzembe helyezésének lehetőségeiről és az Azure-beli tárolók Python-specifikus konfigurációjáról van szó.
A Docker-tárolók természete az, hogy egy Docker-rendszerkép létrehozása kódból, és a rendszerkép üzembe helyezése egy Azure-beli tárolóban hasonló a programozási nyelvek között. A nyelvspecifikus szempontok – ebben az esetben a Python – az Azure-beli tárolókészítési folyamat során vannak konfigurálva, különösen a Python webes keretrendszereket támogató Dockerfile-struktúra és konfiguráció, például a Django, a Flask és a FastAPI.
Tárolói munkafolyamat-forgatókönyvek
A Python-tárolók fejlesztéséhez a kódról tárolóra való áttérés néhány tipikus munkafolyamata a következő:
Eset | Leírás | Munkafolyamat |
---|---|---|
Dev | Python Docker-rendszerképeket hozhat létre a fejlesztői környezetben. | Kód: Git clone code to dev environment (a Docker telepítve van). Build: Docker CLI, VS Code (bővítményekkel), PyCharm (beépülő modullal). A Python Docker-rendszerképek és -tárolók használata című szakaszban leírtak. Teszt: Egy Docker-tároló fejlesztői környezetében. Leküldés: Olyan beállításjegyzékbe, mint az Azure Container Registry, a Docker Hub vagy a privát beállításjegyzék. Üzembe helyezés: Azure-szolgáltatásban a beállításjegyzékből. |
Hibrid | A fejlesztői környezetből Python Docker-rendszerképeket hozhat létre az Azure-ban. | Kód: Git clone code to dev environment (nem szükséges a Docker telepítéséhez). Build: VS Code (bővítményekkel), Azure CLI. Leküldés: Az Azure Container Registrybe Üzembe helyezés: Azure-szolgáltatásban a beállításjegyzékből. |
Azure | Minden a felhőben; a Python Docker-rendszerképek kódját az Azure Cloud Shell használatával hozhatja létre a GitHub-adattárból. | Kód: Git Clone GitHub-adattár az Azure Cloud Shellbe. Build: Az Azure Cloud Shellben használja az Azure CLI-t vagy a Docker CLI-t. Leküldés: Olyan beállításjegyzékbe, mint az Azure Container Registry, a Docker Hub vagy a privát beállításjegyzék. Üzembe helyezés: Azure-szolgáltatásban a beállításjegyzékből. |
Ezeknek a munkafolyamatoknak a célja, hogy egy tároló futjon az egyik Olyan Azure-erőforrásban, amely támogatja a Docker-tárolókat a következő szakaszban felsoroltak szerint.
A fejlesztői környezet lehet a helyi munkaállomás a Visual Studio Code vagy a PyCharm, a Codespaces (a felhőben üzemeltetett fejlesztési környezet) vagy a Visual Studio Dev Containers (tároló mint fejlesztési környezet) használatával.
Üzembehelyezési tároló beállításai az Azure-ban
A Python-tárolóalkalmazások a következő szolgáltatásokban támogatottak.
Szolgáltatás | Leírás |
---|---|
Web App for Containers | Teljes körűen felügyelt üzemeltetési szolgáltatás tárolóalapú webalkalmazásokhoz, beleértve a webhelyeket és a webes API-kat. A Azure-alkalmazás Service tárolóalapú webalkalmazásai igény szerint méretezhetők, és egyszerűsített CI-/CD-munkafolyamatokat használhatnak a Docker Hub, az Azure Container Registry és a GitHub használatával. Ideális egyszerű helyszíni megoldásként a fejlesztők számára, hogy kihasználhassák a teljes mértékben felügyelt Azure-alkalmazás Szolgáltatásplatform előnyeit, de egyetlen üzembe helyezhető összetevőt is szeretnének, amely egy alkalmazást és annak összes függőségét tartalmazza. Példa: Flask- vagy FastPI-webalkalmazás üzembe helyezése Azure-alkalmazás Szolgáltatásban. |
Azure Container Apps (ACA) | A Kubernetes által üzemeltetett teljes körűen felügyelt kiszolgáló nélküli tárolószolgáltatás, valamint olyan nyílt forráskódú technológiák, mint a Dapr, a KEDA és a megbízott. Az ajánlott eljárások alapján és általános célú tárolókhoz optimalizálva. A fürtinfrastruktúrát az ACA felügyeli, és a Kubernetes API-hoz való közvetlen hozzáférés nem támogatott. Számos alkalmazásspecifikus fogalmat kínál a tárolókon, beleértve a tanúsítványokat, a változatokat, a méretezést és a környezeteket. Ideális olyan csapatok számára, amelyek a Kubernetes mögöttes összetettségének kezelése nélkül szeretnének tároló mikroszolgáltatásokat létrehozni. Példa: Flask- vagy FastPI-webalkalmazás üzembe helyezése az Azure Container Appsben. |
Azure Container Instances (ACI) | Kiszolgáló nélküli ajánlat, amely igény szerint egyetlen podot biztosít a Hyper-V izolált tárolóihoz. A kiosztott erőforrások helyett a használat alapján számlázva. Az olyan fogalmak, mint a méretezés, a terheléselosztás és a tanúsítványok nem rendelkeznek ACI-tárolókkal. A felhasználók gyakran más szolgáltatásokon keresztül kommunikálnak az ACI-vel; például az AKS vezényléshez. Ideális, ha kevésbé "véleményezett" építőelemre van szüksége, amely nem felel meg az Azure Container Apps által optimalizált forgatókönyveknek. Példa: Tárolórendszerkép létrehozása az Azure Container Instancesben való üzembe helyezéshez. (Az oktatóanyag nem Python-specifikus, de a megjelenített fogalmak minden nyelvre érvényesek.) |
Azure Kubernetes Service (AKS) | Teljes körűen felügyelt Kubernetes-lehetőség az Azure-ban. Támogatja a Kubernetes API közvetlen elérését, és bármilyen Kubernetes-számítási feladatot futtat. A teljes fürt az előfizetésében található, és a fürtkonfigurációk és a műveletek az Ön felügyelete és felelőssége alá tartoznak. Ideális olyan csapatok számára, akik a Kubernetes teljes körűen felügyelt verzióját keresik az Azure-ban. Példa: Azure Kubernetes Service-fürt üzembe helyezése az Azure CLI használatával. |
Azure Functions | Eseményvezérelt, kiszolgáló nélküli függvények szolgáltatásként (FAAS) megoldás. Számos jellemzőt oszt meg az Azure Container Appsszel a skálázás és az eseményekkel való integráció körül, de kódként vagy tárolóként üzembe helyezett rövid élettartamú függvényekre van optimalizálva. Ideális olyan csapatok számára, amelyek eseményekkel kapcsolatos függvények végrehajtását szeretnék aktiválni; például más adatforrásokhoz való kötéshez. Példa: Függvény létrehozása Linuxon egyéni tároló használatával. |
A szolgáltatások részletesebb összehasonlításáért lásd a Container Apps és más Azure-tárolóbeállítások összehasonlítása című témakört.
Virtuális környezetek és tárolók
Ha Egy Python-projektet fejlesztői környezetben futtat, a virtuális környezet használata gyakori módja a függőségek kezelésének és a projektbeállítás reprodukálhatóságának. A virtuális környezetekben telepítve van egy Python-értelmező, kódtár és szkript, amelyet az adott környezetben futó projektkód igényel. A Python-projektek függőségeit a requirements.txt fájl kezeli.
Tipp.
Tárolók esetén a virtuális környezetekre csak akkor van szükség, ha tesztelésre vagy más okból használja őket. Ha virtuális környezeteket használ, ne másolja őket a Docker-lemezképbe. A .dockerignore fájllal zárja ki őket.
A Docker-tárolók a virtuális környezetekhez hasonló képességeket biztosítanak, de további előnyökkel járnak a reprodukálhatóság és a hordozhatóság terén. A Docker-tároló bárhol futtatható, operációs rendszertől függetlenül.
A Docker-tároló tartalmazza a Python-projektkódot és mindent, amit a kódnak futtatnia kell. A pont eléréséhez létre kell hoznia a Python-projektkódot egy Docker-rendszerképben, majd létre kell hoznia egy tárolót, amely a lemezkép futtatható példánya.
A Python-projektek tárolóba helyezésekor a legfontosabb fájlok a következők:
Projektfájl | Leírás |
---|---|
requirements.txt | A Docker-rendszerkép létrehozása során a megfelelő függőségek képbe való beolvasásához használható. |
Dockerfile | A Python Docker-rendszerkép létrehozásának módjának megadására szolgál. További információkért tekintse meg a Python Dockerfile-utasításait. |
.dockerignore | A .dockerignore fájljai és könyvtárai nem lesznek átmásolva a Docker-lemezképre a COPY Dockerfile parancsával. A .dockerignore fájl a .gitignore-fájlokhoz hasonló kizárási mintákat támogat. További információ: .dockerignore fájl. A fájlok kizárása segít a képek összeállításában, de arra is használható, hogy ne adjon hozzá bizalmas információkat a képhez, ahol megvizsgálható. A .dockerignore-nak például olyan sorokat kell tartalmaznia, amelyek figyelmen kívül hagyják az .env és a .venv (virtuális környezetek) használatát. |
Web-keretrendszerek tárolóbeállításai
A webes keretrendszerek alapértelmezett portokkal rendelkeznek, amelyeken figyelik a webes kéréseket. Egyes Azure-tárolómegoldások használatakor meg kell adnia azt a portot, amelyen a tároló figyeli a forgalmat.
Webes keretrendszer | Kikötő |
---|---|
Django | 8000 |
Lombikot | 5000 vagy 5002 |
FastAPI (uvicorn) | 8000 vagy 80 |
Az alábbi táblázat bemutatja, hogyan állíthatja be a portot a különböző Azure-tárolómegoldásokhoz.
Azure-tárolómegoldás | Webalkalmazás-port beállítása |
---|---|
Web App for Containers | Alapértelmezés szerint az App Service feltételezi, hogy az egyéni tároló a 80-os vagy a 8080-as porton figyel. Ha a tároló egy másik portot figyel, állítsa be a WEBSITES_PORT alkalmazásbeállítást az App Service-alkalmazásban. További információ: Egyéni tároló konfigurálása Azure-alkalmazás szolgáltatáshoz. |
Azure Containers Apps | Az Azure Container Apps lehetővé teszi, hogy a bejövő forgalom engedélyezésével tegye közzé a tárolóalkalmazást a nyilvános weben, a VNET-ben vagy a környezet más tárolóalkalmazásaiban. Állítsa be azt a portot targetPort , amelyen a tároló figyeli a bejövő kéréseket. Az alkalmazás bejövő végpontja mindig elérhető a 443-as porton. További információ: HTTPS- vagy TCP-bejövő forgalom beállítása az Azure Container Appsben. |
Azure Container Instances, Azure Kubernetes | Tároló létrehozásakor állítsa be a portot. Győződjön meg arról, hogy a megoldás rendelkezik webes keretrendszerrel, alkalmazáskiszolgálóval (például gunicorn, uvicorn) és webkiszolgálóval (például nginx). Létrehozhat például két tárolót, egy tárolót web-keretrendszerrel és alkalmazáskiszolgálóval, egy másikat pedig egy webkiszolgálóval. A két tároló egy porton kommunikál, a webkiszolgáló-tároló pedig 80/443-at tesz elérhetővé külső kérések esetén. |
Python Dockerfile
A Dockerfile egy olyan szövegfájl, amely utasításokat tartalmaz a Docker-rendszerképek létrehozásához. Az első sor az alaprendszerképet állítja be. Ezt a sort a szükséges programok telepítéséhez, a fájlok másolásához és a munkakörnyezet létrehozásához szükséges egyéb utasítások követik. Az alábbi táblázatban például néhány Python-specifikus példa látható a Python Dockerfile legfontosabb utasításaihoz.
Utasítás | Cél | Példa |
---|---|---|
FELADÓ | Beállítja az alaprendszerképet a későbbi utasításokhoz. | FROM python:3.8-slim |
EXPO Standard kiadás | Tájékoztatja a Dockert, hogy a tároló futásidőben figyeli a megadott hálózati portokat. | EXPOSE 5000 |
MÁSOL | Fájlokat vagy könyvtárakat másol a megadott forrásból, és hozzáadja őket a tároló fájlrendszeréhez a megadott célelérési útvonalon. | COPY . /app |
FUSS | Parancsot futtat a Docker-rendszerképen belül. Például lekérhetők a függőségek. A parancs a buildeléskor egyszer fut. | RUN python -m pip install -r requirements.txt |
CMD | A parancs biztosítja a tárolók végrehajtásának alapértelmezett beállítását. Csak egy parancsmag utasítása lehet. | CMD ["gunicorn", "--bind", "0.0.0.0:5000", "wsgi:app"] |
A Docker buildelési parancs Docker-rendszerképeket hoz létre Egy Docker-fájlból és egy környezetből. A build környezete a megadott elérési úton vagy URL-címen található fájlok halmaza. Általában a Python-projekt gyökeréből fog létrehozni egy képet, és a buildelési parancs elérési útja "." az alábbi példában látható módon.
docker build --rm --pull --file "Dockerfile" --tag "mywebapp:latest" .
A buildelési folyamat a környezet bármely fájljára hivatkozhat. A build például a COPY utasítással hivatkozhat egy fájlra a környezetben. Íme egy példa egy Python-projekt Dockerfile-jára a Flask-keretrendszer használatával:
FROM python:3.8-slim
EXPOSE 5000
# Keeps Python from generating .pyc files in the container.
ENV PYTHONDONTWRITEBYTECODE=1
# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1
# Install pip requirements.
COPY requirements.txt .
RUN python -m pip install -r requirements.txt
WORKDIR /app
COPY . /app
# Creates a non-root user with an explicit UID and adds permission to access the /app folder.
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser
# Provides defaults for an executing container; can be overridden with Docker CLI.
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "wsgi:app"]
A Docker-fájlokat kézzel is létrehozhatja, vagy automatikusan létrehozhatja a VS Code-tal és a Docker-bővítménysel. További információ: Docker-fájlok létrehozása.
A Docker buildelési parancsa a Docker parancssori felületének része. Ha olyan azonosítókat használ, mint a VS Code vagy a PyCharm, a Docker-rendszerképek használatához használt felhasználói felületi parancsok meghívják a buildelési parancsot, és automatizálják a beállítások megadását.
Python Docker-rendszerképek és -tárolók használata
VS Code és PyCharm
A Python-tárolók fejlesztéséhez nem szükséges integrált fejlesztési környezetben (IDE) dolgozni, de számos tárolóval kapcsolatos feladatot leegyszerűsíthet. Íme néhány dolog, amit a VS Code és a PyCharm használatával végezhet el.
Docker-rendszerképek letöltése és létrehozása.
- Hozzon létre képeket a fejlesztői környezetben.
- Docker-rendszerképeket hozhat létre az Azure-ban anélkül, hogy a Docker telepítve lett a fejlesztői környezetben. (A PyCharm esetében az Azure CLI-vel hozhat létre képeket az Azure-ban.)
Docker-tárolók létrehozása és futtatása meglévő rendszerképből, lekért rendszerképből vagy közvetlenül Egy Docker-fájlból.
Többkontaineres alkalmazások futtatása a Docker Compose használatával.
Csatlakozás és olyan tárolóregisztrációs adatbázisokkal dolgozik, mint a Docker Hub, a GitLab, a JetBrains Space, a Docker V2 és más saját üzemeltetésű Docker-regisztrációs adatbázisok.
(csak VS Code) Adjon hozzá egy , a Python-projekthez szabott Dockerfile - és Docker-összeállítási fájlokat.
Ha úgy szeretné beállítani a VS Code-ot és a PyCharmot, hogy Docker-tárolókat futtasson a fejlesztői környezetben, kövesse az alábbi lépéseket.
Ha még nem tette meg, telepítse az Azure Tools for VS Code-ot.
Utasítások | Képernyőkép |
---|---|
1. lépés: A SHIFT + ALT + A használatával nyissa meg az Azure-bővítményt, és ellenőrizze, hogy csatlakozik-e az Azure-hoz. Az Azure ikont a VS Code bővítménysávján is kiválaszthatja. Ha nincs bejelentkezve, válassza a Bejelentkezés az Azure-ba lehetőséget, és kövesse az utasításokat. Ha problémái vannak az Azure-előfizetés elérésével, annak az lehet az oka, hogy proxy mögött áll. A csatlakozási problémák megoldásához tekintse meg a Visual Studio Code hálózati Csatlakozás cióit. |
|
2. lépés: A CTRL SHIFT + X billentyűkombinációval + nyissa meg a Bővítményeket, keresse meg a Docker-bővítményt, és telepítse a bővítményt. A VS Code bővítménysávján a Bővítmények ikont is kiválaszthatja. |
|
3. lépés: Válassza ki a Docker ikont a bővítménysávon, bontsa ki a képeket, és kattintson a jobb gombbal egy tárolóként futtatott képre. | |
4. lépés: A Docker-futtatási kimenet monitorozása a terminálablakban . |
Azure CLI és Docker CLI
A Python Docker-rendszerképekkel és -tárolókkal az Azure CLI és a Docker CLI használatával is dolgozhat. A VS Code és a PyCharm is rendelkezik terminálokkal, ahol futtathatja ezeket a CLI-ket.
Használjon cli-t, ha részletesebben szeretné szabályozni a buildelési és futtatási argumentumokat, valamint az automatizálást. Az alábbi parancs például bemutatja, hogyan használható az Azure CLI az acr build a Docker-rendszerkép nevének megadásához.
az acr build --registry <registry-name> \
--resource-group <resource-group> \
--target pythoncontainerwebapp:latest .
Egy másik példaként tekintse meg az alábbi parancsot, amely bemutatja, hogyan használható a Docker CLI futtatási parancsa. A példa bemutatja, hogyan futtathat olyan Docker-tárolót, amely a tárolón kívül, a fejlesztői környezetben lévő MongoDB-példánysal kommunikál. A parancs végrehajtásához tartozó különböző értékek egyszerűbben automatizálhatóak, ha egy parancssorban meg vannak adva.
docker run --rm -it \
--publish <port>:<port> --publish 27017:27017 \
--add-host mongoservice:<your-server-IP-address> \
--env CONNECTION_STRING=mongodb://mongoservice:27017 \
--env DB_NAME=<database-name> \
--env COLLECTION_NAME=<collection-name> \
containermongo:latest
Erről a forgatókönyvről további információt a tárolóalapú Python-webalkalmazások helyi buildelése és tesztelése című témakörben talál.
Környezeti változók tárolókban
A Python-projektek gyakran környezeti változókkal adják át az adatokat a kódnak. Megadhat például adatbázis-kapcsolati adatokat egy környezeti változóban, hogy azok könnyen módosíthatók legyenek a tesztelés során. Vagy ha éles környezetben helyezi üzembe a projektet, az adatbázis-kapcsolat módosítható úgy, hogy egy éles adatbázispéldányra hivatkozzon.
Az olyan csomagok, mint a Python-dotenv , gyakran használják kulcs-érték párok beolvasására egy .env fájlból, és környezeti változókként állítják be őket. Az .env-fájlok akkor hasznosak, ha virtuális környezetben futnak, de tárolók használata esetén nem ajánlott. Ne másolja az .env fájlt a Docker-lemezképbe, különösen akkor, ha bizalmas információkat tartalmaz, és a tároló nyilvánossá válik. A .dockerignore fájllal kizárhatja a fájlok docker-lemezképbe való másolását. További információkért tekintse meg a jelen cikk Virtuális környezetek és tárolók című szakaszát.
A környezeti változókat többféleképpen is átadhatja a tárolóknak:
- A Dockerfile-ban env utasításként definiálva.
- Argumentumként
--build-arg
átadva a Docker buildelési parancsával. - Argumentumként
--secret
átadva a Docker buildelési parancsával és a BuildKit háttérrendszerrel. - A Docker-futtatási paranccsal átadott as
--env
vagy--env-file
argumentumok.
Az első két lehetőség ugyanazzal a hátránysal rendelkezik, mint a fentebb említett .env fájlok esetében, nevezetesen, hogy a potenciálisan bizalmas adatokat egy Docker-rendszerképbe alakítja. Megvizsgálhat egy Docker-lemezképet, és megtekintheti a környezeti változókat, például a docker-rendszerkép vizsgálatával.
A BuildKit harmadik lehetősége lehetővé teszi, hogy a Dockerfile-ban használandó titkos információkat biztonságos módon adja át a Docker-rendszerképek létrehozásához, amelyek nem lesznek a végső lemezképben tárolva.
A környezeti változók Docker-futtatási paranccsal történő átadásának negyedik lehetősége azt jelenti, hogy a Docker-rendszerkép nem tartalmazza a változókat. A változók azonban továbbra is láthatók a tárolópéldány vizsgálatakor (például a Docker-tároló vizsgálatával). Ez a beállítás elfogadható lehet, ha a tárolópéldányhoz való hozzáférés szabályozott, tesztelési vagy fejlesztési forgatókönyvekben van.
Íme egy példa a környezeti változók Docker CLI-futtatási parancs használatával és az argumentum használatával történő átadására --env
.
# PORT=8000 for Django and 5000 for Flask
export PORT=<port-number>
docker run --rm -it \
--publish $PORT:$PORT \
--env CONNECTION_STRING=<connection-info> \
--env DB_NAME=<database-name> \
<dockerimagename:tag>
HA VS Code-ot vagy PyCharm-ot használ, a képek és tárolók felhasználói felületi beállításai végső soron Docker CLI-parancsokat használnak, mint a fent látható.
Végül, a környezeti változók megadása a tárolók Azure-ban való üzembe helyezésekor eltér a fejlesztői környezetben használt környezeti változóktól. Például:
A Web App for Containers esetében az App Service konfigurálása során konfigurálhatja az alkalmazásbeállításokat. Ezek a beállítások környezeti változókként érhetők el az alkalmazás kódjához, és a standard os.environ mintával érhetők el. Szükség esetén a kezdeti üzembe helyezés után is módosíthatja az értékeket. További információ: Access-alkalmazásbeállítások környezeti változókként.
Az Azure Container Apps esetében környezeti változókat konfigurálhat a tárolóalkalmazás kezdeti konfigurálása során. A környezeti változók későbbi módosítása létrehozza a tároló felülvizsgálatát . Az Azure Container Apps emellett lehetővé teszi a titkos kulcsok alkalmazásszinten történő meghatározását, majd környezeti változókban való hivatkozását. További információ: Titkos kódok kezelése az Azure Container Appsben.
Másik lehetőségként a Service Csatlakozás or használatával is csatlakoztathatja az Azure számítási szolgáltatásokat más háttérszolgáltatásokhoz. Ez a szolgáltatás konfigurálja a hálózati beállításokat és a kapcsolati információkat (például környezeti változók generálását) a számítási szolgáltatások és a cél háttérszolgáltatások között a felügyeleti síkon.
Tárolónaplók megtekintése
Tekintse meg a tárolópéldány-naplókat a diagnosztikai üzenetek kódból való kimenetének megtekintéséhez és a tároló kódjának hibáinak elhárításához. Az alábbiakban többféleképpen tekintheti meg a naplókat, amikor tárolót futtat a fejlesztői környezetben:
A VS Code vagy a PyCharm használatával futtatott tárolók a VS Code és a PyCharm szakaszban látható módon a Docker futtatásakor megnyitott terminálablakokban láthatók a naplók.
Ha a Docker CLI futtatási parancsát használja az interaktív jelzővel
-it
, a parancsot követő kimenet jelenik meg.A Docker Desktopban egy futó tároló naplóit is megtekintheti.
Amikor üzembe helyez egy tárolót az Azure-ban, hozzáférhet a tárolónaplókhoz is. Az alábbiakban számos Azure-szolgáltatást talál, és megtudhatja, hogyan érheti el a tárolónaplókat az Azure Portalon.
A fentiekben felsorolt szolgáltatásokhoz az Alábbi Azure CLI-parancsok érhetők el a naplókhoz.
Azure-szolgáltatás | Azure CLI-parancs a naplók eléréséhez |
---|---|
Web App for Containers | az webapp log |
Azure Container-alkalmazások | az containerapps logs |
Azure Container Instances | az container logs |
A naplók a VS Code-ban való megtekintését is támogatják. Telepítve kell lennie az Azure Tools for VS Code-nak . Az alábbiakban egy példa látható a Web Apps for Containers (App Service) naplóinak a VS Code-ban való megtekintésére.
További lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: