Konfigurieren von Anwendungseinstellungen

Abgeschlossen

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.

Sie können auf die Anwendungseinstellungen zugreifen, indem Sie zur Verwaltungsseite Ihrer App navigieren und Umgebungsvariablen > Anwendungseinstellungen auswählen.

Navigieren zu „Umgebungsvariablen“ > „Anwendungseinstellungen“

Für ASP.NET- und ASP.NET Core-Entwickler:innen entspricht die Festlegung von App-Einstellungen in App Service der Festlegung in <appSettings> in den Dateien Web.config oder appsettings.json, aber die Werte in App Service setzen die in Web.config oder appsettings.json außer Kraft. 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.

App-Einstellungen werden bei der Speicherung stets verschlüsselt (encrypted-at-rest).

Hinzufügen und Bearbeiten von Einstellungen

Um eine neue App-Einstellung hinzuzufügen, wählen Sie + Hinzufügen aus. Wenn Sie Bereitstellungsslots verwenden, können Sie angeben, ob Ihre Einstellung austauschbar ist oder nicht. Im Dialogfeld können Sie die Einstellung im aktuellen Slot beibehalten.

Auswählen der Bereitstellungssloteinstellung, um die Einstellung auf den aktuellen Slot festzulegen

Wählen Sie abschließend Anwenden aus. Vergessen Sie nicht, Anwenden auszuwählen, wenn Sie sich wieder auf der Seite Umgebungsvariablen befinden.

Hinweis

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.

Massenbearbeitung von Anwendungseinstellungen

Um App-Einstellungen massenhaft hinzuzufügen oder zu bearbeiten, wählen Sie zum die Bearbeitungsschaltfläche Erweitert aus. 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:

[
  {
    "name": "<key-1>",
    "value": "<value-1>",
    "slotSetting": false
  },
  {
    "name": "<key-2>",
    "value": "<value-2>",
    "slotSetting": false
  },
  ...
]

Konfigurieren von Verbindungszeichenfolgen

Für ASP.NET- und ASP.NET Core-Entwickler:innen entspricht die Einstellung von Verbindungszeichenfolgen in App Service der Einstellung in <connectionStrings> in der Datei Web.config, aber die Werte, die Sie in App Service festlegen, setzen die in Web.config außer Kraft. Für andere Sprachstapel sollten Sie stattdessen App-Einstellungen verwenden, da Verbindungszeichenfolgen spezielle Formatierung in den Variablenschlüsseln erfordern, um auf die Werte zuzugreifen.

Tipp

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.

Das Hinzufügen und Bearbeiten von Verbindungszeichenfolgen entspricht den gleichen Prinzipien wie andere App-Einstellungen, und diese können auch an Bereitstellungsslots gebunden werden. Ein Beispiel für Verbindungszeichenfolgen im JSON-Format, die Sie zum massenhaften Hinzufügen oder Bearbeiten verwenden würden:

[
  {
    "name": "name-1",
    "value": "conn-string-1",
    "type": "SQLServer",
    "slotSetting": false
  },
  {
    "name": "name-2",
    "value": "conn-string-2",
    "type": "PostgreSQL",
    "slotSetting": false
  },
  ...
]

Hinweis

.NET-Apps für PostgreSQL sollten die Verbindungszeichenfolge auf Benutzerdefiniert festlegen, um ein bekanntes Problem in „.NET EnvironmentVariablesConfigurationProvider“ zu umgehen.

Konfigurieren von Umgebungsvariablen für benutzerdefinierte Container

Ihr benutzerdefinierter Container verwendet möglicherweise Umgebungsvariablen, die extern bereitgestellt werden müssen. Sie können sie über die Cloud Shell übergeben. In Bash:

az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings key1=value1 key2=value2

PowerShell:

Set-AzWebApp -ResourceGroupName <group-name> -Name <app-name> -AppSettings @{"DB_HOST"="myownserver.mysql.database.azure.com"}

Wenn Ihre App ausgeführt wird, werden die Einstellungen der App Service-App automatisch als Umgebungsvariablen in den Prozess eingefügt. Sie können Containerumgebungsvariablen mit der URL https://<app-name>.scm.azurewebsites.net/Env überprüfen.