Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten distribuerar du en Python-webbapp (Django, Flask eller FastAPI) till Azure App Service. Azure App Service är en fullständigt hanterad webbvärdtjänst som stöder Python-appar som finns i en Linux-servermiljö.
Följande krävs för att slutföra den här snabbstarten:
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Python 3.14 eller senare installerat lokalt.
Anteckning
Den här artikeln innehåller aktuella instruktioner om hur du distribuerar en Python-webbapp med Hjälp av Azure App Service. Python i Windows stöds inte längre.
Hoppa till slutet
Du kan snabbt distribuera exempelappen i den här självstudien med hjälp av Azure Developer CLI och se hur den körs i Azure. Kör bara följande kommandon i Azure Cloud Shelloch följ anvisningarna:
mkdir flask-quickstart
cd flask-quickstart
azd init --template https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
azd up
Och för att ta bort resurserna:
azd down
Programexempel
Den här snabbstarten kan slutföras med antingen Flask, Django eller FastAPI. Ett exempelprogram i varje ramverk tillhandahålls som hjälper dig att följa med i den här snabbstarten. Ladda ned eller klona exempelprogrammet till din lokala arbetsstation.
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
Så här kör du programmet lokalt:
Gå till applikationsmappen:
cd msdocs-python-flask-webapp-quickstartSkapa en virtuell miljö för appen:
py -m venv .venv .venv\scripts\activateInstallera beroendena:
pip install -r requirements.txtKör appen:
flask runNavigera till exempelprogrammet på
http://localhost:5000i en webbläsare.
Har du problem? Berätta för oss.
Skapa en webbapp i Azure
För att vara värd för ditt program i Azure måste du skapa en Azure App Service-webbapp i Azure. Du kan skapa en webbapp med hjälp av Azure CLI, VS Code, Azure Tools-tilläggspaketet eller Azure Portal.
Azure CLI-kommandon kan köras på en dator med Azure CLI installerat.
Skapa Azure-resurserna och distribuera sedan din applikation med separata Azure CLI-kommandon.
Om det behövs loggar du in på Azure med az login.
az login
Byt ut <app-name> med ett globalt unikt namn. Skapa en resursgrupp och en App Service-plan, och skapa sedan webbappen genom att använda az webapp create.
az group create --name myResourceGroup --location eastus
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku P0v3 --is-linux
az webapp create --name <app-name> --resource-group myResourceGroup --plan myAppServicePlan --runtime "PYTHON:3.14"
az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
- Använd parametern
--runtimeför att ange vilken version av Python din app kör. Detta exempel använder Python 3.14. För att lista stödda Python-runtimes, användaz webapp list-runtimes --os-type linux --runtime python --output table. - Använd parametern
--skuför att definiera storleken (CPU och minne) och kostnaden för App Service-planen. Detta exempel använder P0v3 (Premium v3) tjänsteplan, vilket medför en kostnad i din Azure-prenumeration. En fullständig lista över App Service-planer finns i Priser för App Service. - Byt ut
eastusmed din föredragna region. För att lista tillgängliga regioner, köraz account list-locationsmed--output table. - Inställningen
SCM_DO_BUILD_DURING_DEPLOYMENTmöjliggör Oryx-bygget, inklusive installation av beroenden i requirements.txt, när du distribuerar källarkivet.
Skapa en ZIP-fil med applikationsfilerna, inklusive requirements.txt, i arkivets rot. Uteslut lokala filer som .venv, .git och .env. För plattformsspecifika instruktioner, se Skapa en ZIP-fil av ditt program på fliken Distribuera med en ZIP-fil. Distribuera sedan arkivet genom att använda az webapp deploy:
az webapp deploy --name <app-name> --resource-group myResourceGroup --src-path <zip-file-path> --type zip
Driftsättningen kan ta några minuter. Bläddra till https://<app-name>.azurewebsites.net för att se din app. För att strömma loggar, aktivera dem genom att köra az webapp log config --name <app-name> --resource-group myResourceGroup --docker-container-logging filesystem, och kör az webapp log tail --name <app-name> --resource-group myResourceGroupsedan .
Har du problem? Berätta för oss.
Distribuera programkoden till Azure
Azure App Service stöder flera metoder för att distribuera programkoden till Azure, inklusive GitHub Actions och alla större CI/CD-verktyg. Den här artikeln fokuserar på hur du distribuerar din kod från din lokala arbetsstation till Azure.
Azure CLI-kommandona i föregående steg skapade resurserna och distribuerade din applikation. Du kan gå vidare till nästa steg.
Har du problem? Gå först till felsökningsguiden. Om det inte hjälper, låt oss veta.
Konfigurera startskript
Baserat på förekomsten av vissa filer i en distribution identifierar App Service automatiskt om en app är en Django- eller Flask-app och utför standardsteg för att köra din app. För appar baserade på andra webbramverk som FastAPI kan du behöva konfigurera ett startskript för att App Service ska köra din app. Annars kör App Service en standard skrivskyddad app som finns i opt/defaultsite-mappen .
- Python 3.14 och senare: App Service upptäcker och kör automatiskt FastAPI-appar. Ingen uppstartskommando krävs.
- Python 3.13 och tidigare: Du måste konfigurera ett eget startkommando.
Mer information om hur App Service kör Python-appar och hur du kan konfigurera och anpassa dess beteende med din app finns i Konfigurera en Linux Python-app för Azure App Service.
App Service identifierar automatiskt förekomsten av en Flask-app. Ingen ytterligare konfiguration krävs för den här snabbstarten.
Bläddra till appen
Bläddra till det distribuerade programmet i webbläsaren. Du kan följa en länk från Azure-portalen. Gå till sidan Översikt och välj Standarddomän. Om du ser en standardappsida väntar du en minut och uppdaterar webbläsaren.
Python-exempelkoden kör en Linux-container i App Service med hjälp av en inbyggd avbildning.
Grattis! Du har distribuerat Python-appen till App Service.
Har du problem? Gå först till felsökningsguiden. Om det inte hjälper, låt oss veta.
Strömloggar
Azure App Service samlar in alla meddelandeutdata till konsolen för att hjälpa dig att diagnostisera problem med ditt program. Exempelapparna innehåller print() instruktioner för att demonstrera den här funktionen.
@app.route('/')
def index():
print('Request for index page received')
return render_template('index.html')
@app.route('/favicon.ico')
def favicon():
return send_from_directory(os.path.join(app.root_path, 'static'),
'favicon.ico', mimetype='image/vnd.microsoft.icon')
@app.route('/hello', methods=['POST'])
def hello():
name = request.form.get('name')
if name:
print('Request for hello page received with name=%s' % name)
return render_template('hello.html', name = name)
else:
print('Request for hello page received with no name or blank name -- redirecting')
return redirect(url_for('index'))
Du kan granska innehållet i App Service-diagnostikloggarna med hjälp av Azure CLI, VS Code eller Azure Portal.
Först måste du konfigurera Azure App Service för att generera loggar till App Service-filsystemet med hjälp av kommandot az webapp log config.
az webapp log config \
--web-server-logging filesystem \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
Om du vill strömma loggar använder du kommandot az webapp log tail .
az webapp log tail \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
Uppdatera startsidan i appen eller försök med andra begäranden om att generera vissa loggmeddelanden. Utdata bör se ut ungefär så här.
Starting Live Log Stream ---
2021-12-23T02:15:52.740703322Z Request for index page received
2021-12-23T02:15:52.740740222Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET / HTTP/1.1" 200 1360 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.841043070Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.884541951Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:53.043211176Z 169.254.130.1 - - [23/Dec/2021:02:15:53 +0000] "GET /favicon.ico HTTP/1.1" 404 232 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.304306845Z Request for hello page received with name=David
2021-12-23T02:16:01.304335945Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "POST /hello HTTP/1.1" 200 695 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.398399251Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.430740060Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
Har du problem? Gå först till felsökningsguiden. Om det inte hjälper, låt oss veta.
Rensa resurser
När du är klar med exempelappen kan du ta bort alla resurser för appen från Azure. Om du tar bort resursgruppen ser du till att du inte debiteras extra avgifter och att din Azure-prenumeration inte rensas. Om du tar bort resursgruppen tas även alla resurser i resursgruppen bort och är det snabbaste sättet att ta bort alla Azure-resurser för din app.
Ta bort resursgruppen med kommandot az group delete .
az group delete \
--name msdocs-python-webapp-quickstart \
--no-wait
Argumentet --no-wait gör att kommandot kan returneras innan åtgärden är klar.
Har du problem? Berätta för oss.