6.2 Cambiar a SQL Server en Azure

¿Qué es Azure?

Azure es un servicio proporcionado por microsoft para que las empresas ya no tengan que comprar y darle mantenimiento a un servidor propio, azure pone a tu disposición sus servidores virtuales y bases de datos en donde pagas de acuerdo al tiempo de uso y las características del server que desees.

Por ejemplo puedes rentar un servidor y solo pagas por el tiempo que lo usas, por ejemplo si lo apagas en las noches de 2:00 am a 6:00 am esas horas no te las cobran. O por ejemplo si tu aplicación es una juguetería puedes rentar un servidor básico y en temporada de ventas altas como navidad se cambia a un servidor mas avanzado o automáticamente prepara otro servidor para atender la demanda en 2 servidores.

Por lo general azure esta disponible de forma gratuita para que lo pruebes, ya sea en programas de 12 meses, o con programas como bizspark de apoyo a emprendedores por 3 años. Puedes utilizar también visual studio dev essentials para tener acceso a meses gratis de azure y otros productos

Crear una base de datos de SQL Server en Azure

Con tu cuenta de devessentials vamos a configurar una base de datos de sql server.

  1. Registrate con tu cudenta gratuita en www.portal.azure.com e inicia sesión

  2. Da clic en el icono SQL Database

3. Da clic en el botón Crear base de datos sql

4. Teclea un nombre para tu base de datos en mi caso es CaducaRest 5. Selecciona tu suscripción en mi caso tengo una de Visual Studio Enterprise BizSpark Un grupo de recursos te permite agrupar tus servicios de azure para ver por ejemplo cuanto estas pagando de azure por sistema de la empresa. Ejemplo cuanto se gasta de azure de los equipos de ventas, cuanto de los equipos de compras, etc.

6. Da clic en crear nuevo y teclea un nombre en mi caso es cursos y da clic en Aceptar

7. Selecciona en origen la opción Base de datos en blanco 8. En la opción Servidor vamos a configurar un servidor gratuito de Sql Server 9. Teclea un nombre para el servidor por ejemplo caduca 10. En nombre de usuario tecleamos AdminCaduca 11. En password tecleamos el password 12. Selecciona la ubicación mas cercana a tu lugar de origen

13. En plan de tarifa selecciona el básico da clic en Aplicar y espera unos minutos en lo que se crea el servidor.

Te llegará una notifiación cuando este lista, la opción ir al recurso te permite ir a la opción para revisar tu base de datos y la opción de Anclar al panel te permite que se muestre en tu página inicial. Da clic en el botón Ir al recurso

Azure muestra muchos gráficos sobre el uso de tu base de datos

Se recomienda que por seguridad tu base de datos solo este disponible para las ips de las computadoras de desarrollo y las del servidor de pruebas.

Para configurar la lista de ips permitidas

  1. Da clic en la opción Establecer Firewall del Servidor

2. Da clic en Agregar IP de cliente se te agrega automáticamente la ip de tu computadora, cambia el nombre de la regla por uno mas descriptivo como por ejemplo Desarrollo

Desde Azure Data Studio probamos la conexión a nuestro server

Cambiar tu aplicación para que se conecte a azure

Todas las conexiones a Sql Server en Azure estan encriptadas, por lo cual debes especificar que la conexión es encriptada, desde el mismo portal de azure puedes copiar los datos de la cadena de conexión, solamente debes cambiar tu usuario y contraseña

  1. En la opción Cadenas de Conexión damos clic en el icono copiar para copiar al portapapeles la cadena de conexión

2. En tu proyecto de .net en tu archivo appsettings.json agrega la cadena de conexión con el nombre AzureSQLConnection

appsetings.json
{
"ConnectionStrings": {
"DefaultConnection": "server=localhost;port=3306;database=caduca;user=AdminCaduca;Password=StKRV6MR6A;sslMode=none",
"SQLServerConnection": "Server=localhost;Database=caduca;User Id=AdminCaduca;Password=StKRV6MR6A;",
"AzureSQLConnection": "Server=tcp:armhe.database.windows.net,1433;Initial Catalog=CaducaRest;Persist Security Info=False;User ID=AdminCaduca;Password=StKRV6MR6A;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
},

3. En el archivo startup.cs cambiamos la cadena de conexión para utilizar la de Azure

startup.cs
public void ConfigureServices(IServiceCollection services)
{
//Código
//Conexión SQL Server Azure
services.AddDbContext<CaducaContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("AzureSQLConnection")));
}

4. En la consola del administrador de paquetes teclea el comando

Update-database

Listo ahora tu aplicación esta con una base de datos de Azure