Archivos de la categoría: Azure

Notas sobre el uso de templates en Azure

Hola Mundo:

Usar templates para la creación de recursos en Azure es una característica que existe desde hace algunos añ os en Azure. Esto fue traído por la tecnología implementada Azure Resource Manager, que cambia la forma en la cual se crean y de administran recursos.
Éstas son algunas notas para tener en consideración




Herramientas adecuadas

En mi caso, trabajo con un MacBook Pro y afortunadamente está Visual Studio Code , que es un IDE gratuito y multi plataforma, orientado a desarrollos en la nube y también funciona como editor de texto para otros lenguajes. 
Este IDE trae la posibiliad de trabajar con extensiones que potenciarán el desarrollo. Hay uno para Azure Resource Manager llamado Azure Resource Manager Tools.

Variables, parámetros y funciones definidas

Es importante conocer la diferencia entre parámetros y variables. Básicamente, los parámetros son los que se reciben desde un formulario generado de forma automática y deben ir encasillados desde el espacio de parameters. Las variables son justamente eso, variables. Sirven para la utilización de complejas estructuras de forma simple. Las variables pueden tomar como valor el valor de un parámetro.  
Las funciones definidas apoyarán en tareas como concatenación o trabajar con las propiedades de un resource group, por ejemplo.
Mas información sobre estas funciones se pueden encontrar en: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-functions
Ejemplos
Si no sabes donde empezar a trabajar con templates, es recomendado basarte en ejemplos.  Existe un completo repositorio de templates que pueden servir para armar templates para la mayoría de los escenarios. La documentación sobre como usarlos se puede encontrar en https://azure.microsoft.com/en-us/resources/templates/ y el repositorio en Github se puede acceder desde https://github.com/Azure/azure-quickstart-templates
Espero que estas notas guíen el inicio  de trabajo con Azure ARM Templates.
Chau! 

Mover base de datos de una region a otra en Azure

Hola mundo:
En esta entrega, revisaremos un procedimiento altamente solicitado por administradores de infraestructura en Azure. Este consiste en migrar una base de datos de una región a otra con muy bajo downtime y, prácticamente, sin pérdida de datos, utilizando la geo replicación y las características de alta disponibilidad.
Para este ejemplo, tendré una base de datos de prueba (AdventureWorks)  en la región East US. Para efectos de la prueba, es una base de datos de bajo costo.
Dentro del panel del recurso, iremos al menú de la izquierda y ubicaremos la opción Geo-Replication
Abrirá una ventana asi. Se muestra un mapa con las regiones disponibles para hacer la replicación

Para hacer la replicación, escogeré la región West US 2 del listado. Una vez seleccionada la región, abrirá un asistente donde se pide configurar algunos parámetros. Entre los parámetros a configurar es la creación de un servidor SQL Server donde residirá la base de datos réplica. 
Una vez seteados los parámetros, la replicación comenzará a ejecutarse:

 
Aparece la base de datos replicada en el apartado de Secondaries y en el mapa se ve una gráfica de la replicación.
Al entrar en la réplica de la base de datos, veremos la opción de hacer un failover forzado.
Al hacer el failover aparece una advertencia diciendo que todas las sesiones van a ser desconectadas y que podría perder datos. Entendiendo los riesgos, procedemos.
Al volver a la vista principal de geo replicación, se ve que el estado de la base de datos secundaria está en proceso de failover.
Luego de esperar el cambio, se puede observar que la base de datos secundaria ya es primaria:
Ahora queda cumplir el cometido: Eliminar la base de datos para que solo quede en una sola region. Para esto hay que ir a la vista de las bases de datos y eliminar la que corresponde. Tomar en cuenta que aparece cual es el rol de la base de datos (primaria o secundaria). 
Confirmación de eliminación
Con este procedimiento, la geo replicación queda desactivada y la base de datos operando en la nueva región.  Es importante cambiar la conexión en las aplicaciones que hagan uso de esta base de datos. Recordar que es un nuevo servidor SQL Server, con un nombre distinto.
Espero que les sea de utilidad.

Enviar datos a Azure Mobile Apps usando jQuery

Hola Mundo:

Este artículo es un tanto distinto a los que siempre se publican. Esta vez es sobre desarrollo, pero
consumiendo servicios publicados en Microsoft Azure.

Azure Mobile Apps es un servicio de Microsoft Azure que permite levantar, sin mayor esfuerzo, un backend para aplicaciones móviles. Este backend puede estar construido con ASP.NET o Node.js.
De cualquier manera, provee las herramientas para generar una REST API lista para ser consumida desde las aplicaciones cliente.

Me refiero a aplicaciones cliente y no móviles, porque estos servicios pueden ser consumidos desde cualquier lugar. Incluso desde un sistema web usando Javascript.

En este caso puntual, compartiré una ayuda de memoria para enviar datos usando jQuery usando el método AJAX:

$.ajax({
type: "POST",
contentType: "application/json; charset=UTF-8",
url: "https://xxxxxxx.azurewebsites.net/tables/xxxxxx",
headers: {'ZUMO-API-VERSION': '2.0.0', 'Content-Type': 'application/json'},
data: JSON.stringify({
"Campo1": "Valor1",
"Campo2": "Valor2"
}),
dataType: "json",
accept: "json",
success: function(datos){
console.log(datos)
alert('Datos reportados correctamente')
},
error: function(jqXHR, estado, error){
console.log(estado)
console.log(error)
},
complete: function(jqXHR, estado){
console.log(estado)
},
timeout: 1000000000
});

Lo relevante:

  • El type es POST. No olvidar que estamos enviando datos al servidor. Si tienes duda sobre esto, revisa este link: http://www.restapitutorial.com/lessons/httpmethods.html
  • contentType debe ser “application/json; charset=UTF-8”. El servidor recibe datos en formato JSON. De otra forma, arrojará error 500.
  • La url es la dirección web del servicio. Esta es la forma más estándar si es que no han creado una personalizada.
  • La cabecera de la petición se indica en headers. Siempre debe estar incluido ‘ZUMO-API-VERSION’: ‘2.0.0’ y  ‘Content-Type’: ‘application/json’. En el caso que alguno falte, la consola indicará que hace falta una de las dos y arrojará un error 500 o 400.
  • En data se indican los datos que se enviarán. El método stringify del objeto JSON es el encargado de hacer que los datos que estamos enviando sigan el formato de JSON.  Recuerden que en contentType y en la cabecera se indica que estamos enviando datos en formato JSON. Si esto no está, recibirán un error 400.
  • El atributo accept le indica al servidor el formato en el que se requiere la respuesta.
  • El atributo dataType es usado por jQuery para “formatear” la respuesta antes de dejarla disponible para el trabajo con ella.
  • Success indica la función que se ejecutará cuando los datos se reporten correctamente.
  • Error indica la función que se ejecutará cuando se produzca un error en el reporte de datos.
  • Complete indica la función que se ejecutará luego de la ejecución de lo indicado en Success o Error.
  • Timeout indica el tiempo total de espera, en milisegundos, antes de cancelar la operación. Previene una ejecución casi infinita de la solicitud.
Nada más quería estar a la moda y jugar un rato con Javascript y Azure.
Espero que les sea de su total utilidad.