Distribuire Azure Cosmos DB e il Servizio app di Azure con un'app Web da GitHub usando un modello di Azure Resource Manager
SI APPLICA A: NoSQL
Questa esercitazione illustra come eseguire una distribuzione "no touch" di un'applicazione Web che si connette ad Azure Cosmos DB alla prima esecuzione senza dover tagliare e incollare le informazioni di connessione da Azure Cosmos DB in appsettings.json
o nelle impostazioni dell'applicazione del Servizio app di Azure nel portale di Azure. Tutte queste azioni vengono eseguite usando un modello di Azure Resource Manager in un'unica operazione. Nell'esempio seguente si distribuirà l'esempio ToDo di Azure Cosmos DB.
I modelli di Resource Manager sono abbastanza flessibili e consentono di comporre distribuzioni complesse in qualsiasi servizio in Azure. Sono incluse attività avanzate, ad esempio la distribuzione di applicazioni da GitHub e l'inserimento delle informazioni di connessione nelle impostazioni dell'applicazione del Servizio app di Azure nel portale di Azure. Questa esercitazione illustra come eseguire le operazioni seguenti usando un singolo modello di Resource Manager.
- Distribuire un account Azure Cosmos DB.
- Distribuire un piano di hosting del Servizio app di Azure.
- Distribuire un Servizio app di Azure.
- Inserire l'endpoint e le chiavi dall'account Azure Cosmos DB nelle impostazioni dell'applicazione del Servizio app nel portale di Azure.
- Distribuire un'applicazione Web da un repository GitHub nel servizio app.
La distribuzione risultante include un'applicazione Web completamente funzionale in grado di connettersi ad Azure Cosmos DB senza dover tagliare e incollare l'URL dell'endpoint o le chiavi di autenticazione di Azure Cosmos DB dal portale di Azure.
Prerequisiti
Suggerimento
Anche se questa esercitazione non presuppone alcuna esperienza nell'uso di JSON o dei modelli di Azure Resource Manager, se si vogliono modificare i modelli o le opzioni di distribuzione cui viene fatto riferimento, è necessario conoscere ciascuna di queste aree.
Passaggio 1: Distribuire il modello
Selezionare prima di tutto il pulsante Distribuisci in Azure sotto per aprire il portale di Azure per creare una distribuzione personalizzata. È anche possibile visualizzare il modello di Azure Resource Manager dalla Raccolta di modelli di avvio rapido di Azure
Nel portale di Azure selezionare la sottoscrizione in cui eseguire la distribuzione e selezionare un gruppo di risorse o crearne uno nuovo. Compilare quindi i valori seguenti.
- Area: è un valore obbligatorio per Resource Manager. Immettere la stessa area usata dal parametro relativo alla località in cui si trovano le risorse.
- Nome applicazione: nome usato da tutte le risorse per questa distribuzione. Assicurarsi di scegliere un nome univoco per evitare conflitti con gli account Azure Cosmos DB e Servizio app esistenti.
- Località: area in cui sono distribuite le risorse.
- Livello del piano di servizio app: piano tariffario del piano di servizio app.
- Istanze del piano di servizio app: numero di ruoli di lavoro per il piano di servizio app.
- URL del repository: repository nell'applicazione Web in GitHub.
- Ramo: ramo per il repository GitHub.
- Nome database: nome del database Azure Cosmos DB.
- Nome contenitore: nome del contenitore Azure Cosmos DB.
Dopo aver compilato i valori, selezionare il pulsante Crea per avviare la distribuzione. Questo passaggio richiede in genere da 5 a 10 minuti.
Suggerimento
Il modello non verifica che il nome del Servizio app di Azure e il nome dell'account Azure Cosmos DB immessi nel modello siano validi e disponibili. È consigliabile verificare la disponibilità dei nomi che si intende fornire prima della distribuzione.
Passaggio 2: Esplorare le risorse
Visualizzare le risorse distribuite
Dopo che il modello ha distribuito le risorse, è ora possibile visualizzare ognuna di esse nel gruppo di risorse.
Visualizzare l'endpoint e le chiavi di Azure Cosmos DB
Aprire quindi l'account Azure Cosmos DB nel portale. Lo screenshot seguente mostra l'endpoint e le chiavi per un account Azure Cosmos DB.
Visualizzare le chiavi di Azure Cosmos DB nelle impostazioni dell'applicazione
Passare quindi al Servizio app di Azure nel gruppo di risorse. Fare clic sulla scheda Configurazione per visualizzare l'opzione Impostazioni dell'applicazione per il Servizio app. L'opzione Impostazioni dell'applicazione contiene i valori dell'account e della chiave primaria di Azure Cosmos DB necessari per connettersi ad Azure Cosmos DB, nonché i nomi di database e contenitori passati dalla distribuzione del modello.
Visualizzare l'app Web nel Centro distribuzione
Passare quindi al Centro distribuzione per il Servizio app. Si noterà che il repository punta al repository GitHub passato al modello. Inoltre lo stato mostra anche Operazione riuscita (Attiva), a indicare che l'applicazione è stata distribuita e avviata correttamente.
Eseguire l'applicazione Web
Fare clic su Esplora nella parte superiore del Centro distribuzione per aprire l'applicazione Web. Verrà aperta la schemata home dell'applicazione Web. Fare clic su Crea nuova e immettere alcuni dati nei campi e fare clic su Salva. La schermata risultante mostra i dati salvati in Azure Cosmos DB.
Passaggio 3: Come funziona
Sono necessari tre elementi per garantire il corretto funzionamento.
Lettura delle impostazioni dell'app in fase di esecuzione
Prima di tutto, l'applicazione deve richiedere l'endpoint e la chiave di Azure Cosmos DB nella classe Startup
nell'applicazione Web ASP.NET MVC. L'esempio Azure Cosmos DB ToDo può essere eseguito in locale dove è possibile immettere le informazioni di connessione in appsettings.json. Tuttavia, quando viene distribuito, questo file viene distribuito con l'app. Se le righe in rosso non possono accedere alle impostazioni dal file appsettings.json, verrà eseguito un tentativo da Impostazioni applicazione nel Servizio app di Azure.
Uso delle funzioni speciali di Azure Resource Manager
Affinché questi valori siano disponibili per l'applicazione quando viene distribuita, il modello di Azure Resource Manager può richiedere tali valori all'account Azure Cosmos DB usando funzioni speciali di Azure Resource Manager, tra cui reference e listKeys che recuperano i valori dall'account Azure Cosmos DB e li inseriscono nelle impostazioni dell'applicazione con nomi di chiave corrispondenti a quelli usati nell'applicazione precedente in formato '{section:key}'. Ad esempio: CosmosDb:Account
.
Distribuzione di app Web da GitHub
Infine, è necessario distribuire l'applicazione Web da GitHub nel Servizio app. A tale scopo, verrà usato il codice JSON seguente. È necessario prestare attenzione a due aspetti, ovvero il tipo e il nome per questa risorsa. I valori delle proprietà "type": "sourcecontrols"
e "name": "web"
sono hardcoded e non devono essere modificati.
Passaggi successivi
Complimenti. Sono stati distribuiti Azure Cosmos DB, Servizio app di Azure e un'applicazione Web di esempio che include automaticamente le informazioni di connessione necessarie per connettersi ad Azure Cosmos DB, tutto in un'unica operazione e senza dover tagliare e incollare informazioni riservate. Usando questo modello come punto di partenza, è possibile modificarlo per distribuire applicazioni Web personalizzate nello stesso modo.
- Il modello di Azure Resource Manager per questo esempio è disponibile nella raccolta dei modelli di avvio rapido di Azure
- Per il codice sorgente dell'app di esempio passare all'app ToDo di Azure Cosmos DB in GitHub.