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-sorozat bemutatja, hogyan tárolózhat tárolóba egy Python-webalkalmazást, és hogyan helyezheti üzembe Azure Container Apps. A rendszer tárolóba helyez egy minta webalkalmazást, és a Docker-rendszerképet a Azure Container Registry tárolja. Azure Container Apps úgy van konfigurálva, hogy lekérje a Docker-lemezképet a Container Registryből, és hozzon létre egy tárolót. A mintaalkalmazás Azure Database for PostgreSQL csatlakozik a Container Apps és más Azure erőforrások közötti kommunikáció bemutatásához.
A felhőalapú natív és tárolóalapú Python webalkalmazások Azure többféleképpen is létrehozható és üzembe helyezhető. Ez az oktatóanyag-sorozat a Azure Container Apps ismerteti. A Container Apps általános célú tárolók futtatására alkalmas, különösen a tárolókban üzembe helyezett számos mikroszolgáltatást felölelő alkalmazásokhoz.
Ebben az oktatóanyag-sorozatban létrehoz egy tárolót. Ha egy Python-webalkalmazást tárolóként szeretne üzembe helyezni az Azure App Service-en, tekintse meg a Konténerizált Python webalkalmazás Azure-on MongoDB-vel.
Az oktatóanyag-sorozat eljárásai az alábbi feladatok elvégzését ismertetik:
- Készítsen Docker rendszerképet egy Python webalkalmazásból, és tárolja a képet Azure Container Registry.
- Konfigurálja Azure Container Apps a Docker-rendszerkép üzemeltetéséhez.
- Állítsa be a GitHub Actions szolgáltatást úgy, hogy frissítse a tárolót egy új Docker-rendszerképpel, amelyet a GitHub-adattár módosításai váltanak ki. Ez a lépés nem kötelező.
- Egy Python-webalkalmazás folyamatos integrációjának és folyamatos kézbesítésének (CI/CD) beállítása az Azure-ba.
A sorozat első részében megismerheti a Python webalkalmazások Azure Container Apps való üzembe helyezésének alapvető fogalmait.
A szolgáltatás áttekintése
Az alábbi ábra bemutatja, hogyan fogja használni a helyi környezetet, GitHub adattárakat és Azure szolgáltatásokat ebben az oktatóanyag-sorozatban.
A diagram az alábbi összetevőket tartalmazza:
-
Azure Container Apps lehetővé teszi mikroszolgáltatások és tárolóalapú alkalmazások futtatását kiszolgáló nélküli platformon. A kiszolgáló nélküli platform azt jelenti, hogy élvezheti a tárolók minimális konfigurációval történő futtatásának előnyeit. A Azure Container Apps az alkalmazások dinamikusan méretezhetők olyan jellemzők alapján, mint a HTTP-forgalom, az eseményvezérelt feldolgozás vagy a PROCESSZOR- vagy memóriaterhelés.
A Container Apps lekéri a Docker-képfájlokat az Azure Container Registryből. A tárolórendszerképek módosításai frissítést váltanak ki az üzembe helyezett tárolón. A GitHub Actions úgy is konfigurálható, hogy frissítéseket indítson el.
-
Azure Container Registry lehetővé teszi a Docker-rendszerképek Azure való használatának lehetőségét. Mivel a Tárolóregisztrációs adatbázis közel van a Azure üzemelő példányaihoz, ön szabályozhatja a hozzáférést. A Microsoft Entra csoportokkal és engedélyekkel szabályozhatja a Docker-rendszerképekhez való hozzáférést.
Ebben az oktatóanyag-sorozatban a beállításjegyzék forrása Azure Container Registry. De Docker Hub vagy privát beállításjegyzéket is használhat kisebb módosításokkal.
Azure Database for PostgreSQL:
A mintakód egy PostgreSQL-adatbázisban tárolja az alkalmazásadatokat. A tárolóalkalmazás egy felhasználó által hozzárendelt felügyelt identitáshasználatával csatlakozik a PostgreSQL-hez. A kapcsolati adatokat a rendszer explicit módon konfigurált környezeti változókban vagy egy Azure szolgáltatás-összekötőn tárolja.
-
Az oktatóanyag-sorozat mintakódja egy GitHub adattárban található, amelyet helyileg elágaztatja és klónozza. Ha ci/CD-munkafolyamatot szeretne beállítani GitHub Actions, szüksége van egy GitHub fiókra.
A GitHub fiók nélkül is követheti ezt az oktatóanyag-sorozatot, ha helyileg vagy az Azure Cloud Shell-ben dolgozik, hogy a mintakód-adattárból létrehozza a konténerképet.
Változatok és CI/CD
Ha módosítani szeretné a kódokat, és le szeretné küldeni őket egy tárolóba, hozzon létre egy új Docker-rendszerképet a módosításokkal. Ezután feltölti a lemezképet a Container Registrybe, és létrehoz egy új revíziót a konténeralkalmazásból.
A folyamat automatizálásához az oktatóanyag-sorozat egyik opcionális lépése bemutatja, hogyan hozhat létre CI/CD-folyamatot GitHub Actions használatával. A folyamat automatikusan létrehozza és üzembe helyezi a kódot a Container Appsben, amikor új véglegesítést küld a GitHub adattárba.
Hitelesítés és biztonság
Ebben az oktatóanyag-sorozatban közvetlenül az Azure-ban hoz létre egy Docker-tárolóképet, és üzembe helyezi azt az Azure Container Appsben. A Container Apps egy környezet környezetében fut, amelyet egy Azure virtuális hálózat támogat. Az Azure-ban a virtuális hálózatok alapvető építőelemei a magánhálózatának. A Container Apps lehetővé teszi, hogy a bejövő forgalom engedélyezésével közzétehesse a tárolóalkalmazást a nyilvános weben.
A CI/CD beállításához engedélyezi az Azure Container Apps alkalmazást OAuth-alkalmazásként a GitHub-fiókjához. OAuth-alkalmazásként a Container Apps egy GitHub Actions munkafolyamat-fájlt ír az adattárba Azure erőforrásokra és feladatokra vonatkozó információkkal a frissítésükhöz. A munkafolyamat az Azure-erőforrásokat egy Microsoft Entra szolgáltatási főfelhasználó (vagy egy meglévő szolgáltatási főfelhasználó) hitelesítő adataival frissíti, Container Apps számára szerepköralapú hozzáféréssel, valamint az Azure Container Registry felhasználónevével és jelszavával. A hitelesítő adatokat a rendszer biztonságosan tárolja a GitHub adattárban.
Végül az oktatóanyag-sorozatban szereplő minta webalkalmazás egy PostgreSQL-adatbázisban tárolja az adatokat. A mintakód egy connection string keresztül csatlakozik a PostgreSQL-hez. Amikor az alkalmazás Azure fut, egy felhasználó által hozzárendelt felügyelt identitással csatlakozik a PostgreSQL-adatbázishoz. A kód a DefaultAzureCredential használatával dinamikusan frissíti a jelszót a kapcsolati karakterláncban egy Microsoft Entra hozzáférési jogkivonattal futásidőben. Ez a mechanizmus megakadályozza a jelszó connection string vagy környezeti változóban való kemény kódolását, és további biztonsági réteget biztosít.
Az oktatóanyag-sorozat végigvezeti a felügyelt identitás létrehozásának és megfelelő PostgreSQL-szerepkörök és engedélyek megadásán, hogy hozzáférhessen és frissíthesse az adatbázist. A Container Apps konfigurálása során az oktatóanyag-sorozat végigvezeti az alkalmazás felügyelt identitásának konfigurálásán, valamint az adatbázis kapcsolati adatait tartalmazó környezeti változók beállításán. Ugyanezt Azure szolgáltatás-összekötővel is elvégezheti.
Előfeltételek
Az oktatóanyag-sorozat elvégzéséhez a következőkre van szüksége:
Egy Azure fiók, ahol létrehozható:
- Egy Azure Container Registry példány.
- Egy Azure Container Apps környezet.
- Egy Azure Database for PostgreSQL példány.
Visual Studio Code vagy a Azure CLI, attól függően, hogy milyen eszközt használ:
- A Visual Studio Code használatához szüksége van a Container Apps bővítményre.
- A Azure CLI a Azure Cloud Shell használatával használhatja.
Python csomagok:
- psycopg2-binary a PostgreSQL-hez való csatlakozáshoz.
- Flask vagy Django webes keretrendszerként.
Mintaalkalmazás
A Python mintaalkalmazás egy étteremértékelő alkalmazás, amely az étterem és felülvizsgálati adatokat a PostgreSQL-ben tárolja. Az oktatóanyag-sorozat végén egy étteremértékelő alkalmazás lesz üzembe helyezve, és az Azure Container Apps-ban fog futni, amely úgy néz ki, mint az alábbi képernyőkép.