Esercitazione: Connettere un'app Web servizio app s a Database di Azure per MySQL - Server flessibile in una rete virtuale
Questa esercitazione illustra come creare e connettere un'app Web del servizio app Azure a un'istanza del server flessibile Database di Azure per MySQL isolata all'interno di reti virtuali uguali o diverse.
In questa esercitazione si apprenderà come:
- Creare un'istanza del server flessibile Database di Azure per MySQL in una rete virtuale
- Creare una subnet per delegare a servizio app e creare un'app Web
- Aggiungere l'app Web alla rete virtuale
- Connettersi al server flessibile Database di Azure per MySQL dall'app Web
- Connettere un'app Web e Database di Azure per MySQL'istanza del server flessibile isolata in reti virtuali diverse
Prerequisiti
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare. Attualmente, con un account gratuito di Azure, è possibile provare il server flessibile di Database MySQL di Azure gratuitamente per 12 mesi. Per altre informazioni, vedere Usare un account gratuito di Azure per provare gratuitamente Database di Azure per MySQL - Server flessibile.
Per questo articolo è necessario eseguire in locale l'interfaccia della riga di comando di Azure versione 2.0 o successiva. Per vedere la versione installata, eseguire il comando az --version
. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
È necessario accedere all'account con il comando az login. Si noti la proprietà id dell'output del comando per il nome della sottoscrizione corrispondente.
az login
Se si possiedono più sottoscrizioni, scegliere quella appropriata in cui verrà fatturata la risorsa. Selezionare l'ID sottoscrizione specifico sotto l'account tramite il comando az account set. Sostituire il segnaposto "subscription ID" con la proprietà subscription ID dell'output di az login per la sottoscrizione.
az account set --subscription <subscription ID>
Creare un'istanza del server flessibile di Database di Azure per MySQL
Creare un'istanza del server flessibile Database di Azure per MySQL privata all'interno di una rete virtuale usando il comando seguente:
az mysql flexible-server create --resource-group myresourcegroup --location westus2 --vnet VNETName
Copiare il stringa di connessione e il nome della rete virtuale appena creata. Questo comando esegue le azioni seguenti, che potrebbero richiedere alcuni minuti:
- Crea il gruppo di risorse se non esiste già.
- Genera un nome di server, se non specificato.
- Creare una nuova rete
VNETName
virtuale per la nuova istanza del server flessibile Database di Azure per MySQL e la subnet all'interno di questa rete virtuale per l'istanza del server flessibile Database di Azure per MySQL. Assicurarsi che il nome sia univoco. - Crea il nome utente e la password dell'amministratore per il server, se non specificato.
- Crea un database vuoto denominato flexibleserverdb.
Nota
Prendere nota della password generata automaticamente, se non specificato. Se si dimentica la password, è necessario reimpostare la password usando il az mysql flexible-server update
comando .
Creare una subnet per servizio app endpoint
È ora necessaria una subnet delegata all'endpoint dell'app Web servizio app. Eseguire il comando seguente per creare una nuova subnet nella stessa rete virtuale della Database di Azure per MySQL'istanza del server flessibile creata.
az network vnet subnet create -g myresourcegroup --vnet-name VNETName --name webappsubnetName --address-prefixes 10.0.1.0/24 --delegations Microsoft.Web/serverFarms --service-endpoints Microsoft.Web
Prendere nota del nome della rete virtuale e del nome della subnet dopo questo comando, come sarebbe necessario per aggiungere la regola di integrazione della rete virtuale per l'app Web dopo la creazione.
Creare un'app Web
In questa sezione viene creato l'host dell'app in servizio app app e si connette l'app al database del server flessibile Database di Azure per MySQL. Nel terminale assicurarsi di trovarsi nella radice del repository del codice dell'applicazione.
Creare un'app servizio app (processo host) con il comando az webapp up.
az webapp up --resource-group myresourcegroup --location westus2 --plan testappserviceplan --sku P2V2 --name mywebapp
Nota
- Per l'argomento --location, usare la stessa posizione specificata per il database nella sezione precedente.
- Sostituire <app-name> con un nome univoco in tutto Azure (l'endpoint server è
https://\<app-name>.azurewebsites.net
). I caratteri consentiti per <app-name> sono A-Z, 0-9 e -. Un criterio valido consiste nell'usare una combinazione del nome della società e di un identificatore dell'app. - servizio app livello Basic non supporta l'integrazione della rete virtuale. Usare Standard o Premium.
Questo comando esegue le azioni seguenti, che potrebbero richiedere alcuni minuti:
- Crea il gruppo di risorse se non esiste già. In questo comando viene usato lo stesso gruppo di risorse in cui in precedenza è stato creato il database.
- Creare il piano di servizio app
testappserviceplan
nel piano tariffario Basic (B1), se non esiste. --plan e --sku sono facoltativi. - Crea l'app del Servizio app se non esiste.
- Abilita la registrazione predefinita per l'app, se non è già abilitata.
- Carica il repository usando la distribuzione ZIP con l'automazione della compilazione abilitata.
Aggiungere l'app Web alla rete virtuale
Usare il comando az webapp vnet-integration per aggiungere l'integrazione di una rete virtuale di area all'app Web. Sostituire <vnet-name> e <subnet-name con la rete virtuale e il nome della subnet usati dall'istanza del server flessibile Database di Azure per MySQL.
az webapp vnet-integration add -g myresourcegroup -n mywebapp --vnet VNETName --subnet webappsubnetName
Configurare le variabili di ambiente per la connessione del database
Con il codice ora distribuito in servizio app, il passaggio successivo consiste nel connettere l'app all'istanza del server flessibile Database di Azure per MySQL in Azure. Il codice dell'app prevede di trovare informazioni sul database in una serie di variabili di ambiente. Per impostare le variabili di ambiente in servizio app, creare "impostazioni dell'app" con il az webapp config appsettings set
comando .
az webapp config appsettings set --settings DBHOST="<mysql-server-name>.mysql.database.azure.com" DBNAME="flexibleserverdb" DBUSER="<username>" DBPASS="<password>"
- Sostituire mysql-server-name, <nome> utente> e <password> per il comando server flessibile appena creato Database di Azure per MySQL.<
- Sostituire nome utente> e< password> con le credenziali generate automaticamente dal comando.<
- Il gruppo di risorse e il nome dell'app vengono ricavate a partire dai valori memorizzati nella cache nel file .azure/config.
- Il comando crea impostazioni denominate DBHOST, DBNAME, DBUSER e DBPASS. Se il codice dell'applicazione usa nomi diversi per le informazioni del database, usare questi nomi per le impostazioni dell'app come indicato nel codice.
Configurare l'app Web per consentire tutte le connessioni in uscita dall'interno della rete virtuale.
az webapp config set --name mywebapp --resource-group myresourcesourcegroup --generic-configurations '{"vnetRouteAllEnabled": true}'
servizio app'app Web e Database di Azure per MySQL'istanza del server flessibile in reti virtuali diverse
Se è stata creata l'app servizio app e l'istanza del server flessibile Database di Azure per MySQL in reti virtuali diverse, è necessario eseguire i due passaggi seguenti per stabilire una connessione senza problemi:
- Connettere le due reti virtuali usando il peering reti virtuali (locale o globale). Vedere Connettere reti virtuali con la guida al peering di rete virtuale.
- Collegare l'area di DNS privato dell'istanza del server flessibile Database di Azure per MySQL alla rete virtuale dell'app Web usando i collegamenti di rete virtuale. Se si usa la portale di Azure o l'interfaccia della riga di comando di Azure per creare istanze del server flessibile Database di Azure per MySQL in una rete virtuale, viene eseguito automaticamente il provisioning di una nuova zona DNS privata nella sottoscrizione usando il nome del server specificato. Passare alla zona DNS privata dell'istanza del server flessibile Database di Azure per MySQL e seguire la guida Come collegare la zona DNS privata a una rete virtuale per configurare un collegamento di rete virtuale.
Pulire le risorse
Pulire tutte le risorse create nell'esercitazione con il comando seguente. Questo comando elimina tutte le risorse incluse in questo gruppo di risorse.
az group delete -n myresourcegroup