Configurare un'app del servizio app

Nota

A partire dal 1° giugno 2024, tutte le app del servizio app appena create avranno la possibilità di generare un nome host predefinito univoco usando la convenzione di denominazione <app-name>-<random-hash>.<region>.azurewebsites.net. I nomi delle app esistenti rimarranno invariati.

Esempio: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Per altri dettagli, fare riferimento a Nome host predefinito univoco per la risorsa del servizio app.

Questo articolo illustra come configurare le impostazioni comuni per le app Web, il back-end per dispositivi mobili o l'app per le API. Per Funzioni di Azure, vedere Informazioni di riferimento sulle impostazioni dell'app per Funzioni di Azure.

Configurare le impostazioni applicazione

Nota

  • I nomi delle impostazioni dell'app possono contenere solo lettere, numeri (0-9), punti (".") e caratteri di sottolineatura ("_")
  • I caratteri speciali nel valore di un'impostazione dell'app devono essere preceduti da un carattere di escape in base alle esigenze del sistema operativo di destinazione

Ad esempio, per impostare una variabile di ambiente del servizio app in Linux con il valore "pa$$w0rd\" la stringa per l'impostazione dell'app deve essere: "pa\$\$w0rd\\"

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. In entrambi i casi, vengono inseriti nell'ambiente dell'app all'avvio dell'app. Quando si aggiungono, rimuovono o modificano le impostazioni dell'app, il servizio app attiva il riavvio dell'app.

Per gli sviluppatori di ASP.NET e ASP.NET Core, la configurazione delle impostazioni dell'app nel servizio app è simile all'impostazione 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.

Altri stack di linguaggio, analogamente, ottengono le impostazioni dell'app come variabili di ambiente in fase di runtime. Per i passaggi specifici dello stack di linguaggio, vedere:

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

Nota

Se si archiviano segreti nelle impostazioni dell'app, è consigliabile usare i riferimenti a Key Vault. Se i segreti sono destinati alla connettività alle risorse back-end, prendere in considerazione opzioni di connettività più sicure che non richiedono segreti. Per altre informazioni, vedere Proteggere la connettività ai servizi e ai database di Azure dal servizio app Azure.

  1. Nel portale di Azure cercare e selezionare Servizi app, quindi selezionare la propria app.

    Ricerca di Servizi app

  2. Nel menu a sinistra dell'app selezionare Variabili di ambiente>Impostazioni app.

    Screenshot che mostra come passare alla pagina Impostazioni app.

    Per impostazione predefinita, i valori per le impostazioni app sono nascosti nel portale per motivi di sicurezza. Per visualizzare un valore nascosto di un'impostazione dell'app, selezionare il relativo campo Valore. Per visualizzare i valori nascosti di tutte le impostazioni dell'app, selezionare il pulsante Mostra valori.

  3. Per aggiungere una nuova impostazione dell'app, selezionare Aggiungi. Per modificare un'impostazione, fare clic sull'impostazione.

  4. Nella finestra di dialogo è possibile attaccare l'impostazione allo slot corrente.

    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).

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

Modificare le impostazioni dell'app in blocco

Selezionare il pulsante Modifica avanzata. Modificare le impostazioni nell'area di testo. 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

Nota

Prendere in considerazione opzioni di connettività più sicure che non richiedono affatto segreti di connessione. Per altre informazioni, vedere Proteggere la connettività ai servizi e ai database di Azure dal servizio app Azure.

Per gli sviluppatori ASP.NET e ASP.NET Core, l'impostazione delle stringhe di connessione nel servizio app equivale all'impostazione in <connectionStrings> in Web.config, ma i valori impostati nel servizio app sostituiscono quelli in Web.config. È possibile mantenere le impostazioni di sviluppo (ad esempio un file di database) in Web.config e segreti di produzione (ad esempio, credenziali del database SQL) in modo sicuro 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.

Per altri stack di linguaggi, è preferibile usare le impostazioni dell'app, perché le stringhe di connessione richiedono una formattazione speciale nelle chiavi delle variabili per accedere ai valori.

Nota

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. Per altre informazioni, vedere Creare un backup personalizzato. Se non è necessario questo backup automatizzato, usare le impostazioni dell'app.

In fase di runtime, le stringhe di connessione sono disponibili come variabili di ambiente, precedute dai tipi di connessione seguenti:

  • SQLServer: SQLCONNSTR_
  • MySQL: MYSQLCONNSTR_
  • SQLAzure: SQLAZURECONNSTR_
  • Personalizzato: CUSTOMCONNSTR_
  • PostgreSQL: POSTGRESQLCONNSTR_
  • Hub di notifica: NOTIFICATIONHUBCONNSTR_
  • Bus di servizio: SERVICEBUSCONNSTR_
  • Hub eventi: EVENTHUBCONNSTR_
  • Database documenti: DOCDBCONNSTR_
  • Cache Redis: REDISCACHECONNSTR_

Nota

Le app .NET destinate a PostgreSQL, Hub di notifica, Bus di servizio, Hub eventi, Documento DB e Cache Redis devono impostare la stringa di connessione su Personalizzata come soluzione alternativa per un problema noto in .NET EnvironmentVariablesConfigurationProvider

Ad esempio, è possibile accedere a una stringa di connessione MySQL denominata connectionstring1 come variabile di ambiente MYSQLCONNSTR_connectionString1. Per i passaggi specifici dello stack di linguaggio, vedere:

Le stringhe di connessione vengono sempre crittografate quando sono archiviate (crittografia dei dati inattivi).

Nota

Le stringhe di connessione possono essere risolte anche da Key Vault usando i riferimenti Key Vault.

  1. Nel portale di Azure cercare e selezionare Servizi app, quindi selezionare la propria app.

    Ricerca di Servizi app

  2. Nel menu a sinistra dell'app selezionare Variabili di ambiente>Stringhe di connessione.

    Screenshot che mostra l'interfaccia utente aperta alle stringhe di connessione.

    Per impostazione predefinita, i valori per le stringhe di connessione sono nascosti nel portale per la sicurezza. Per visualizzare un valore nascosto di una stringa di connessione, selezionare il relativo campo Valore. Per visualizzare i valori nascosti di tutte le stringhe di connessione, selezionare il pulsante Mostra valore.

  3. Per aggiungere una nuova stringa di connessione, selezionare Aggiungi. Per modificare una stringa di connessione, selezionare la stringa di connessione.

  4. Nella finestra di dialogo è possibile attaccare la stringa di connessione allo slot corrente.

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

Modificare le stringhe di connessione in blocco

Selezionare il pulsante Modifica avanzata. Modificare le stringhe di connessione nell'area di testo. Al termine, selezionare Applica. Non dimenticare di selezionare Applica nella pagina Variabili di ambiente.

Le stringhe di connessione hanno la formattazione JSON seguente:

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

Configurare le impostazioni dello stack di linguaggio

Configurare le impostazioni generali

Nel portale di Azure cercare e selezionare Servizi app, quindi selezionare la propria app. Nel menu a sinistra dell'app selezionare Configurazione>Impostazioni generali.

Impostazioni generali

Qui è possibile configurare alcune impostazioni comuni per l'app. Alcune impostazioni richiedono di aumentare le prestazioni fino ai piani tariffari più elevati.

  • Impostazioni stack: stack software per eseguire l'app, incluse le versioni del linguaggio e dell'SDK.

    Per le app Linux, è possibile selezionare la versione del runtime del linguaggio e impostare un comando di avvio facoltativo o un file di comando di avvio.

    Impostazioni generali per i contenitori Linux

  • Impostazioni piattaforma: consente di configurare le impostazioni per la piattaforma di hosting, ad esempio quelle riportate in seguito.

    • Numero di bit della piattaforma: 32 bit o 64 bit. Solo per le app di Windows.
    • Stato FTP: Consentire solo FTPS o disabilitare completamente FTP.
    • Versione HTTP: impostare su 2.0 per abilitare il supporto per il protocollo HTTPS/2.

    Nota

    I browser più recenti supportano il protocollo HTTP/2 solo su TLS, mentre il traffico non crittografato continua a usare il protocollo HTTP/1.1. Per assicurarsi che i browser client si connettano all'app con HTTP/2, proteggere il nome DNS personalizzato. Per altre informazioni, vedere Proteggere un nome DNS personalizzato con un'associazione TLS/SSL nel servizio app di Azure.

    • Web socket: per ASP.NET SignalR o socket.io, ad esempio.

    • Always On: Mantiene l'app caricata anche quando non è presente traffico. Quando Always On non è abilitato, dopo 20 minuti senza richieste in ingresso, l'app viene scaricata. L'app scaricata può causare una latenza elevata per le nuove richieste a causa del tempo di riscaldamento. Quando Always On è attivato, il servizio di bilanciamento del carico front-end invia una richiesta GET alla radice dell'applicazione ogni cinque minuti. È importante assicurarsi che questa richiesta riceva una risposta 200 OK per garantire che tutte le operazioni di ricreazione dell'immagine vengano eseguite correttamente. Il ping continuo impedisce che l'app venga scaricata.

      Always On è obbligatorio per i processi Web continui o per i processi Web attivati tramite un'espressione CRON.

    • Affinità di sessione: in una distribuzione a più istanze, assicurarsi che il client venga instradato alla stessa istanza per la durata della sessione. È possibile impostare questa opzione su Disattivato per le applicazioni senza stato.

    • Proxy di affinità di sessione: il proxy di affinità di sessione può essere attivato se l'app si trova dietro un proxy inverso (ad esempio app Azure lication Gateway o Frontdoor di Azure) e si usa il nome host predefinito. Il dominio per il cookie di affinità di sessione verrà allineato con il nome host inoltrato dal proxy inverso.

    • Solo HTTPS: Se abilitato, tutto il traffico HTTP viene reindirizzato a HTTPS.

    • Versione minima TLS: Selezionare la versione minima di crittografia TLS richiesta dall'app.

  • Debug: abilitare il debug remoto per le app ASP.NET, ASP.NET Coreo Node.js. Questa opzione si disattiva automaticamente dopo 48 ore.

  • Certificati client in ingresso: richiedono certificati client in autenticazione reciproca.

Configurare i documenti predefiniti

Questa impostazione è solo per le app di Windows.

Il documento predefinito è la pagina Web visualizzata nell'URL radice di un'app del servizio app. Viene usato il primo file corrispondente nell'elenco. Se l'app usa moduli che instradano in base all'URL anziché fornire contenuti statici, non è necessario disporre di documenti predefiniti.

  1. Nel portale di Azure cercare e selezionare Servizi app, quindi selezionare la propria app.

  2. Nel menu a sinistra dell'app selezionare Configurazione>Documenti predefiniti.

    Documenti predefiniti

  3. Per aggiungere un documento predefinito, selezionare Nuovo documento. Per rimuovere un documento predefinito, selezionare Elimina alla sua destra.

Eseguire il mapping di un percorso URL a una directory

Per impostazione predefinita, il servizio app avvia l'app dalla directory radice del codice dell'app. Alcuni framework Web, però, non vengono avviati nella directory radice. Ad esempio, Laravel viene avviato nella sottodirectory public. Tale app sarà, ad esempio, accessibile in http://contoso.com/public, ma in genere si vuole indirizzare http://contoso.com alla directory public. Se il file di avvio dell'app si trova in una cartella diversa o se il repository contiene più di un'applicazione, è possibile modificare o aggiungere applicazioni e directory virtuali.

Importante

La funzione Directory virtuale in un percorso fisico è disponibile solo nelle app Windows.

  1. Nel portale di Azure cercare e selezionare Servizi app, quindi selezionare la propria app.

  2. Nel menu a sinistra dell'app selezionare Configurazione>Mapping del percorso

  3. Selezionare Nuova applicazione virtuale o directory.

    • Per eseguire il mapping di una directory virtuale a un percorso fisico, lasciare selezionata la casella di controllo Directory. Specificare la directory virtuale e il relativo percorso (fisico) corrispondente alla radice del sito Web (D:\home).
    • Per contrassegnare una directory virtuale come applicazione Web, deselezionare la casella di controllo Directory.

    Casella di controllo Directory

  4. Seleziona OK. Assicurarsi di selezionare Salva nella pagina Configurazione.

Configurare i mapping gestori

Per le app di Windows è possibile personalizzare i mapping dei gestori di IIS, le applicazioni virtuali e le directory. I mapping dei gestori consentono di aggiungere processori script personalizzati per gestire le richieste per estensioni di file specifiche.

Per aggiungere un gestore personalizzato:

  1. Nel portale di Azure cercare e selezionare Servizi app, quindi selezionare la propria app.

  2. Nel menu a sinistra dell'app selezionare Configurazione>Mapping percorso.

    Mapping dei percorsi

  3. Selezionare Nuovo mapping gestore. Configurare il gestore come segue:

    • Estensione. L'estensione del file da gestire, ad esempio *.php o handler.fcgi.
    • Processore script. Il percorso assoluto del processore script. Le richieste di file che corrispondono all'estensione di file vengono elaborate dal processore di script. Utilizzare il percorso D:\home\site\wwwroot per fare riferimento alla directory radice della propria app.
    • Argomenti. Argomenti facoltativi della riga dei comando per il processore script.
  4. Seleziona OK. Assicurarsi di selezionare Salva nella pagina Configurazione.

Configurare contenitori personalizzati

Passaggi successivi