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 Artikel wird erläutert, wie Sie allgemeine Einstellungen für Web-Apps, ein mobiles Back-End oder eine API-App konfigurieren. Informationen zu Azure Functions finden Sie unter Referenz zu App-Einstellungen für Azure Functions.
Konfigurieren von App-Einstellungen
Hinweis
Namen von App-Einstellungen dürfen nur Buchstaben, Ziffern (0–9), Punkte („.“) und Unterstriche („_“) enthalten.
Sonderzeichen im Wert einer App-Einstellung müssen je nach Anforderungen des Zielbetriebssystems mit Escapezeichen versehen werden.
Um beispielsweise eine Umgebungsvariable in App Service unter Linux mit dem Wert "pa$$w0rd\" festzulegen, sollte die Zeichenfolge für die App-Einstellung wie folgt lauten: "pa\$\$w0rd\\".
In App Service handelt es sich bei App-Einstellungen um Variablen, die als Umgebungsvariablen an den Anwendungscode übergeben werden. Bei Linux-Apps und benutzerdefinierten Containern übergibt App Service mithilfe des Flags --env App-Einstellungen an den Container, um die Umgebungsvariable im Container festzulegen. In beiden Fällen werden sie beim Start der App in Ihre App-Umgebung eingeschleust. Wenn Sie App-Einstellungen hinzufügen, entfernen oder bearbeiten, löst App Service einen App-Neustart aus.
Für ASP.NET- und ASP.NET Core-Entwickler entspricht die Festlegung von App-Einstellungen in App Service der Festlegung in <appSettings> in Web.config oder appsettings.json, aber die Werte in App Service überschreiben die in Web.config oder appsettings.json. Sie können Entwicklungseinstellungen (z. B. das lokale MySQL-Kennwort) in Web.config oder appsettings.json und Produktionsgeheimnisse (z. B. das Azure MySQL-Datenbank-Kennwort) sicher in App Service speichern. Der gleiche Code verwendet Ihre Entwicklungseinstellungen, wenn Sie lokal debuggen, und verwendet Ihre Produktionsgeheimnisse, wenn sie in Azure bereitgestellt werden.
Andere Sprachstapel erhalten die App-Einstellungen ebenfalls als Umgebungsvariablen zur Laufzeit. Sprachstapelspezifische Schritte finden Sie unter:
App-Einstellungen werden bei der Speicherung stets verschlüsselt (encrypted-at-rest).
Hinweis
Wenn Sie Geheimnisse in App-Einstellungen speichern, sollten Sie Key Vault-Verweise verwenden. Wenn Ihre Geheimnisse für die Verbindung zu Back-End-Ressourcen bestimmt sind, sollten Sie sicherere Verbindungsoptionen in Betracht ziehen, die überhaupt keine Geheimnisse erfordern. Weitere Informationen finden Sie unter Sichere Konnektivität mit Azure-Diensten und -Datenbanken aus Azure App Service.
Suchen Sie im Azure-Portal die Option App Services, wählen Sie sie aus, und wählen Sie anschließend Ihre App aus.
Wählen Sie im linken Menü der App Umgebungsvariablen>App-Einstellungen aus.
Standardmäßig werden Werte für App-Einstellungen aus Sicherheitsgründen im Portal ausgeblendet. Wählen Sie zum Anzeigen eines ausgeblendeten Werts einer App-Einstellung das zugehörige Wert-Feld aus. Wählen Sie zum Anzeigen der ausgeblendeten Werte aller App-Einstellungen die Schaltfläche Werte anzeigen aus.
Um eine neue App-Einstellung hinzuzufügen, wählen Sie Hinzufügen aus. Um eine Einstellung zu bearbeiten, klicken Sie auf die Einstellung.
In einem standardmäßigen Linux-App Service oder einem benutzerdefinierten Linux-Container muss jede geschachtelte JSON-Schlüsselstruktur im App-Einstellungsnamen wie ApplicationInsights:InstrumentationKey in App Service als ApplicationInsights__InstrumentationKey für den Schlüsselnamen konfiguriert werden. Mit anderen Worten: Jedes : muss durch __ (doppelter Unterstrich) ersetzt werden. Alle Punkte im Namen der App-Einstellung werden durch einen _ (einzelnen Unterstrich) ersetzt.
Wählen Sie abschließend Anwenden aus. Vergessen Sie nicht, Anwenden auszuwählen, wenn Sie sich wieder auf der Seite Umgebungsvariablen befinden.
Dieses Cmdlet ersetzt die gesamten App-Einstellungen durch die von Ihnen angegebenen Einstellungen. Schließen Sie die vorhandenen App-Einstellungen mithilfe des Cmdlets Get-AzWebApp in die Eingabehashtabelle ein, um eine App-Einstellung innerhalb eines vorhandenen Satzes hinzuzufügen oder zu bearbeiten. Beispiel:
# Get app configuration
$webapp=Get-AzWebApp -ResourceGroupName <group-name> -Name <app-name>
# Copy app settings to a new Hashtable
$appSettings = @{}
ForEach ($item in $webapp.SiteConfig.AppSettings) {
$appSettings[$item.Name] = $item.Value
}
# Add or edit one or more app settings
$appSettings['<setting-name1>'] = '<value1>'
$appSettings['<setting-name2>'] = '<value2>'
# Save changes
Set-AzWebApp -ResourceGroupName <group-name> -Name <app-name> -AppSettings $appSettings
Wählen Sie die Schaltfläche Erweiterte Bearbeitung aus. Bearbeiten Sie die Einstellungen im Textbereich. Wenn Sie fertig sind, wählen Sie OK aus. Vergessen Sie nicht, Anwenden auszuwählen, wenn Sie sich wieder auf der Seite Umgebungsvariablen befinden.
App-Einstellungen haben folgende JSON-Formatierung:
Der Einfachheit halber können Sie vorhandene Einstellungen mit az webapp config appsettings list in einer JSON-Datei speichern. Das folgende Beispiel kann in Bash ausgeführt werden.
# Save the settings
az webapp config appsettings list --name <app-name> --resource-group <group-name> > settings.json
# Edit the JSON file
...
# Update the app with the JSON file
az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings @settings.json
Es ist nicht möglich, App-Einstellungen in Massen zu bearbeiten, indem Sie eine JSON-Datei mit Azure PowerShell verwenden.
Für ASP.NET- und ASP.NET Core-Entwickler entspricht die Einstellung von Verbindungszeichenfolgen in App Service der Einstellung in <connectionStrings> in Web.config, aber die Werte, die Sie in App Service festlegen, überschreiben die in Web.config. Sie können Entwicklungseinstellungen (z. B. eine Datenbankdatei) in Web.config und Produktionsgeheimnisse (z. B. SQL-Datenbank-Anmeldeinformationen) sicher in App Service beibehalten. Der gleiche Code verwendet Ihre Entwicklungseinstellungen, wenn Sie lokal debuggen, und verwendet Ihre Produktionsgeheimnisse, wenn sie in Azure bereitgestellt werden.
Für andere Sprachstapel sollten Sie stattdessen besser App-Einstellungen verwenden, da Verbindungszeichenfolgen spezielle Formatierung in den Variablenschlüsseln erfordern, um auf die Werte zuzugreifen.
Hinweis
In einem Fall sollten Sie Verbindungszeichenfolgen anstelle von App-Einstellungen für Nicht-.NET-Sprachen verwenden: bestimmte Azure-Datenbanktypen werden nur dann, wenn Sie eine Verbindungszeichenfolge für die Datenbank in Ihrer App Service-App konfigurieren, zusammen mit der App gesichert. Weitere Informationen finden Sie unter Erstellen eines benutzerdefinierten Backups. Wenn Sie diese automatisierte Sicherung nicht benötigen, verwenden Sie App-Einstellungen.
Zur Laufzeit stehen Verbindungszeichenfolgen als Umgebungsvariablen zur Verfügung, wobei sie mit Präfixen für die folgenden Verbindungstypen versehen werden:
Wenn beispielsweise eine MySQL-Verbindungszeichenfolge connectionstring1 heißt, kann sie über die Umgebungsvariable MYSQLCONNSTR_connectionString1 aufgerufen werden. Sprachstapelspezifische Schritte finden Sie unter:
Suchen Sie im Azure-Portal die Option App Services, wählen Sie sie aus, und wählen Sie anschließend Ihre App aus.
Wählen Sie im linken Menü der App Umgebungsvariablen>Verbindungszeichenfolgen aus.
Standardmäßig werden Werte für Verbindungszeichenfolgen aus Sicherheitsgründen im Portal ausgeblendet. Wählen Sie zum Anzeigen eines ausgeblendeten Werts einer Verbindungszeichenfolge das zugehörige Wert-Feld aus. Wählen Sie zum Anzeigen der ausgeblendeten Werte aller Verbindungszeichenfolgen die Schaltfläche Wert anzeigen aus.
Um eine neue Verbindungszeichenfolge hinzuzufügen, wählen Sie Hinzufügen aus. Zum Bearbeiten einer Verbindungszeichenfolge wählen Sie die Verbindungszeichenfolge aus.
az webapp config connection-string set --name <app-name> --resource-group <group-name> --connection-string-type <type> --settings <string-name>='<value>'
Ersetzen Sie <string-name> durch den Namen der Verbindungszeichenfolge und <value> durch den Wert, der ihr zugewiesen werden soll. Mögliche Werte von <type> (z. B. SQLAzure) finden Sie in der CLI-Dokumentation zur Befehlszeilenschnittstelle.
Jede Verbindungszeichenfolge enthält einen Namen (<string-name1>), einen Wert (<connection-string1>) und den Typ, bei dem es sich um einen numerischen Wert handelt, der einem der ConnectionStringType-Enumerationsfelder entspricht. Geben Sie beispielsweise für SQL Azure type="2" an.
Dieses Cmdlet ersetzt die gesamten Verbindungszeichenfolgen durch die von Ihnen angegebenen. Schließen Sie die vorhandenen App-Einstellungen mithilfe des Cmdlets Get-AzWebApp in die Eingabehashtabelle ein, um eine App-Einstellung innerhalb eines vorhandenen Satzes hinzuzufügen oder zu bearbeiten. Beispiel:
# Get app configuration
$webapp=Get-AzWebApp -ResourceGroupName <group-name> -Name <app-name>
# Copy connection strings to a new hashtable
$connStrings = @{}
ForEach ($item in $webapp.SiteConfig.ConnectionStrings) {
$connStrings[$item.Name] = @{value=$item.ConnectionString; type=$item.Type.ToString()}
}
# Add or edit one or more connection strings
$connStrings['<string-name1>'] = @{value='<connection-string1>', type='<type>'}
$connStrings['<string-name2>'] = @{value='<connection-string2>', type='<type>'}
# Save changes
Set-AzWebApp -ResourceGroupName <group-name> -Name <app-name> -ConnectionStrings $connStrings
Verwenden Sie Get-AzWebAppSlotConfigName, um zu überprüfen, ob eine Verbindungszeichenfolge slotspezifisch ist:
Wählen Sie die Schaltfläche Erweiterte Bearbeitung aus. Bearbeiten Sie die Verbindungszeichenfolgen im Textbereich. Wählen Sie abschließend Anwenden aus. Vergessen Sie nicht, Anwenden auszuwählen, wenn Sie sich wieder auf der Seite Umgebungsvariablen befinden.
Verbindungszeichenfolgen haben folgende JSON-Formatierung:
Der Einfachheit halber können Sie vorhandene Verbindungszeichenfolgen mit az webapp config connection-string list in einer JSON-Datei speichern. Das folgende Beispiel kann in Bash ausgeführt werden.
# Save the connection strings
az webapp config connection-string list --resource-group <group-name> --name <app-name> > settings.json
# Edit the JSON file
...
# Update the app with the JSON file
az webapp config connection-string set --resource-group <group-name> --name <app-name> --settings @settings.json
Es ist nicht möglich, Verbindungszeichenfolgen in Massen zu bearbeiten, indem Sie eine JSON-Datei mit Azure PowerShell verwenden.
Suchen Sie im Azure-Portal die Option App Services, wählen Sie sie aus, und wählen Sie anschließend Ihre App aus. Wählen Sie im linken Menü der App Konfiguration>Allgemeine Einstellungen aus.
Hier können Sie einige allgemeine Einstellungen für die App konfigurieren. Einige Einstellungen erfordern das Hochskalieren auf höhere Tarife.
Stapeleinstellungen: Der Softwarestapel zum Ausführen der App, einschließlich der Sprach- und SDK-Version.
Für Linux-Apps können Sie die Sprachlaufzeitversion auswählen und einen optionalen Startbefehl oder eine Startbefehlsdatei festlegen.
Plattformeinstellungen: Ermöglicht das Konfigurieren von Einstellungen für die Hostingplattform, einschließlich:
Plattformbitanzahl: 32-Bit oder 64-Bit. Nur für Windows-Apps.
FTP-Zustand: Lassen Sie nur FTPS zu, oder deaktivieren Sie FTP vollständig.
HTTP-Version: Legen Sie die Einstellung auf 2.0 fest, um die Unterstützung für das HTTPS/2-Protokoll zu aktivieren.
Hinweis
Die aktuellen Browser unterstützen das HTTP/2-Protokoll in der Regel nur über TLS, während unverschlüsselter Datenverkehr weiterhin HTTP/1.1 verwendet. Um sicherzustellen, dass Clientbrowser eine Verbindung mit Ihrer App mit HTTP/2 herstellen, sichern Sie Ihren benutzerdefinierten DNS-Namen. Weitere Informationen finden Sie unter Schützen eines benutzerdefinierten DNS-Namens mit einer TLS/SSL-Bindung in Azure App Service.
Always On: Hält die App auch dann geladen, wenn kein Datenverkehr stattfindet. Wenn Always On nicht aktiviert ist (Standard), wird die App nach 20 Minuten ohne eingehende Anforderungen entladen. Die entladene App kann aufgrund ihrer Aufwärmzeit zu hoher Latenz für neue Anforderungen führen. Wenn Always On aktiviert ist, sendet der Front-End-Lastenausgleich alle fünf Minuten eine GET-Anforderung an den Anwendungsstamm. Es ist wichtig, dass diese Anforderung eine Antwort vom Typ „200 OK“ erhält, um sicherzustellen, dass alle Reimagingvorgänge ordnungsgemäß ausgeführt werden. Der fortlaufende Ping verhindert, dass die App entladen wird.
AlwaysOn ist für fortlaufende WebJobs oder WebJobs, die mithilfe eines CRON-Ausdrucks ausgelöst werden, erforderlich.
Sitzungsaffinität: In einer Bereitstellung mit mehreren Instanzen stellen Sie sicher, dass der Client für die Lebensdauer der Sitzung an dieselbe Instanz weitergeleitet wird. Sie können für zustandslose Anwendungen für diese Option Aus festlegen.
Proxy für Sitzungsaffinität: Der Proxy für die Sitzungsaffinität kann aktiviert werden, wenn sich Ihre App hinter einem Reverseproxy (z. B. Azure Application Gateway oder Azure Front Door) befindet und Sie den Standardhostnamen verwenden. Die Domäne für das Cookie für die Sitzungsaffinität richtet sich nach dem weitergeleiteten Hostnamen vom Reverseproxy.
Nur HTTPS: Wenn aktiviert, wird der gesamte HTTP-Datenverkehr an HTTPS umgeleitet.
Mindest-TLS-Version: Wählen Sie die Mindestversion der TLS-Verschlüsselung aus, die für Ihre App erforderlich ist.
Debuggen: Aktivieren Sie das Remotedebuggen für ASP.NET-, ASP.NET Core- oder Node.js-Apps. Diese Option wird nach 48 Stunden automatisch deaktiviert.
Sie können viele der gängigen konfigurierbaren Optionen mit az webapp config set festlegen. Das folgende Beispiel zeigt eine Teilmenge der konfigurierbaren Optionen.
az webapp config set --resource-group <group-name> --name <app-name> --use-32bit-worker-process [true|false] --web-sockets-enabled [true|false] --always-on [true|false]--http20-enabled --auto-heal-enabled [true|false] --remote-debugging-enabled [true|false] --number-of-workers
Verwenden Sie zum Anzeigen der vorhandenen Einstellungen den Befehl az webapp config show.
Sie können viele der gängigen konfigurierbaren Optionen mit Set-AzWebApp festlegen. Das folgende Beispiel zeigt eine Teilmenge der konfigurierbaren Optionen.
Verwenden Sie zum Anzeigen der vorhandenen Einstellungen den Befehl Get-AzWebApp.
Konfigurieren von Standarddokumenten
Diese Einstellung gilt nur für Windows-Apps.
Das Standarddokument ist die Webseite, die unter der Stamm-URL einer App Service-App angezeigt wird. Die erste übereinstimmende Datei in der Liste wird verwendet. Wenn die App Module verwendet, die auf Grundlage der URL weiterleiten, anstatt statischen Inhalt bereitzustellen, besteht keine Notwendigkeit für Standarddokumente.
Suchen Sie im Azure-Portal die Option App Services, wählen Sie sie aus, und wählen Sie anschließend Ihre App aus.
Wählen Sie im linken Menü der App Konfiguration>Standarddokumente aus.
Wählen Sie zum Hinzufügen eines Standarddokuments die Option Neues Dokument aus. Wählen Sie zum Entfernen eines Standarddokuments rechts neben dem Dokument Löschen aus.
Standardmäßig startet App Service die App aus dem Stammverzeichnis des App-Codes. Manche Webframeworks starten jedoch nicht im Stammverzeichnis. Laravel startet beispielsweise im Unterverzeichnis public. Auf eine solche App kann zwar z. B. unter http://contoso.com/public zugegriffen werden, normalerweise empfiehlt es sich aber, http://contoso.com stattdessen an das Verzeichnis public weiterzuleiten. Wenn sich die Startdatei der App in einem anderen Ordner befindet oder das Repository über mehrere Anwendungen verfügt, können Sie virtuelle Anwendungen und Verzeichnisse bearbeiten oder hinzufügen.
Wichtig
Das Feature für ein virtuelles Verzeichnis in einem physischen Pfad ist nur in Windows-Apps verfügbar.
Suchen Sie im Azure-Portal die Option App Services, wählen Sie sie aus, und wählen Sie anschließend Ihre App aus.
Wählen Sie im linken Menü der App Konfiguration>Pfadzuordnungen aus.
Wählen Sie Neue virtuelle Anwendung oder neues virtuelles Verzeichnis aus.
Wenn Sie ein virtuelles Verzeichnis einem physischen Pfad zuordnen möchten, lassen Sie das Kontrollkästchen Verzeichnis aktiviert. Geben Sie das virtuelle Verzeichnis und den entsprechenden relativen (physischen) Pfad zum Stammverzeichnis der Website an (D:\home).
Wenn Sie ein virtuelles Verzeichnis als Webanwendung markieren möchten, deaktivieren Sie das Kontrollkästchen Verzeichnis.
Wählen Sie OK aus. Vergessen Sie nicht, Speichern auf der Seite Konfiguration auszuwählen.
Im folgenden Beispiel wird der Stammpfad / auf das Unterverzeichnis public (das für Laravel funktioniert) festgelegt und außerdem eine zweite virtuelle Anwendung am Pfad /app2 hinzugefügt. Um sie auszuführen, erstellen Sie eine Datei namens json.txt mit folgenden Inhalten.
Ändern Sie <group-name> und <app-name> für Ihre Ressourcen und führen Sie den folgenden Befehl aus. Achten Sie beim Ausführen dieses Befehls auf Escapezeichen. Weitere Informationen zu Escapezeichen finden Sie unter Tipps zur erfolgreichen Verwendung der Azure CLI.
Im folgenden Beispiel wird der Stammpfad / auf das Unterverzeichnis public (das für Laravel funktioniert) festgelegt und außerdem eine zweite virtuelle Anwendung am Pfad /app2 hinzugefügt. Zum Ausführen ändern Sie <group-name> und <app-name>.
$webapp=Get-AzWebApp -ResourceGroupName <group-name> -Name <app-name>
# Set default / path to public subdirectory
$webapp.SiteConfig.VirtualApplications[0].PhysicalPath= "site\wwwroot\public"
# Add a virtual application
$virtualApp = New-Object Microsoft.Azure.Management.WebSites.Models.VirtualApplication
$virtualApp.VirtualPath = "/app2"
$virtualApp.PhysicalPath = "site\wwwroot\app2"
$virtualApp.PreloadEnabled = $false
$webapp.SiteConfig.VirtualApplications.Add($virtualApp)
# Save settings
Set-AzWebApp $webapp
Konfigurieren von Handlerzuordnungen
Für Windows-Apps können Sie die IIS-Handlerzuordnungen und virtuelle Anwendungen und Verzeichnisse anpassen. Mit Handlerzuordnungen können Sie benutzerdefinierte Skriptprozessoren hinzufügen, die Anforderungen für bestimmte Dateierweiterungen verarbeiten.
So fügen Sie einen benutzerdefinierten Handler hinzu
Suchen Sie im Azure-Portal die Option App Services, wählen Sie sie aus, und wählen Sie anschließend Ihre App aus.
Wählen Sie im linken Menü der App Konfiguration>Pfadzuordnungen aus.
Wählen Sie Neue Handlerzuordnung aus. Konfigurieren Sie den Handler folgendermaßen:
Erweiterung. Die Dateierweiterung, die Sie verarbeiten möchten, z. B. *.php oder handler.fcgi.
Skriptprozessor. Der absolute Pfad des Skriptprozessors zu Ihnen. Anforderungen für Dateien, die dieser Dateierweiterung entsprechen, werden vom Skriptprozessor verarbeitet. Verwenden Sie den Pfad D:\home\site\wwwroot , um auf das Stammverzeichnis Ihrer App zu verweisen.
Argumente. Optionale Befehlszeilenargumente für den Skriptprozessor.
Wählen Sie OK aus. Vergessen Sie nicht, Speichern auf der Seite Konfiguration auszuwählen.
Konfigurieren eines benutzerdefinierten Containers
Erstellen von End-to-End-Lösungen in Microsoft Azure zum Erstellen von Azure Functions-Lösungen, Implementieren und Verwalten von Web-Apps, Entwickeln von Lösungen mit Azure Storage u. v. m.