Schnellstart: Bereitstellen einer Python-Web-App (Django, Flask oder FastAPI) in Azure App Service
Artikel
Hinweis
Ab dem 1. Juni 2024 haben alle neu erstellten App Service-Apps die Möglichkeit, einen eindeutigen Standardhostnamen mit der Namenskonvention <app-name>-<random-hash>.<region>.azurewebsites.net zu erstellen. Vorhandene App-Namen bleiben unverändert.
In diesem Schnellstart stellen Sie eine Python-Web-App (Django, Flask oder FastAPI) in Azure App Service bereit. Azure App Service ist ein vollständig verwalteter Webhostingdienst, der Apps mit Python unterstützt, die in einer Linux-Serverumgebung gehostet werden.
Für die Durchführung dieses Schnellstarts benötigen Sie Folgendes:
Dieser Artikel enthält aktuelle Anweisungen zum Bereitstellen einer Python-Web-App mit Azure App Service. Python unter Windows wird nicht mehr unterstützt.
Beispielanwendung
Dieser Schnellstart kann entweder mit Flask, Django oder FastAPI durchgeführt werden. In jedem Framework wird eine Beispielanwendung bereitgestellt, die Sie bei der Durchführung dieses Schnellstarts unterstützt. Laden Sie die Beispielanwendung auf Ihre lokale Arbeitsstation herunter, oder klonen Sie sie.
Um Ihre Anwendung in Azure zu hosten, müssen Sie eine Azure App Service-Web-App in Azure erstellen. Sie können eine Web-App mit der Azure CLI, VS Code, dem Azure Tools-Erweiterungspaket oder dem Azure-Portal erstellen.
Azure CLI-Befehle können auf einem Computer ausgeführt werden, auf dem die Azure CLI installiert ist.
Über die Azure CLI ist der Befehl az webapp up verfügbar, der die erforderlichen Ressourcen erstellt und Ihre Anwendung in einem einzigen Schritt bereitstellt.
Melden Sie sich erforderlichenfalls mithilfe von az login bei Azure an.
az login
Erstellen Sie die Web-App und andere Ressourcen, und stellen Sie dann Ihren Code mithilfe von az webapp up in Azure bereit.
az webapp up --runtime PYTHON:3.9 --sku B1 --logs
Der Parameter --runtime gibt an, welche Version von Python Ihre App ausführt. In diesem Beispiel wird Python 3.9 verwendet. Um alle verfügbaren Runtimes aufzulisten, verwenden Sie den Befehl az webapp list-runtimes --os linux --output table.
Der Parameter --sku definiert die Größe (CPU, Arbeitsspeicher) und die Kosten für den App Service-Plan. In diesem Beispiel wird der Dienstplan „Basic (B1)“ verwendet, der in Ihrem Azure-Abonnement eine geringe Gebühr verursacht. Eine vollständige Liste der App Service-Pläne finden Sie auf der Seite App Service – Preise.
Das Flag --logs konfiguriert die Standardprotokollierung, die erforderlich ist, um die Anzeige des Protokolldatenstroms unmittelbar nach dem Start der Web-App zu ermöglichen.
Sie können optional einen Namen mit dem Argument --name <app-name> angeben. Wenn Sie keinen Namen angeben, wird automatisch ein Name generiert.
Optional können Sie das Argument --location <location-name> einfügen, wobei <location_name> eine verfügbare Azure-Region ist. Sie können eine Liste der zulässigen Regionen für Ihr Azure-Konto abrufen, indem Sie den Befehl az appservice list-locations ausführen.
Die Ausführung dieses Befehls kann einige Minuten in Anspruch nehmen. Bei der Ausführung des Befehls werden Meldungen zum Erstellen der Ressourcengruppe, des App Service-Plans und der App-Ressource, zur Konfiguration der Protokollierung und zur ZIP-Bereitstellung angezeigt. Anschließend wird die Meldung „You can launch the app at http://<app-name>.azurewebsites.net“ (Sie können die App unter http://.azurewebsites.net starten.) angezeigt. Dabei handelt es sich um die URL der App in Azure.
The webapp '<app-name>' doesn't exist
Creating Resource group '<group-name>' ...
Resource group creation complete
Creating AppServicePlan '<app-service-plan-name>' ...
Creating webapp '<app-name>' ...
Configuring default logging for the app, if not already enabled
Creating zip with contents of dir /home/cephas/myExpressApp ...
Getting scm site credentials for zip deployment
Starting zip deployment. This operation can take a while to complete ...
Deployment endpoint responded with status code 202
You can launch the app at http://<app-name>.azurewebsites.net
{
"URL": "http://<app-name>.azurewebsites.net",
"appserviceplan": "<app-service-plan-name>",
"location": "centralus",
"name": "<app-name>",
"os": "<os-type>",
"resourcegroup": "<group-name>",
"runtime_version": "python|3.9",
"runtime_version_detected": "0.0",
"sku": "FREE",
"src_path": "<your-folder-location>"
}
Lokales Zwischenspeichern der Parameter in der Datei .azure/config, sodass Sie sie später bei der Bereitstellung mit az webapp up oder anderen az webapp-Befehlen aus dem Projektordner nicht erneut angeben müssen. Die zwischengespeicherten Werte werden standardmäßig automatisch verwendet.
Für die Erstellung von Azure-Ressourcen in VS Code müssen Sie das Paket mit der Azure-Tools-Erweiterung installiert haben und über VS Code bei Azure angemeldet sein.
Suchen Sie auf der linken Symbolleiste nach dem Azure-Symbol. Wählen Sie diese Option aus, um die Erweiterung „Azure-Tools für VS Code“ anzuzeigen.
Wenn das Symbol für die Azure-Tools nicht angezeigt wird, stellen Sie sicher, dass die Erweiterung „Azure-Tools für VS Code“ installiert ist.
In der Erweiterung „Azure-Tools für VS Code“:
Wählen Sie im Abschnitt RESSOURCEN Ihr Abonnement aus.
Wählen Sie + (Ressource erstellen...) aus.
Wählen Sie die Option Create App Service Web App... (App Service-Web-App erstellen) aus.
Geben Sie den Namen msdocs-python-webapp-quickstart-XYZ für diese Web-App ein, wobei XYZ drei beliebige eindeutige Zeichen sind.
Bei der Bereitstellung wird dieser Name als App-Name im Formular https://<app-name>.azurewebsites.netverwendet.
Wählen Sie den Runtimestapel für die Anwendung aus. Wählen Sie in diesem Beispiel Python 3.9 aus.
Wählen Sie den App Service-Plan (Tarif) für diese Web-App aus. Der App Service-Plan steuert, wie viele Ressourcen (CPU/Arbeitsspeicher) Ihrer App zur Verfügung stehen und wie hoch die Kosten sind.
Wählen Sie für dieses Beispiel den Tarif Basic (B1) aus. Dieser Plan belastet Ihr Azure-Abonnement mit einer geringen Gebühr, wird aber wegen der besseren Leistung gegenüber dem Plan „Free (F1)“ empfohlen.
Wählen Sie in der Benachrichtigung „Neue Web-App erstellt“ die Schaltfläche Bereitstellen aus.
Wählen Sie den Schnellstartordner, in dem Sie arbeiten, als Ordner für die Bereitstellung aus.
Antworten Sie mit Ja, um Ihre Buildkonfiguration zu aktualisieren und die Bereitstellungsleistung zu verbessern.
Nach Abschluss der Bereitstellung wird in der rechten unteren Ecke von VS Code eine entsprechende Benachrichtigung angezeigt. Über diese Benachrichtigung können Sie zu Ihrer Web-App navigieren.
Melden Sie sich beim Azure-Portal an, und führen Sie die folgenden Schritte aus, um Ihre Azure App Service-Ressourcen zu erstellen.
Anweisungen
Screenshot
Im Azure-Portal:
Geben Sie auf der Suchleiste oben im Azure-Portal App Services ein.
Wählen Sie im Menü, das unter der Suchleiste angezeigt wird, unter der Überschrift Dienste das Element mit der Bezeichnung App Services aus.
Wählen Sie auf der Seite App Services die Option + Erstellen und dann im Dropdownmenü + Web-App aus.
Füllen Sie auf der Seite Web-App erstellen das Formular wie folgt aus.
Ressourcengruppe: Wählen Sie Neu erstellen aus, und verwenden Sie den Namen msdocs-python-webapp-quickstart.
Name:msdocs-python-webapp-quickstart-XYZ, wobei XYZ drei zufällige Zeichen sind. Dieser Name muss innerhalb von Azure eindeutig sein.
Runtimestapel:Python 3.9.
Region: Eine beliebige Azure-Region in Ihrer Nähe.
App Service-Plan → Wählen Sie unter Tarif die Option Tarife erkunden aus, um einen anderen App Service-Plan auszuwählen.
Der App Service-Plan steuert die Menge der Ressourcen (CPU/Arbeitsspeicher), die Ihrer App zur Verfügung stehen, sowie die Kosten für diese Ressourcen.
Wählen Sie in diesem Beispiel unter Dev/Test den Plan Basic B1 aus. Der Plan „Basic B1“ belastet Ihr Azure-Konto mit einer geringen Gebühr, wird aber wegen der besseren Leistung gegenüber dem Plan „Free F1“ (Kostenlos) empfohlen.
Wenn Sie fertig sind, wählen Sie Auswählen aus, um Ihre Änderungen anzuwenden.
Wählen Sie auf der Hauptseite Web-App erstellen die Option Überprüfen und erstellen am unteren Rand des Bildschirms aus.
Dadurch gelangen Sie zur Seite „Überprüfung“. Wählen Sie Erstellen aus, um Ihre App Service-Instanz zu erstellen.
Azure App Service unterstützt mehrere Methoden zum Bereitstellen Ihres Anwendungscodes in Azure, einschließlich GitHub Actions und alle wichtigen CI/CD-Tools. In diesem Artikel geht es hauptsächlich darum, wie Sie Code von Ihrer lokalen Arbeitsstation in Azure bereitstellen.
Da der Befehl az webapp up die erforderlichen Ressourcen erstellt und Ihre Anwendung in einem einzigen Schritt bereitgestellt hat, können Sie mit dem nächsten Schritt fortfahren.
Da im vorherigen Schritt die erforderlichen Ressourcen erstellt und Ihre Anwendung in einem einzigen Schritt bereitgestellt wurden, können Sie mit dem nächsten Schritt fortfahren.
Sie können Ihren Anwendungscode aus einem lokalen Git-Repository in Azure bereitstellen, indem Sie ein Git-Remoterepository in Ihrem lokalen Repository konfigurieren, das auf das Repository verweist, in das Sie den Code pushen wollen. Die URL des Remoterepositorys und die Git-Anmeldeinformationen, die für die Konfiguration erforderlich sind, können entweder über das Azure-Portal oder mit der Azure-Befehlszeilenschnittstelle abgerufen werden.
Navigieren Sie zu der App Service-Instanz für Ihre Anwendung.
Geben Sie den Namen Ihrer App Service-Instanz in das Suchfeld oben auf dem Bildschirm ein.
Wählen Sie unter der Überschrift Ressourcen die App Service-Instanz aus, um zu ihr zu navigieren.
Auf der Seite für die App Service-Instanz:
Wählen Sie im Menü auf der linken Seite des Bildschirms Bereitstellungscenter aus.
Wählen Sie in der Dropdownliste mit der Bezeichnung Quelle die Option Git (lokal) aus.
Wählen Sie Speichern aus.
Nachdem Sie die Seite speichern, wird sie aktualisiert und wird die Adresse für das Git-Remoterepository anzeigen.
Kopieren Sie den Wert von Git-Klon-URI, da Sie diesen Wert in einem späteren Schritt zum Einrichten eines Git-Remoterepositorys verwenden.
Auf der Seite Bereitstellungscenter:
Navigieren Sie zur Registerkarte Lokale Git-/FTPS-Anmeldeinformationen.
Suchen Sie den Benutzernamen und das Kennwort des lokalen Gits unter den Anmeldeinformationen für den Anwendungsbereich.
Lassen Sie diesen Bildschirm geöffnet, damit Sie diese Anmeldeinformationen vorübergehend kopieren können, wenn Sie Ihren Code im Remoterepository bereitstellen. Kopieren Sie unbedingt den Benutzernamen des lokalen Gits, der mit einem $ beginnt, z. B $msdocs-python-webapp-quickstart-123.
Wenn Sie zum ersten Mal Code in das Git-Remoterepository pushen, werden diese Anmeldeinformationen für die Authentifizierung beim Remoterepository benötigt.
Konfigurieren Sie als Nächstes im Stammverzeichnis Ihrer Anwendung ein Git-Remoterepository, das auf Azure verweist, und verwenden Sie dabei die Git-URL des Azure-Remoterepositorys, die Sie in einem vorherigen Schritt abgerufen haben.
git remote add azure <git-deployment-url>
Sie können nun Code aus Ihrem lokalen Git-Repository mithilfe des soeben konfigurierten Git-Remoterepositorys an Azure pushen. Der Standardbereitstellungsbranch für App Service ist master, aber viele Git-Repositorys gehen von master weg und verwenden main. Sie können entweder die Zuordnung des lokalen Branchnamens zum Remotebranchnamen im Push angeben (wie unten dargestellt) oder Ihre DEPLOYMENT_BRANCH-App-Einstellung konfigurieren.
git push azure main:master
Wenn Sie zum ersten Mal Code an Azure pushen, werden Sie von Git zur Eingabe der Anmeldeinformationen für die Azure-Bereitstellung aufgefordert, die Sie in einem vorherigen Schritt abgerufen haben. Git speichert diese Anmeldeinformationen dann zwischen, sodass Sie sie bei nachfolgenden Bereitstellungen nicht erneut eingeben müssen.
Konfigurieren Sie zunächst mit dem Befehl az webapp deployment source das lokale Git-Repository als Bereitstellungsquelle für Ihre Web-App. Dieser Befehl wird die URL des Git-Remoterepositorys ausgeben, in das Sie Code pushen werden. Erstellen Sie eine Kopie dieses Wertes, da Sie ihn in einem späteren Schritt benötigen.
# Change these values to the ones used to create the App Service.
RESOURCE_GROUP_NAME='msdocs-python-webapp-quickstart'
APP_SERVICE_NAME='msdocs-python-webapp-quickstart-123'
az webapp deployment source config-local-git \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--output tsv
# Change these values to the ones used to create the App Service.
$RESOURCE_GROUP_NAME='msdocs-python-webapp-quickstart'
$APP_SERVICE_NAME='msdocs-python-webapp-quickstart-123'
az webapp deployment source config-local-git `
--name $APP_SERVICE_NAME `
--resource-group $RESOURCE_GROUP_NAME `
--output tsv
Rufen Sie die Anmeldeinformationen für die Bereitstellung Ihrer Anwendung ab. Git wird diese benötigen, um sich bei Azure zu authentifizieren, wenn Sie in einem späteren Schritt Code an Azure pushen.
Konfigurieren Sie als Nächstes im Stammverzeichnis Ihrer Anwendung ein Git-Remoterepository, das auf Azure verweist, und verwenden Sie dabei die Git-URL des Azure-Remoterepositorys, die Sie in einem vorherigen Schritt abgerufen haben.
git remote add azure <git-deployment-url>
Sie können nun Code aus Ihrem lokalen Git-Repository mithilfe des soeben konfigurierten Git-Remoterepositorys an Azure pushen. Der Standardbereitstellungsbranch für App Service ist master, aber viele Git-Repositorys gehen von master weg und verwenden main. Sie können entweder die Zuordnung des lokalen Branchnamens zum Remotebranchnamen im Push angeben (wie unten dargestellt) oder Ihre DEPLOYMENT_BRANCH-App-Einstellung konfigurieren.
git push azure main:master
Wenn Sie zum ersten Mal Code an Azure pushen, werden Sie von Git zur Eingabe der Anmeldeinformationen für die Azure-Bereitstellung aufgefordert, die Sie in einem vorherigen Schritt abgerufen haben. Git wird diese Anmeldeinformationen dann zwischenspeichern, sodass Sie diese bei nachfolgenden Bereitstellungen nicht erneut eingeben müssen.
Anwendungen können in Azure bereitgestellt werden, indem eine ZIP-Datei mit dem Anwendungscode erstellt und in Azure hochgeladen wird. ZIP-Dateien können mit der Azure-Befehlszeilenschnittstelle oder einem HTTP-Client wie cURL in Azure hochgeladen werden.
Aktivieren der Buildautomatisierung
Wenn Sie eine ZIP-Datei Ihres Python-Codes bereitstellen, müssen Sie ein Flag festlegen, um die Azure-Buildautomatisierung zu aktivieren. Die Buildautomatisierung installiert alle erforderlichen Anforderungen und Pakete, die für die Ausführung der Anwendung in Azure benötigt werden.
Sie aktivieren die Buildautomatisierung in Azure, indem Sie die App-Einstellung SCM_DO_BUILD_DURING_DEPLOYMENT entweder im Azure-Portal oder mithilfe der Azure-Befehlszeilenschnittstelle festlegen.
# Change these values to the ones used to create the App Service.
RESOURCE_GROUP_NAME='msdocs-python-webapp-quickstart'
APP_SERVICE_NAME='msdocs-python-webapp-quickstart-123'
az webapp config appsettings set \
--resource-group $RESOURCE_GROUP_NAME \
--name $APP_SERVICE_NAME \
--settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
# Change these values to the ones used to create the App Service.
$resourceGroupName='msdocs-python-webapp-quickstart'
$appServiceName='msdocs-python-webapp-quickstart-123'
az webapp config appsettings set `
--resource-group $resourceGroupName `
--name $appServiceName `
--settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
Erstellen einer ZIP-Datei Ihrer Anwendung
Erstellen Sie als Nächstes eine ZIP-Datei Ihrer Anwendung. Sie müssen nur die Komponenten der Anwendung selbst einschließen. Sie müssen keine Dateien oder Verzeichnisse einschließen, die mit einem Punkt (.) beginnen, z. B. .venv, .gitignore, .github oder .vscode.
Verwenden Sie unter Windows ein Programm wie 7-Zip, um eine ZIP-Datei zu erstellen, die zum Bereitstellen der Anwendung erforderlich ist.
Unter macOS oder Linux können Sie das integrierte Hilfsprogramm zip verwenden, um eine ZIP-Datei zu erstellen.
zip -r <file-name>.zip . -x '.??*'
Hochladen der ZIP-Datei in Azure
Nachdem Sie eine ZIP-Datei erstellt haben, können Sie die Datei entweder mithilfe der Azure-Befehlszeilenschnittstelle oder eines HTTP-Clients wie cURL in Azure hochladen.
# Change these values to the ones used to create the App Service.
RESOURCE_GROUP_NAME='msdocs-python-webapp-quickstart'
APP_SERVICE_NAME='msdocs-python-webapp-quickstart-123'
az webapp deploy \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--src-path <zip-file-path>
# Change these values to the ones used to create the App Service.
$resourceGroupName='msdocs-python-webapp-quickstart'
$appServiceName='msdocs-python-webapp-quickstart-123'
az webapp deploy `
--name $appServiceName `
--resource-group $resourceGroupName `
--src-path <zip-file-path>
Um cURL zum Hochladen Ihrer ZIP-Datei in Azure zu verwenden, benötigen Sie den Benutzernamen und das Kennwort für die Bereitstellung von Ihrer App Service-Instanz. Diese Anmeldeinformationen können über das Azure-Portal abgerufen werden.
Wählen Sie auf der Seite der Web-App im Menü auf der linken Seite die Option Bereitstellungscenter aus.
Wählen Sie die Registerkarte FTPS-Anmeldeinformationen aus.
Der Benutzername und das Kennwort werden unter der Überschrift Anwendungsbereich angezeigt. Verwenden Sie bei Bereitstellungen mit einer ZIP-Datei nur den Teil des Benutzernamens nach dem Zeichen \, der mit $ beginnt, z. B. $msdocs-python-webapp-quickstart-123. Diese Anmeldeinformationen werden im cURL-Befehl benötigt.
Führen Sie den folgenden Befehl curl aus, um Ihre ZIP-Datei in Azure hochzuladen und Ihre Anwendung bereitzustellen. Der Benutzername ist der in Schritt 3 abgerufene Benutzername für die Bereitstellung. Wenn dieser Befehl ausgeführt wird, werden Sie zur Eingabe des Kennworts für die Bereitstellung aufgefordert.
Schließen Sie für PowerShell unbedingt den Benutzernamen in einfache Anführungszeichen ein, damit PowerShell nicht versucht, den Benutzernamen als PowerShell-Variable zu interpretieren.
Basierend auf dem Vorhandensein bestimmter Dateien in einer Bereitstellung erkennt App Service automatisch, ob es sich bei einer App um eine Django- oder Flask-App handelt, und durchläuft für das Ausführen Standardschritte. Für Apps, die auf anderen Webframeworks wie FastAPI basieren, müssen Sie ein Startupskript für App Service konfigurieren, um diese auszuführen. Andernfalls führt App Service eine schreibgeschützte Standard-App aus, die sich im Ordner opt/defaultsite befindet.
App Service erkennt automatisch, wenn eine Flask-App vorhanden ist. Für diesen Schnellstart ist keine zusätzliche Konfiguration erforderlich.
App Service erkennt automatisch, wenn eine Django-App vorhanden ist. Für diesen Schnellstart ist keine zusätzliche Konfiguration erforderlich.
Für FastAPI müssen Sie einen benutzerdefinierten Startupbefehl für App Service konfigurieren, um Ihre App auszuführen. Der folgende Befehl startet Gunicorn mit zwei Uvicorn-Workerprozessen: gunicorn -w 2 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 main:app.
Konfigurieren Sie zunächst den Startupbefehl mithilfe des Befehls az webapp config set.
az webapp config set \
--startup-file "gunicorn -w 2 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 main:app" \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
Starten Sie als Nächstes die Web-App neu, indem Sie den Befehl az webapp restart verwenden.
az webapp restart \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
App Service erkennt automatisch, wenn eine Flask-App vorhanden ist. Für diesen Schnellstart ist keine zusätzliche Konfiguration erforderlich.
App Service erkennt automatisch, wenn eine Django-App vorhanden ist. Für diesen Schnellstart ist keine zusätzliche Konfiguration erforderlich.
Verwenden Sie die Azure CLI oder das Azure-Portal, um den Startupbefehl zu konfigurieren.
App Service erkennt automatisch, wenn eine Flask-App vorhanden ist. Für diesen Schnellstart ist keine zusätzliche Konfiguration erforderlich.
App Service erkennt automatisch, wenn eine Django-App vorhanden ist. Für diesen Schnellstart ist keine zusätzliche Konfiguration erforderlich.
Für FastAPI müssen Sie einen benutzerdefinierten Startupbefehl für App Service konfigurieren, um Ihre App auszuführen. Der folgende Befehl startet Gunicorn mit zwei Uvicorn-Workerprozessen: gunicorn -w 2 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 main:app.
Anweisungen
Screenshot
Konfigurieren Sie zunächst den Startupbefehl in Azure App Service. Navigieren Sie zur Seite für die App Service-Instanz im Azure-Portal.
Wählen Sie Konfigurations unter der Überschrift Einstellungen im Menü links auf der Seite aus.
Stellen Sie sicher, dass die Registerkarte Allgemeine Einstellungen ausgewählt ist.
Geben Sie im Feld Startupbefehlgunicorn -w 2 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 main:app ein.
Wählen Sie Speichern aus, um Ihre Änderungen zu speichern.
Warten Sie, bis die Benachrichtigung angezeigt wird, dass die Einstellungen aktualisiert werden, bevor Sie fortfahren.
Starten Sie die Web-App als Nächstes neu.
Wählen Sie Übersicht im Menü links auf der Seite aus.
Wählen Sie im oberen Menü Neu starten aus.
Navigieren zur App
Browsen Sie in Ihrem Webbrowser zur bereitgestellten Anwendung, indem Sie die URL http://<app-name>.azurewebsites.net verwenden. Wenn eine App-Standardseite angezeigt wird, warten Sie eine Minute, und aktualisieren Sie den Browser.
Der Python-Beispielcode führt einen Linux-Container in App Service mit einem integrierten Image aus.
Herzlichen Glückwunsch! Sie haben Ihre Python-App in App Service bereitgestellt.
Azure App Service erfasst die gesamte Nachrichtenausgabe an die Konsole, um Sie bei der Diagnose von Problemen mit Ihrer Anwendung zu unterstützen. Die Beispiel-Apps enthalten print()-Anweisungen, um diese Funktion zu veranschaulichen.
@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'))
def index(request):
print('Request for index page received')
return render(request, 'hello_azure/index.html')
@csrf_exempt
def hello(request):
if request.method == 'POST':
name = request.POST.get('name')
if name is None or name == '':
print("Request for hello page received with no name or blank name -- redirecting")
return redirect('index')
else:
print("Request for hello page received with name=%s" % name)
context = {'name': name }
return render(request, 'hello_azure/hello.html', context)
else:
@app.get("/", response_class=HTMLResponse)
async def index(request: Request):
print('Request for index page received')
return templates.TemplateResponse('index.html', {"request": request})
@app.get('/favicon.ico')
async def favicon():
file_name = 'favicon.ico'
file_path = './static/' + file_name
return FileResponse(path=file_path, headers={'mimetype': 'image/vnd.microsoft.icon'})
@app.post('/hello', response_class=HTMLResponse)
async def hello(request: Request, name: str = Form(...)):
if name:
print('Request for hello page received with name=%s' % name)
return templates.TemplateResponse('hello.html', {"request": request, 'name':name})
else:
print('Request for hello page received with no name or blank name -- redirecting')
return RedirectResponse(request.url_for("index"), status_code=status.HTTP_302_FOUND)
Sie können die Inhalte der App Service-Diagnoseprotokolle mithilfe der Azure CLI, VS Code oder dem Azure-Portal überprüfen.
Als Erstes müssen Sie mithilfe des Befehls az webapp log config Azure App Service so konfigurieren, dass Protokolle an das App Service-Dateisystem ausgegeben werden.
az webapp log tail \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
az webapp log tail `
--name $APP_SERVICE_NAME `
--resource-group $RESOURCE_GROUP_NAME
Aktualisieren Sie die Homepage in der App, oder versuchen Sie mit anderen Anforderungen, einige Protokollmeldungen zu generieren. Die Ausgabe sollte in etwa wie folgt aussehen:
Als Erstes müssen Sie das Streamen von Protokollen in Azure App Service aktivieren.
Klicken Sie im Abschnitt App Service der Erweiterung „Azure-Tools für VS Code“ mit der rechten Maustaste auf Ihre App Service-Instanz, und wählen Sie im Menü Start Streaming Logs (Streamen der Protokolle starten) aus.
Die Konsolenprotokolle werden im VS Code-Ausgabefenster angezeigt. Aktualisieren Sie die Homepage in der App, oder versuchen Sie mit anderen Anforderungen, einige Protokollmeldungen zu generieren.
Sie werden in der Ausgabe alle von Ihrer App generierten Protokollmeldungen sowie andere vom Dienst generierte Nachrichten sehen.
Anweisungen
Screenshot
Als Erstes müssen Sie das Streamen von Protokollen in Azure App Service aktivieren. Navigieren Sie zur Seite für die App Service-Instanz im Azure-Portal.
Wählen Sie im Menü auf der linken Seite unter der Überschrift Überwachung die Option App Service-Protokolle aus.
Ändern Sie die Eigenschaft Application Logging von Aus in Dateisystem.
Geben Sie für die Protokolle einen Aufbewahrungszeitraum von 30 Tagen ein.
Wählen Sie Speichern aus, um die Änderungen zu speichern.
Wählen Sie im Navigationsbereich auf der linken Seite im Abschnitt Überwachung die Option Protokollstream aus. Aktualisieren Sie die Homepage in der App, oder versuchen Sie mit anderen Anforderungen, einige Protokollmeldungen zu generieren.
Sie werden in der Ausgabe alle von Ihrer App generierten Protokollmeldungen und alle vom Dienst generierten Nachrichten sehen.
Wenn Sie mit der Beispiel-App fertig sind, können Sie alle Ressourcen für die App aus Azure entfernen. Das Entfernen der Ressourcengruppe stellt sicher, dass Ihnen keine zusätzlichen Kosten entstehen, und trägt dazu bei, dass Ihr Azure-Abonnement übersichtlich bleibt. Wenn Sie die Ressourcengruppe entfernen, werden auch alle Ressourcen in der Ressourcengruppe entfernt. Dies stellt die schnellste Möglichkeit dar, alle Azure-Ressourcen für Ihre App zu entfernen.
Löschen Sie die Ressourcengruppe mit dem Befehl az group delete.
az group delete \
--name msdocs-python-webapp-quickstart \
--no-wait
Mit dem Argument --no-wait kann für den Befehl die Rückgabe erfolgen, bevor der Vorgang abgeschlossen ist.
Anweisungen
Screenshot
In der Erweiterung „Azure-Tools für VS Code“:
Suchen Sie den Abschnitt RESSOURCEN.
Wählen Sie das Symbol Gruppieren nach aus, und wählen Sie Gruppieren nach Ressourcengruppe aus.
Suchen Sie in der Liste der Ressourcen nach der zu löschenden Ressourcengruppe, klicken Sie mit der rechten Maustaste darauf, und wählen Sie Ressourcengruppe löschen aus. Sie werden aufgefordert, den Löschvorgang zu bestätigen, indem Sie den Namen der Ressourcengruppe im Dialogfeld eingeben.
Führen Sie diese Schritte aus, während Sie beim Azure-Portal angemeldet sind, um eine Ressourcengruppe zu löschen.
Anweisungen
Screenshot
Navigieren Sie im Azure-Portal zur Ressourcengruppe.
Geben Sie den Namen Ihrer Ressourcengruppe auf der Suchleiste oben auf der Seite ein.
Wählen Sie unter der Überschrift Ressourcengruppen den Namen der Ressourcengruppe aus, um zu dieser zu navigieren.
Wählen Sie oben auf der Seite die Schaltfläche Ressourcengruppe löschen aus.
Geben Sie im Bestätigungsdialogfeld den Namen der Ressourcengruppe ein, um den Löschvorgang zu bestätigen. Wählen Sie Löschen aus, um die Ressourcengruppe zu löschen.