Tárolóalapú Python-webalkalmazás létrehozása az Azure-ban

Ez a cikk egy 5 részes oktatóanyag-sorozat 3. része egy Python-webalkalmazás tárolóba helyezéséről és üzembe helyezéséről Azure App Service. A 2. részben helyben létrehoztad és futtattad a konténerképet. Ebben a cikkben ugyanazt a Python webalkalmazást közvetlenül Azure Container Registry készíti el a Docker helyi telepítése nélkül. Az image Azure-ban történő létrehozása általában gyorsabb és egyszerűbb, mint a helyi létrehozása, majd egy tárolóregiszterbe való feltöltése. A felhőalapú rendszerkép-építés emellett szükségtelenné teszi, hogy a Docker a fejlesztési környezetben fusson.

Az Azure App Service lehetővé teszi a tárolóalapú webalkalmazások üzembe helyezését és futtatását CI/CD-folyamatok használatával olyan platformokról, mint a Docker Hub, az Azure Container Registry és az Azure DevOps. Miután a Docker-lemezkép bekerült az Azure Container Registrybe, telepítheti azt az Azure App Service-be.

Prerequisites

Mielőtt hozzákezdene, győződjön meg arról, hogy elvégezte ennek az oktatóanyag-sorozatnak a 2. részét, amely a következőket ismerteti:

  • A mintaadattár klónozása (Django vagy Flask).
  • Erőforráscsoport létrehozása Azure erőforrásokhoz.
  • A tárolóalapú alkalmazás helyi futtatása annak ellenőrzéséhez, hogy működik-e.

Emellett a következőkre van szükség:

Fontos

A minta Dockerfile a python:3.8-slim-t használja alapképként. Python 3.8 2024 októberében lejárt, és a továbbiakban nem kap biztonsági frissítéseket. Frissítse a Dockerfile-t úgy, hogy az éles környezetben történő üzembe helyezéshez a python:3.12-slim vagy a python:3.13-slim elemet használja.

Ez a szolgáltatásdiagram a cikkben tárgyalt összetevőket emeli ki.

Képernyőkép a tutoriál szolgáltatásairól - Tárolóalapú Python-alkalmazás az Azure-on, ahol a „felhőben történő építés” útvonala van kiemelve.

Azure Container Registry létrehozása

Ha már rendelkezik Azure Container Registry, hagyja ki ezt a lépést, és folytassa a következő lépéssel. Ellenkező esetben hozzon létre egy új Azure Container Registry a Azure CLI használatával.

A Azure Cloud Shell vagy a helyi fejlesztési környezetben futtathat Azure CLI parancsokat a Azure CLI telepítve.

Jegyzet

Használja ugyanazokat a neveket, mint az oktatóanyag-sorozat 2. részében.

  1. Hozzon létre egy Azure tárolóregisztrációs adatbázist az az acr create paranccsal.

    #!/bin/bash
    # Use the resource group that you created in part 2 of this tutorial series.
    RESOURCE_GROUP_NAME='msdocs-web-app-rg'
    # REGISTRY_NAME must be unique within Azure and contain 5-50 alphanumeric characters.
    # If the name is already taken, you'll receive an error. Choose a different name and retry.
    REGISTRY_NAME='msdocscontainerregistryname'
    
    echo "Creating Azure Container Registry $REGISTRY_NAME..."
    az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Standard
    

    A parancs JSON-kimenetében keresse meg az loginServer értéket. Ez az érték a teljes beállításjegyzéknevet (az összes kisbetűt) jelöli, és tartalmazza a beállításjegyzék nevét.

    Példakimenet:

    {
      "loginServer": "msdocscontainerregistryname.azurecr.io",
      "name": "msdocscontainerregistryname",
      ...
    }
    
  2. Ha a helyi gépén használja az Azure CLI-t, futtassa a az acr login parancsot a tároló-beállításjegyzékbe való bejelentkezéshez.

    az acr login -n $REGISTRY_NAME
    

    A -n paraméter vagy a rövid beállításjegyzéknevet (például msdocscontainerregistryname) vagy a teljes beállításjegyzéknevet (msdocscontainerregistryname.azurecr.io) fogadja el. A parancs az Azure CLI hitelesítő adataival hitelesíti a Dockert az Azure Container Registryben.

    Várt kimenet:

    Login Succeeded
    

    Jegyzet

    Ha Azure Cloud Shell használ, nem kell futtatnia a az acr login parancsot, mert a Cloud Shell munkamenet automatikusan kezeli a hitelesítést.

Rendszerkép létrehozása az Azure Container Registryben

A tárolórendszerképet közvetlenül az Azure-ban hozhatja létre különböző módokon:

  • A Azure Cloud Shell lehetővé teszi a rendszerkép teljes felépítését a felhőben, a helyi környezetétől függetlenül.
  • Másik lehetőségként használhatja a VS Code-ot vagy a Azure CLI, hogy a helyi beállításból hozza létre a képet Azure anélkül, hogy a Docker helyileg kellene futnia.

A helyi fejlesztési környezetben Azure CLI parancsokat futtathat a telepített Azure CLI vagy a Azure Cloud Shell használatával.

  1. A konzolon nyissa meg a klónozott adattár gyökérmappáját az oktatóanyag-sorozat 2. részében.

  2. Hozza létre a tárolórendszerképet az az acr build parancs használatával.

    Helyi fejlesztés:

    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .
    

    Azure Cloud Shell:

    Ha Azure Cloud Shell használ, a helyi elérési út (.) helyett adja meg a GitHub adattár URL-címét:

    # For Django sample:
    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git
    
    # For Flask sample:
    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git
    

    A végső argumentum (. vagy a Git URL-címe) a Docker buildkörnyezete– a Docker-fájlokat és alkalmazásfájlokat tartalmazó könyvtár, amelyet a Docker a rendszerkép létrehozásához használ.

  3. Győződjön meg arról, hogy a tárolólemezkép az az acr-adattár lista parancsával lett létrehozva.

    az acr repository list -n $REGISTRY_NAME
    

    Várt kimenet:

    [
      "msdocspythoncontainerwebapp"
    ]
    

Következő lépés

Webalkalmazás- üzembe helyezése