Connect (); 2018 problema speciale

Volume 33 numero 13

Azure - 7 suggerimenti e consigli per servizio App di Azure

Dal Michael Crump; 2018 problema speciale

Trucchi e suggerimenti di Azure (azuredev.tips) è una serie che ho creato un anno fa, in cui documenti personali segreti Preferiti, collegamenti e utili funzionalità usando Azure. Rapidamente iniziò ad apprezzare il valore di brevi e semplici a punto indicazioni sugli scenari comuni che gli sviluppatori devono affrontare ogni giorno. Nell'ultimo anno ho fatto da solo alcuni post per più di 150 suggerimenti che si estende l'intera piattaforma di Azure.

Per questa edizione speciale di MSDN Magazine concentrare la Connect() Microsoft; conference 2018, riunito una raccolta dei sette suggerimenti più diffusi e più importanti relativi al servizio App di Azure. Tali suggerimenti includono l'uso con i file nella console di configurazione di ambienti di staging e lo scambio tra di essi e il routing del traffico a versioni diverse dell'app in "Test nell'ambiente di produzione". Affronterà anche il modo in cui è possibile implementare il test delle prestazioni, adottare le procedure consigliate per le impostazioni dell'App nel servizio App di Azure e clonare un'app Web che risulta particolarmente utile se si dispone di clienti in tutto il mondo.

Uso dei file nel servizio App di Azure

In questo suggerimento esaminerò i file all'interno di un sito Web del servizio App di Azure che consente di gestire facilmente l'ambiente di app Web senza uscire dal portale di Azure. Per iniziare, passare al portale di Azure e selezionare un servizio App già stato creato e fare clic sulla Console in strumenti di sviluppo. Verrà visualizzato un prompt dei comandi da dove è possibile usare il servizio App di Azure (vedere figura 1).

La Console in servizio App di Azure
Figura 1 la Console in servizio App di Azure

Come si può notare nel figura 1, viene avviato il prompt dei comandi in D:\home\site\wwwroot. Da qui posso immettere "dir" per visualizzare una directory corrente listato, come illustrato nella figura 2.

Figura 2 i wwwroot elenco Directory

Volume in drive D is Windows
Volume Serial Number is FE33-4717
 Directory of D:\home\site\wwwroot
09/21/2017  08:35 PM    <DIR>          .
09/21/2017  08:35 PM    <DIR>          ..
09/20/2017  09:03 PM    <DIR>          css
09/20/2017  09:03 PM             5,351 Default.html
09/20/2017  09:03 PM    <DIR>          js
09/20/2017  09:03 PM             1,950 jsQuizEngine.sln
09/20/2017  09:03 PM               304 jsQuizEngine.userprefs
09/20/2017  09:03 PM            31,744 jsQuizEngine.v12.suo
09/20/2017  09:03 PM    <DIR>          PrecompiledWeb
09/20/2017  09:03 PM    <DIR>          quiz
               4 File(s)         39,349 bytes
               7 Dir(s)   1,072,893,952 bytes free

Posso eseguire qui i comandi di base e usare il "tipo di comando < nomefile >" per visualizzare l'output di un file sullo schermo. È possibile creare una directory e rinominare i file, ma tenere presente che questo è un ambiente sandbox. Alcuni comandi che richiedono autorizzazioni elevate potrebbero non funzionare dalla Console di in servizio App di Azure. Per un elenco di comandi disponibili dal prompt, digitare semplicemente "help" nella finestra della console.

Esperienza di Visual Studio Code

È disponibile un'altra opzione in strumenti di sviluppo nel portale del servizio App di Azure chiamato Editor del servizio App. È possibile trovare che questo elemento si trova solo due aree sensibili verso il basso dall'elemento Console che descritto nel suggerimento precedente. Fare clic su Editor del servizio App e selezionare un file, e verrà visualizzata una schermata simile all'immagine nel figura 3.

Editor del servizio App
Figura 3 l'Editor del servizio App

Se si ha familiarità con Visual Studio Code, ci si ritrova diritto a casa esplorare, eseguire la ricerca e la gestione di Git. Editor del servizio App rende anche più semplice aggiungere, modificare o eliminare file e, proprio come in Visual Studio Code, è possibile modificare le impostazioni e perfino modificare il tema. È anche possibile sfruttare i vantaggi della finestra di output per esaminare i log dell'applicazione associati al servizio app.

Diagnostic Console kudu

Nessun esercitazione nel servizio App è stata completata senza citare Diagnostic Console Kudu. È possibile accedervi all'interno dell'Editor del servizio App passando all'App e quindi facendo clic su Apri la Console Kudu, o la ricerca per l'opzione Strumenti avanzati in strumenti di sviluppo.

Per passare o digitare un comando, fare clic sul nome della cartella. È possibile gestire facilmente i file da qui, ma personalmente preferisco Editor del servizio App migliori per tali funzionalità. Usano principalmente la Console di diagnostica di Kudu per individuare e usare facilmente con l'API REST e funzionano con il processo explorer.

Creazione di uno Slot di distribuzione

È possibile passare dalle meraviglie di Editor del servizio App a imparare a semplificare il test delle App Web nell'ambiente di produzione con il servizio App di Azure. Inizierò esaminando gli slot di distribuzione, una funzionalità molto utile che consente di distribuire diverse versioni dell'app Web a un URL diverso. È quindi possibile testare una versione specifica dell'app e scambia il contenuto e configurazione tra gli slot.

Inizio accedendo al portale di Azure e selezionando un servizio App esistenti che sono in esecuzione e nella distribuzione fare clic sugli slot di distribuzione. Fare quindi clic sul pulsante Aggiungi slot. Immettere un nome descrittivo, ad esempio gestione temporanea, quindi utilizzare un'origine di configurazione esistente, come illustrato nella figura 4. In questo esempio userà un'app Web di "produzione", ovvero l'applicazione quiz ad accesso sporadico (github.com/mbcrump/jsQuizEngine) che è già stata distribuita.

Aggiunta di uno Slot di distribuzione
Figura 4 l'aggiunta di uno Slot di distribuzione

Al termine dell'operazione, tornare agli slot di distribuzione per visualizzare lo stato, che dovrebbe essere "Running". Fare clic sul nuovo sito di staging che è stato appena creato. Si noterà che questo ha aggiunto la gestione temporanea di word. Si noterà che vi sia un nuovo sito in nomesito-staging.azurewebsites.net.

Si supponga che è necessario eseguire il push di una nuova versione dell'applicazione quiz esistente in questo slot di staging. Passare a Deployment Center e selezionare External e immettere l'URL seguente nella casella di testo: github.com/mbcrump/jsQuizEngine.git. Fare clic su OK. È probabile che è necessario fare clic su Sincronizza per rendere effettive le modifiche. Un segno di spunta apparirà dopo aver completato il processo.

Attendere un paio di minuti per il codice essere eseguito il pull da un archivio Git, quindi passare al nuovo URL del sito. È possibile trovare l'URL nella pagina di panoramica. In questo caso posizionato myquizapplication-staging.azurewebsites.net. Si noterà ora il nuovo sito Web, con la versione jsQuizEngine 2 visualizzata in caratteri grandi.

A questo punto, è possibile tornare al servizio app originale è stata creata e scambiare tra i due siti che ora è disponibile. Ad esempio, potrei voler spostare il sito di staging nel sito di produzione e viceversa. Il vantaggio è che gli utenti non riscontrano tempi di inattività mentre tuoi lavoretti, è possibile continuare a utilizzare lo spazio preferito finché non pronto per lo spostamento in produzione.

App Web di test nell'ambiente di produzione

In questo processo, verrà esaminato una funzionalità denominata test nell'ambiente di produzione, con cui vengono eseguite esattamente tutto ciò che afferma. Non scary affatto! Tuttavia, tenere in sospeso. Se non si ha familiarità con gli slot di distribuzione, è opportuno esaminare prima si analizzano suggerimento precedente.

Per iniziare a usare questa funzionalità, passare al portale di Azure e selezionare il servizio App e in strumenti di sviluppo fare clic su test nell'ambiente di produzione. La prima cosa che verrà visualizzato è il titolo del Routing statico e si noterà che le due opzioni per una distribuzione nello slot nome e il traffico di percentuale (a cui è opportuno instradare).

Che cos'è il Routing statico? È una funzionalità di slot di distribuzione che consente di controllare la distribuzione del traffico tra l'ambiente di produzione e altri slot. Ciò è utile se vuoi provare una nuova modifica con un numero ridotto di richieste e quindi incrementare gradualmente il numero di richieste che adottano il nuovo comportamento.

È opportuno suddividere il traffico del sito in due gruppi per testare il nuovo sito e visualizzare se i clienti piace. Poiché si tratta solo di una dimostrazione, si invia un numero elevato di persone al sito di gestione temporanea, come illustrato nella figura 5.

Regolare la percentuale di traffico di Routing statico per il sito di gestione temporanea
Figura 5 regolare la percentuale di traffico di Routing statico per il sito di gestione temporanea

Ora tenere a mente che siano presenti due versioni del sito. Un ambiente di produzione e uno in gestione temporanea. Sono identiche ad eccezione del fatto che il sito di staging include i testo in caratteri grandi che legge "jsQuizEngine versione 2." Non si vuole scambiare questi siti, piuttosto si vuole solo distribuire il traffico tra esse.

È possibile verificarlo passando all'URL di produzione e continuamente l'aggiornamento del sito fino a quando non viene visualizzato il sito di staging con l'URL di produzione.

Cosa accade quando l'utente lascia il sito? Per impostazione predefinita, un cookie tiene traccia dell'evento. È possibile trovare questo cookie richiamando gli strumenti di sviluppo e cercando il cookie denominata "x-ms-routing-name."

È effettivamente possibile forzare il sito di produzione precedente impostando il cookie x-ms-routing-name su se stesso o fornendolo nella stringa di query dell'URL, ad esempio http://myquizapplication.azurewebsites.net/?x-ms-routing-name=self. È anche possibile usare l'URL per consentire agli utenti di versioni diverse del sito di test. Ad esempio, potrei utilizzare http://myquizapplication.azurewebsites.net/?x-ms-routing-name=staging per consentire agli utenti di provare il nuovo sito Web prima di eseguire il push, in tempo reale. Questo è molto chiaro resto, persone!

Caricare le app Web di Test

Successivamente, verrà ora esaminato un modo semplice e rapido per eseguire il test di carico delle App Web. Test di carico consente di misurare le prestazioni dell'app Web e determinare se può gestire un aumento del traffico durante i periodi di picco. Accedere all'account Azure e passare all'App del servizio creato e guarda sotto gli strumenti di sviluppo. Test delle prestazioni verrà visualizzato non esiste.

All'interno di blade, scegliere Nuovo per visualizzare l'opzione di configurazione di Test, che è possibile lasciare l'impostazione predefinita del Test manuale o modificare in Test Web di Visual Studio. La differenza principale tra i due: Test Web di Visual Studio consente di selezionare più URL e anche usare un file di archivio HTTP (ad esempio quello creato con Fiddler). Per questa procedura dettagliata, usare l'impostazione di Test manuali e selezionare un nome e percorso, assicurandosi di che 250 utenti lasciare i valori predefiniti per cinque minuti.

Si immagini questo scenario di caso d'uso. Si dispone di un'app Web presentando che un elemento in vendita, con un innalzamento di livello tale anno scorso imminente comportato 175 agli utenti di essere connessi per cinque minuti. Gli utenti espresso lamentele quindi che il sito è lento, in modo che si è preoccupati di migliorare la soddisfazione dei clienti riducendo il tempo di caricamento pagina. Per eseguire questa operazione, è testare l'app Web con un carico maggiore di 250 (o persino 2.500) gli utenti per cinque minuti.

Eseguire il test e verrà visualizzato con i dati, ad esempio richieste, riuscite e non riuscite, le prestazioni in condizioni di carico e altro ancora. Per lo scenario che è stato eseguito, il tempo di risposta medio ridotto, mentre l'aumento di richieste al secondo. Se si scegliesse di un intervallo di tempo più grande, dovrò probabilmente più dettagliatamente in modo da individuare in cui avrei potuto migliorare le prestazioni dell'app Web. È anche possibile consultare il pannello di messaggio di stato per ulteriori informazioni sul test.

Sono riuscito a eseguire questa operazione senza scrivere codice e con pochi clic nel portale. Tenere presente che è previsto un addebito per l'esecuzione di un test di carico in termini di utenti virtuali.

Utilizzo di impostazioni dell'App

Ecco un modo per sfruttare i vantaggi delle impostazioni delle App per archiviare in modo sicuro una coppia chiave/valore in Azure e accedervi nell'app Web.

Le impostazioni dell'App vengono utilizzate per archiviare elementi configurabili senza apportare alcuna modifica al codice. Le coppie chiave-valore vengono archiviate in background in un archivio di configurazione, che è interessante perché le informazioni riservate non viene visualizzato in un file Web. config o l'altro archiviare i segreti. Per poter sfruttare i vantaggi di questo, è necessario accedere all'account Azure e passare al servizio App creato. Cercare le impostazioni per visualizzare le impostazioni dell'applicazione.

È possibile aggiungere un'impostazione dell'App in Azure, con la chiave dell'ambiente e il valore impostato in gestione temporanea. Aprire o creare un'app ASP.NET MVC, ad esempio e modificare la sezione appSettings del file Web. config per aggiungere la coppia chiave/valore di ambiente, come illustrato di seguito:

<appSettings>
  <add key="webpages:Version" value="3.0.0.0" />
  <add key="webpages:Enabled" value="false" />
  <add key="Environment" value="Production" />
</appSettings>

Ora è nella sezione di configurazione Web dell'app. Per visualizzare il valore, è necessario aggiungerlo a una pagina all'interno di app per visualizzare il valore per questo esempio.

Mediante ASP.NET MVC, passare al file appname/Views/Home/Index.cshtml e aggiungere la seguente istruzione seguita da una chiamata a ConfigurationManager using:

@using System.Configuration
@{
  ViewBag.Title = "Home Page";
}
<div class="jumbotron)
  <h1>Testing App Settings</h1>
  @ConfigurationManager.AppSettings["Environment"]
</div>

Se si esegue l'applicazione in locale, si noterà produzione proviene dal file Web. config, ma se viene eseguito all'interno di Azure, si noterà come proviene dall'archivio di configurazione delle impostazioni dell'App che si trova in Azure di Staging. Stuff brillante!

Si può notare le stringhe di connessione visualizzati a destra sotto l'opzione delle impostazioni di App e domandato sul relativo utilizzo. Una regola empirica generale consiste nell'utilizzare le stringhe di connessione per le stringhe di connessione di database e le impostazioni dell'App per le impostazioni dell'applicazione di coppia chiave-valore. Se si esamina il file Web. config, si noterà che è anche presente una sezione per connectionStrings, esattamente come è presente una sezione per appSettings.

La clonazione di App Web

La clonazione è la possibilità di clonare un'App Web esistente in un'app appena creata che si trova spesso in un'area diversa. In questo modo i clienti possono distribuire un numero di App in aree geografiche diverse rapidamente e facilmente.

Ad esempio, una società potrebbe avere un'app Web esistente nell'area Stati Uniti occidentali e vuole clonare l'app nell'area Stati Uniti orientali per ridurre la latenza e migliorare le prestazioni per gli utenti in tale area.

Per eseguire questa operazione, accedere al proprio account Azure e passare al servizio App è creato e in strumenti di sviluppo fare clic su clonare un'App. Immettere le informazioni seguenti:

  • Nome dell'app: Assicurarsi di usare un nome univoco di questo sito verrà inserito nel something.azurewebsites.net
  • Gruppo di risorse: Creare un nuovo gruppo o usarne uno esistente
  • Piano di servizio App/località: Questo è il momento giusto per associare un nuovo piano che ne determinano la località, funzionalità, costo e risorse associate all'app di calcolo

Oltre alla modifica del percorso, è anche il momento giusto per determinare il piano di servizio app obbligatoria. Potrebbe non essere necessario tutti la potenza per soddisfare questo sito, se si prevede che il traffico molto basso in tale area.

  • Clona impostazioni: Verranno copiati i contenuti e i certificati dell'app in un'applicazione appena creata, è inoltre possibile copiare elementi quali le impostazioni dell'App, le stringhe di connessione, distribuzione di origine e domini personalizzati
  • Application Insights: Abilitare il servizio che consentono di rilevare e diagnosticare i problemi e altro ancora con le app .NET

Infine, è disponibile automazione opzioni, che consente di visualizzare i modelli di Azure Resource Manager che sono pertanto utili. Altre informazioni sui modelli di Azure Resource Manager in bit.ly/2RTVfri.

Azure Resource Manager consente di usare le risorse nella soluzione come gruppo. È possibile distribuire, aggiornare o eliminare tutte le risorse per la soluzione in un'unica operazione coordinata. Si utilizza un modello per la distribuzione e che può essere usato per diversi ambienti, ad esempio test, staging e produzione. Resource Manager offre sicurezza, controllo e categorizzazione caratteristiche che consentono di gestire le risorse dopo la distribuzione. Altre informazioni, vedere bit.ly/2Pv9aY5.

Dopo che tutto sia configurato, premere crea e si vedrà che la schermata di distribuzione è in corso si sovrapporre. È possibile fare clic su di esso durante la distribuzione per visualizzare i dettagli, ad esempio lo stato, la durata della distribuzione, percorso e altro ancora.

Uso di Stream di Log

Stream log consiste nella possibilità di vedere le informazioni di registrazione in tempo reale (o il più vicino viene possibile). È possibile farlo tramite il portale di Azure o tramite alcune della riga di comando degli strumenti, ad esempio PowerShell o BASH. Per sfruttare i vantaggi di questo, accedi al tuo account Azure, passare al servizio App e aprire l'elemento Stream di Log in monitoraggio. Si noterà che la maggior parte dei log dell'applicazione sono disattivata. Per attivarli, è necessario passare al log di diagnostica impostazione nello stesso elemento panel.

Di seguito si noterà che le opzioni seguenti:

  • La registrazione delle applicazioni consente di raccogliere tracce diagnostiche dal codice Web. Questo è necessario per la funzionalità di log di flusso e si disattiva automaticamente dopo 12 ore.
  • Registrazione applicazioni (Blob) genera registri vengono raccolti nel contenitore blob specificato nelle impostazioni di archiviazione.
  • Registrazione del server Web raccoglie le informazioni di diagnostica per il server Web.
  • I messaggi raccoglie messaggi di errore dettagliati messaggi di errore dettagliati dall'app Web.
  • Non è stato possibile richiesta traccia raccoglie informazioni di diagnostica sulle richieste non riuscite.

È possibile modificare facilmente le opzioni, ad esempio le dimensioni del disco fisico del file di log che verranno archiviati, nonché il numero di giorni per mantenere i file di log di conservazione. È anche possibile scaricare i file di log tramite FTP e FTPS.

Proseguo e attivare Logging(Filesystem) Application on e il livello di informazioni e fare clic su Salva. Tornare indietro e fare clic sull'impostazione Stream di Log e visitare la pagina Web (che è ospitata in azurewebsites.net). Verrà visualizzato un log. Se si esamina la prima coppia di righe, si noterà un ReadyForRequest sulla porta 80, seguito da una richiesta dal browser Web che include scorrere verso il basso il file /favicon.ico (che è l'unica immagine da inviato verso il basso).

Aggiungi registrazione nel codice di traccia

Usando l'app ASP.NET MVC in precedenza, passare a file appname/Controllers/HomeController.cs (o punto in cui si desidera testare questa funzionalità) e aggiungere la riga seguente:

System.Diagnostics.Trace.WriteLine ("Immettere le informazioni sulla visualizzazione");

Passa indietro i log di diagnostica e assicurarsi che il livello di registrazione applicazioni (file System) è impostato su Verbose, quindi fare clic su Salva, poiché è stata usata semplicemente un comando WriteLine. Torno all'opzione Log Stream e attivazione dell'errore di apertura del sito e passando alla pagina About. Esaminare il registro dell'applicazione dopo la chiamata del comando WriteLine. Verrà visualizzato il messaggio "Immettendo la sulla vista" che è stato specificato nella chiamata WriteLine.

Conclusioni

Si è appreso oggi un numero di suggerimenti in servizio App di Azure che possono aiutarti a essere più produttivi. Ma questo articolo quando detto l'area delle operazioni che è possibile eseguire. Nell'ultimo anno che ho compilato una raccolta di preziosi suggerimenti, idee e i segreti che coprono elementi come l'uso di .NET Core, Application Insights per l'analitica avanzata, l'autenticazione dell'utente e altro ancora. Se si hanno aggiunto mi piace quello illustrato in questo articolo, passare a consultare l'intera raccolta di suggerimenti per servizio App di Azure all'indirizzo azuredev.tips, o visitare videos.azuredev.tips per visualizzare brevi video di molti di questi suggerimenti e trucchi.


Michael Crumplavora presso Microsoft sulla piattaforma Azure ed è un programmatore, blogger e relatore internazionale di vari argomenti relativi allo sviluppo cloud. Oggi è passione per aiutare gli sviluppatori a comprendere i vantaggi del cloud in modo lineare. È possibile contattarlo su Twitter: @mbcrump o eseguendo il suo blog all'indirizzo michaelcrump.net.

Grazie al seguente esperto tecnico Microsoft per la revisione dell'articolo: Cecil Phillip


Discutere di questo articolo nel forum di MSDN Magazine