Procedure consigliate per il servizio app di Azure
Questo articolo riepiloga le procedure consigliate per l'uso del servizio app di Azure.
Inserimento in un percorso condiviso
Quando le risorse di Azure che costituiscono una soluzione, ad esempio un'app Web e un database, si trovano in aree diverse, possono verificarsi le situazioni seguenti:
- Aumento della latenza nella comunicazione tra le risorse
- Addebiti per il trasferimento dei dati in uscita tra aree come indicato nella pagina dei prezzi di Azure.
La condivisione dell'area è ideale per le risorse di Azure che compongono una soluzione per la memorizzazione di dati o contenuti, come un'app Web e un database o un account di archiviazione. Quando si creano risorse, verificare che si trovino nella stessa area di Azure, tranne in casi specifici motivati da ragioni aziendali o di design. È possibile spostare un'app del servizio app nella stessa area del database usando la funzionalità di clonazione del servizio app attualmente disponibile nel piano di servizio app Premium.
Aggiunta di certificati
Le applicazioni non devono mai avere una dipendenza rigida o aggiungere al certificato TLS predefinito *.azurewebsites.net perché il certificato TLS *.azurewebsites.net potrebbe essere ruotato in qualsiasi momento, dato la natura di servizio app come piattaforma come servizio (PaaS). L'aggiunta del certificato è una procedura in cui un'applicazione consente solo un elenco specifico di autorità di certificazione accettabili (CA), chiavi pubbliche, identificazioni personali o qualsiasi parte della gerarchia di certificati. Nel caso in cui il servizio ruota il certificato TLS con caratteri jolly predefinito servizio app, le applicazioni aggiunte al certificato interromperanno e interromperanno la connettività per le applicazioni hardcoded a un set specifico di attributi del certificato. La periodicità con cui il certificato TLS *.azurewebsites.net viene ruotato non è garantito poiché la frequenza di rotazione può cambiare in qualsiasi momento.
Si noti che le applicazioni che si basano sull'aggiunta del certificato non devono avere una dipendenza complessa da un certificato gestito di servizio app. servizio app i certificati gestiti possono essere ruotati in qualsiasi momento, causando problemi simili per le applicazioni che si basano sulle proprietà dei certificati stabili. È consigliabile fornire un certificato TLS personalizzato per le applicazioni che si basano sull'aggiunta del certificato.
Se un'applicazione deve basarsi sul comportamento di aggiunta del certificato, è consigliabile aggiungere un dominio personalizzato a un'app Web e fornire un certificato TLS personalizzato per il dominio che può quindi essere basato sul pining del certificato.
Quando le app usano più memoria del previsto
Quando si nota che un'app usa più memoria del previsto come indicato tramite consigli di monitoraggio o servizio, considerare la funzionalità di correzione automatica servizio app. Una delle opzioni della funzionalità di correzione automatica consente di eseguire azioni personalizzate in base a una soglia di memoria. Le azioni includono notifiche tramite posta elettronica, analisi con dump di memoria e attenuazione locale tramite riciclo del processo di lavoro. La correzione automatica può essere configurata usando web.config e un'interfaccia utente semplice, come descritto in questo post di blog per l' estensione del sito di supporto del servizio app.
Quando le app usano più CPU del previsto
Quando si nota che un'app utilizza più CPU del previsto o presenta picchi di utilizzo della CPU ripetuti rispetto a quanto indicato dai servizi di monitoraggio e assistenza, può essere opportuno aumentare le prestazioni o il numero di istanze del piano di servizio app. Se si tratta di un'applicazione con stato, l'aumento delle prestazioni è l'unica opzione disponibile, mentre se l'applicazione è senza stato, l'aumento del numero di istanze offre maggiore flessibilità e un potenziale di scalabilità più elevato.
Per altre informazioni sulle opzioni di scalabilità e scalabilità automatica del servizio app, vedere Aumentare le prestazioni di un'app Web nel servizio app di Azure.
Quando si esauriscono le risorse socket
Una causa comune dell'esaurimento delle connessioni TCP in uscita è l'impiego di librerie client non implementate per il riutilizzo delle connessioni TCP o il mancato uso di un protocollo di livello superiore, ad esempio keep-alive HTTP. Rivedere la documentazione di ogni libreria a cui fanno riferimento le app nel piano di servizio app per verificare che tali librerie siano configurate o accessibili nel codice per un efficiente riutilizzo delle connessioni in uscita. Seguire anche le indicazioni della documentazione delle librerie per le corrette operazioni di creazione, rilascio o pulizia per evitare la perdita di connessioni. Mentre è in corso l'esame delle librerie client, è possibile attenuare l'impatto sulle prestazioni aumentando il numero di istanze.
Node.js e richieste HTTP in uscita
Quando si usa Node.js ed è presente un numero rilevante di richieste HTTP in uscita, è importante saper gestire il protocollo keep-alive HTTP. È possibile usare il pacchetto agentkeepalivenpm
per semplificare il codice.
È necessario gestire sempre la risposta http
anche se non si interviene nel gestore. Se la risposta non viene gestita correttamente, l'applicazione alla fine rimane bloccata a causa dell'esaurimento delle risorse socket.
Ad esempio, quando si usa il pacchetto http
o https
:
const request = https.request(options, function(response) {
response.on('data', function() { /* do nothing */ });
});
In caso di esecuzione del servizio app in Linux in un computer con più core, un'altra procedura consigliata prevede l'uso di PM2 per avviare più processi Node.js per eseguire l'applicazione. A tale scopo, specificare un comando di avvio nel contenitore.
Ad esempio, per avviare quattro istanze:
pm2 start /home/site/wwwroot/app.js --no-daemon -i 4
Quando il backup dell'applicazione non viene più eseguito
Le due cause più comuni della mancata esecuzione del backup delle app sono: impostazioni di archiviazione non valide e configurazione del database non valida. In genere, questi errori si verificano in caso di modifiche alle risorse di archiviazione o di database o in caso di modifiche nella modalità di accesso a tali risorse, ad esempio quando vengono aggiornate le credenziali per il database selezionato nelle impostazioni di backup. I backup in genere sono eseguiti in base a una pianificazione e richiedono l'accesso alla risorsa di archiviazione (per l'output dei file di cui è stato eseguito il backup) e ai database (per copiare e leggere il contenuto da includere nel backup). Il risultato dell'incapacità di accedere a queste risorse è una mancata riuscita, costante, del backup.
Quando si verificano errori di backup, esaminare i risultati più recenti per capire quale tipo di errore si è verificato. In caso di errori di accesso alla risorsa di archiviazione, controllare e aggiornare le impostazioni di archiviazione usate nella configurazione del backup. In caso di errori di accesso ai database, controllare e aggiornare le stringhe di connessione nelle impostazioni dell'applicazione. Procedere quindi ad aggiornare la configurazione del backup al fine di includere correttamente i necessari database. Per altre informazioni sul backup delle app, vedere Eseguire il backup di un'app Web nel servizio app di Azure.
Quando vengono distribuite nuove app Node.js nel Servizio app di Azure
La configurazione predefinita del Servizio app di Azure per le app Node.js mira a soddisfare al meglio le esigenze delle app più comuni. Se la configurazione dell'app Node.js può trarre vantaggio dall'ottimizzazione personalizzata per migliorare le prestazioni oppure per ottimizzare l'utilizzo delle risorse di rete, della memoria o della CPU, vedere Procedure consigliate e guida alla risoluzione dei problemi per le applicazioni Node nel servizio app di Azure. Questo articolo descrive le impostazioni di iisnode che può essere necessario configurare per l'app Node.js, illustra i vari scenari o problemi possibili per l'app e indica come risolvere questi problemi.
Quando i dispositivi Internet of Things (IoT) sono connessi alle app in servizio app
Esistono alcuni scenari in cui è possibile migliorare l'ambiente durante l'esecuzione di dispositivi Internet of Things (IoT) connessi a servizio app. Una pratica molto comune con i dispositivi IoT è "aggiunta del certificato". Per evitare eventuali tempi di inattività imprevisti dovuti alle modifiche apportate ai certificati gestiti del servizio, non è mai necessario aggiungere i certificati al certificato *.azurewebsites.net predefinito né a un certificato gestito servizio app. Se il sistema deve basarsi sul comportamento di aggiunta del certificato, è consigliabile aggiungere un dominio personalizzato a un'app Web e fornire un certificato TLS personalizzato per il dominio che può quindi essere basato sull'aggiunta del certificato. Per altre informazioni, vedere la sezione di aggiunta del certificato di questo articolo.
Per aumentare la resilienza nell'ambiente, non è consigliabile basarsi su un singolo endpoint per tutti i dispositivi. È necessario ospitare almeno le app Web in due aree diverse per evitare un singolo punto di errore e essere pronti per il traffico di failover. In servizio app è possibile aggiungere un dominio personalizzato identico a app Web diverse, purché queste app Web siano ospitate in aree diverse. Ciò garantisce che, se è necessario aggiungere i certificati, è anche possibile aggiungere il certificato TLS personalizzato fornito. Un'altra opzione consiste nell'usare un servizio di bilanciamento del carico davanti alle app Web, ad esempio Frontdoor di Azure o Gestione traffico, per garantire una disponibilità elevata per le app Web. Per altre informazioni, vedere Avvio rapido: creare un frontdoor per un'applicazione Web globale a disponibilità elevata o controllare Servizio app di Azure traffico con Gestione traffico di Azure.
Passaggi successivi
Per altre informazioni sulle procedure consigliate, visitare servizio app Diagnostica per scoprire le procedure consigliate utilizzabili specifiche per la risorsa.
- Passare all'app Web nel portale di Azure.
- Fare clic su Diagnostica e risolvere i problemi nel riquadro di spostamento a sinistra, che apre servizio app Diagnostica.
- Scegliere il riquadro della home page Procedure consigliate.
- Fare clic su Procedure consigliate per le prestazioni della disponibilità & o le procedure consigliate per la configurazione ottimale per visualizzare lo stato corrente dell'app in merito a queste procedure consigliate.
È anche possibile usare questo collegamento per aprire direttamente servizio app Diagnostica per la risorsa: https://portal.azure.com/?websitesextension_ext=asd.featurePath%3Ddetectors%2FParentAvailabilityAndPerformance#@microsoft.onmicrosoft.com/resource/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/troubleshoot
.