Condividi tramite


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

Pulsante per distribuire il modello di Resource Manager in 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.

Screenshot dell'interfaccia utente della distribuzione del modello

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

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

Impostazioni applicazione

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.

Centro distribuzione

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.

Schermata Home

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.

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

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.

Chiavi modello

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.

Distribuire da GitHub

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.