Condividi tramite


Distribuire Azure Cosmos DB e servizio app di Azure con un'app Web da GitHub usando un modello di Azure Resource Manager

Questa esercitazione illustra come eseguire una distribuzione "senza tocco" 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 alle appsettings.json impostazioni dell'applicazione Servizi 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 di 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 al 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 di Azure Cosmos DB o le chiavi di autenticazione dal portale di Azure.

Prerequisiti

Suggerimento

Anche se questa esercitazione non presuppone un'esperienza precedente con i modelli di Azure Resource Manager o JSON, è consigliabile modificare i modelli o le opzioni di distribuzione a cui si fa riferimento, quindi è necessaria la conoscenza di ognuna 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

Pulsante per distribuire il modello di Resource Manager in Azure.

Una volta nel portale di Azure, selezionare la sottoscrizione in cui eseguire la distribuzione e selezionare o creare un nuovo gruppo di risorse. Compilare quindi i valori seguenti.

Screenshot dell'interfaccia utente di distribuzione del modello

  • Area: questa operazione è richiesta da Resource Manager. Immettere la stessa area usata dal parametro location in cui si trovano le risorse.
  • Nome applicazione : questo nome viene usato da tutte le risorse per questa distribuzione. Assicurarsi di scegliere un nome univoco per evitare conflitti con gli account di Azure Cosmos DB e del servizio app esistenti.
  • Località : area in cui vengono distribuite le risorse.
  • Tier del piano di servizio app - Tier di prezzo del piano di servizio app.
  • Istanze del piano di servizio dell'applicazione: numero di istanze di opera per il piano di servizio dell'applicazione.
  • URL repository : repository per l'applicazione Web in GitHub.
  • Branch : ramo per il repository GitHub.
  • Nome database : nome del database Azure Cosmos DB.
  • Nome contenitore : nome del contenitore di Azure Cosmos DB.

Dopo aver compilato i valori, selezionare il pulsante Crea per avviare la distribuzione. Il completamento di questo passaggio deve richiedere da 5 a 10 minuti.

Suggerimento

Il modello non convalida 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 prevede di fornire prima di inviare la distribuzione.

Passaggio 2: Esplorare le risorse

Visualizzare le risorse distribuite

Dopo che il modello ha distribuito le risorse, è ora possibile visualizzarne ognuna nel gruppo di risorse.

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.

Chiavi di 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 le impostazioni dell'applicazione per il servizio app. Le impostazioni dell'applicazione includono i dati dell'account e la chiave primaria di Azure Cosmos DB necessari per connettersi al database, oltre ai nomi del database e dei contenitori forniti dalla distribuzione del modello.

Impostazioni applicazione

Visualizzare l'app Web nel Centro distribuzione

Passare quindi al Centro distribuzione per il servizio app. Qui vedrai che il Repository fa riferimento al repository GitHub passato nel modello. Lo stato seguente indica anche Success(Active), ovvero l'applicazione è stata distribuita e avviata correttamente.

Centro distribuzione

Eseguire l'applicazione Web

Fare clic su Sfoglia nella parte superiore del Centro distribuzione per aprire l'applicazione Web. L'applicazione Web si aprirà alla schermata iniziale. Fare clic su Crea nuovo e immettere alcuni dati nei campi e fare clic su Salva. La schermata risultante mostra i dati salvati in Azure Cosmos DB.

Schermata iniziale

Passaggio 3: Funzionamento

Ci sono tre elementi necessari per il funzionamento di questo.

Lettura delle impostazioni dell'app in fase di esecuzione

Prima di tutto, l'applicazione ha bisogno di richiedere l'endpoint e la chiave di Azure Cosmos DB all'interno della Startup classe nell'applicazione Web ASP.NET MVC. L'esempio Da fare di Azure Cosmos DB può essere eseguito in locale, in cui è possibile immettere le informazioni di connessione in appsettings.json. Tuttavia, quando viene distribuito, questo file viene distribuito con l'app. Se queste righe in rosso non possono accedere alle impostazioni da appsettings.json, proverà a recuperarle dalle Impostazioni dell'Applicazione nel Servizio App di Azure.

Screenshot che mostra un metodo con diverse variabili stringa contrassegnate in rosso, tra cui databaseName, containerName, account e chiave.

Uso di funzioni speciali di Gestione risorse di Azure

Affinché questi valori siano disponibili per l'applicazione quando viene distribuita, il modello di Azure Resource Manager può richiedere tali valori dall'account Azure Cosmos DB usando funzioni speciali di Gestione risorse di Azure, tra cui riferimenti e listKey che recuperano i valori dall'account Azure Cosmos DB e li inseriscono nei valori delle impostazioni dell'applicazione con nomi di chiave corrispondenti a quanto usato nell'applicazione precedente in una sezione '{: formato key}'. Ad esempio: CosmosDb:Account.

Chiavi modello

Distribuzione di app Web da GitHub

Infine, è necessario distribuire l'applicazione Web da GitHub nel servizio app. Questa operazione viene eseguita usando il codice JSON seguente. Due aspetti da prestare attenzione sono il tipo e il nome per questa risorsa. Entrambi i valori delle "type": "sourcecontrols" proprietà e "name": "web" sono hardcoded e non devono essere modificati.

Distribuire da GitHub

Passaggi successivi

Congratulazioni! 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, tutte in un'unica operazione e senza dover tagliare e incollare informazioni riservate. Usando questo modello come punto di partenza, è possibile modificarlo per distribuire le proprie applicazioni Web nello stesso modo.