Dela via


Skapa en containerbaserad Python-webbapp i molnet

Den här artikeln är en del av en självstudie om hur du containeriserar och distribuerar en Python-webbapp till Azure App Service. Med App Service kan du köra containerbaserade webbappar och distribuera dem via CI/CD-funktioner (kontinuerlig integrering/kontinuerlig distribution) med Docker Hub, Azure Container Registry och Visual Studio Team Services. I den här delen av självstudien lär du dig hur du skapar den containerbaserade Python-webbappen i molnet.

I föregående valfria del av den här handledningen skapades och kördes en containerbild lokalt. I den här delen av självstudien containeriserar du däremot en Python-webbapp till en Docker-avbildning direkt i Azure Container Registry. Att skapa avbildningen i Azure är vanligtvis snabbare och enklare än att skapa lokalt och sedan skicka avbildningen till ett register. Att bygga i molnet kräver inte heller att Docker körs i utvecklingsmiljön.

När Docker-avbildningen finns i Azure Container Registry kan den distribueras till Azure App Service.

Det här tjänstdiagrammet visar de komponenter som beskrivs i den här artikeln.

En skärmbild av de tjänster som använder i självstudien – Containeriserad Python-app i Azure med sökvägen build-in-cloud markerad.

Skapa ett Azure Container Registry

Om du redan har ett Azure Container Registry som du kan använda går du till nästa steg. Om du inte har en, skapa en.

Azure CLI-kommandon kan köras i Azure Cloud Shell- eller på en arbetsstation med Azure CLI installerat. När du kör i Cloud Shell hoppar du över steg 3.

  1. Skapa en resursgrupp om det behövs med kommandot az group create. Om du redan har konfigurerat ett Azure Cosmos DB för MongoDB-konto delvis 2. Skapa och testa containern lokalt i den här självstudien, ange RESOURCE_GROUP_NAME miljövariabeln till namnet på resursgruppen som du använde för det kontot och gå vidare till nästa steg.

    RESOURCE_GROUP_NAME='msdocs-web-app-rg'
    LOCATION='eastus'
    
    az group create -n $RESOURCE_GROUP_NAME -l $LOCATION
    

    LOCATION ska vara ett värde för en Azure-plats. Välj en plats nära dig. Du kan lista Azure-platsvärden med följande kommando: az account list-locations -o table.

  2. Skapa ett containerregister med kommandot az acr create.

    REGISTRY_NAME='<your Azure Container Registry name>'
    
    az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Basic
    

    REGISTRY_NAME måste vara unika i Azure och innehålla 5–50 alfanumeriska tecken.

    I JSON-utdata från kommandot letar du efter värdet loginServer, som är det fullständigt kvalificerade registernamnet (alla gemener) och som bör innehålla det registernamn som du specificerade.

  3. Om du kör Azure CLI lokalt loggar du in i registret med kommandot az acr login.

    az acr login -n $REGISTRY_NAME
    

    Kommandot lägger till "azurecr.io" i namnet för att skapa det fullständigt kvalificerade registernamnet. Om det lyckas visas meddelandet "Inloggningen lyckades".

    Not

    Kommandot az acr login behövs inte eller stöds inte i Cloud Shell.

Skapa en avbildning i Azure Container Registry

Du kan skapa containeravbildningen direkt i Azure på några olika sätt. Först kan du använda Azure Cloud Shell, som skapar avbildningen utan att använda din lokala miljö alls. Du kan också skapa containeravbildningen i Azure från din lokala miljö med VS Code eller Azure CLI. Att skapa avbildningen i molnet kräver inte att Docker körs i din lokala miljö. Om du behöver det kan du följa anvisningarna i Klona eller ladda ned exempelappen i del 2 i den här självstudien för att hämta exempelwebbappen Flask eller Django.

Azure CLI-kommandon kan köras på en arbetsstation med Azure CLI installerat eller i Azure Cloud Shell-. När du kör i Cloud Shell hoppar du över steg 1.

  1. Om du kör Azure CLI lokalt loggar du in i registret om du inte redan har gjort det med kommandot az acr login.

    az acr login -n $REGISTRY_NAME
    

    Om du kommer åt registret från en annan prenumeration än den där registret skapades använder du växeln --suffix.

    Not

    Kommandot az acr login behövs inte och stöds inte i Cloud Shell.

  2. Skapa avbildningen med kommandot az acr build.

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

    I det här kommandot:

  3. Bekräfta att containeravbildningen skapades med kommandot az acr repository list.

    az acr repository list -n $REGISTRY_NAME
    

Nästa steg

Distribuera för webbappar