Configurare le impostazioni dell'applicazione

Completato

Nel servizio app le impostazioni dell'app sono variabili passate come variabili di ambiente al codice dell'applicazione. Per le app Linux e i contenitori personalizzati, il servizio app passa le impostazioni dell'app al contenitore usando il flag --env per impostare la variabile di ambiente nel contenitore.

È possibile accedere alle impostazioni dell'applicazione passando alla pagina di gestione dell'app e selezionando Variabili di ambiente > Impostazioni applicazione.

Passaggio a Variabili di ambiente > Impostazioni applicazione

Per gli sviluppatori di ASP.NET e ASP.NET Core, per definire le impostazioni dell'app nel servizio app si procede in modo simile a quando vengono impostate in <appSettings> in Web.config o appsettings.json, ma i valori nel servizio app sostituiscono quelli in Web.config o appsettings.json. È possibile mantenere le impostazioni di sviluppo, ad esempio la password di MySQL locale, in Web.config o appsettings.json e tenere al sicuro i segreti di produzione, ad esempio la password del database MySQL di Azure, nel servizio app. Lo stesso codice usa le impostazioni di sviluppo quando si esegue il debug in locale e usa i segreti di produzione per la distribuzione in Azure.

Le impostazioni dell'app vengono sempre crittografate quando sono archiviate (crittografia dei dati inattivi).

Aggiunta e modifica di impostazioni

Per aggiungere una nuova impostazione dell'app, selezionare + Aggiungi. Se si usano slot di distribuzione, è possibile specificare se l'impostazione è scambiabile o meno. Nella finestra di dialogo è possibile mantenere l'impostazione sullo slot corrente.

Selezionare l'impostazione dello slot di distribuzione per mantenere l'impostazione sullo slot corrente.

Al termine, selezionare Applica. Non dimenticare di selezionare Applica nella pagina Variabili di ambiente.

Nota

In un servizio app Linux predefinito o un contenitore Linux personalizzato, qualsiasi struttura di chiave JSON annidata nel nome dell'impostazione dell'app, ad esempio ApplicationInsights:InstrumentationKey, deve essere configurata nel servizio app come ApplicationInsights__InstrumentationKey per il nome della chiave. In altre parole, qualsiasi elemento : deve essere sostituito da __ (doppia sottolineatura). Tutti i punti nel nome dell'impostazione dell'app saranno sostituiti con un _ (singolo carattere di sottolineatura).

Modifica delle impostazioni applicazione in blocco

Per aggiungere o modificare le impostazioni dell'app in blocco, selezionare il pulsante Modifica avanzata modifica. Al termine selezionare OK. Non dimenticare di selezionare Applica nella pagina Variabili di ambiente. Le impostazioni dell'app hanno la formattazione JSON seguente:

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

Configurazione delle stringhe di connessione

Per gli sviluppatori di ASP.NET e ASP.NET Core, per impostare le stringhe di connessione nel servizio app si procede in modo simile a quando vengono impostate in <connectionStrings> in Web.config, ma i valori nel servizio app sostituiscono quelli in Web.config. Per gli altri stack di linguaggio, è preferibile usare invece le impostazioni dell'app perché le stringhe di connessione richiedono una formattazione speciale nelle chiavi delle variabili per accedere ai valori.

Suggerimento

Esiste un caso in cui è possibile usare le stringhe di connessione invece delle impostazioni dell'app per linguaggi diversi da .NET: alcuni tipi di database di Azure vengono sottoposti a backup insieme all'app solo se si configura una stringa di connessione per il database nell'app del servizio app.

L'aggiunta e la modifica delle stringhe di connessione seguono gli stessi principi delle altre impostazioni dell'app e possono anche essere collegate agli slot di distribuzione. Un esempio di stringhe di connessione in formato JSON che è possibile usare per l'aggiunta o la modifica in blocco:

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

Nota

Le app .NET destinate a PostgreSQL devono impostare la stringa di connessione su Personalizzata come soluzione alternativa per un problema noto in .NET EnvironmentVariablesConfigurationProvider.

Configurare le variabili di ambiente per contenitori personalizzati

Il contenitore personalizzato potrebbe usare variabili di ambiente che devono essere fornite esternamente. È possibile passarle tramite Cloud Shell. In Bash:

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

In PowerShell:

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

Quando l'app viene eseguita, le impostazioni dell'app Servizio app vengono inserite automaticamente nel processo come variabili di ambiente. È possibile verificare le variabili di ambiente del contenitore con l'URL https://<app-name>.scm.azurewebsites.net/Env.