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! 

Habilitar usuario root y permitir login por ssh

Hola Mundo:
Ubuntu impuso la moda de deshabilitar el usuario root y que todas las operaciones que requerían privilegios se hicieran a través de sudo. Esto fue una ventaja desde el punto de vista de seguridad, ya que la superficie expuesta era mucho menor. 

El procedimiento es sencillo, pero hay que tener consideración con la seguridad.
sudo passwd root
Con esto se le asigna una contraseña al usuario root. Para permitir el acceso por ssh hay que ir a /etc/ssh/sshd_config y buscar la opcion PermitLogin y dejarla en yes.


Luego se reinicia el servicio

sudo /etc/init.d/sshd restart
Con esta configuración aplicada ya estarían en condiciones de usar el usuario root.
Espero que hayan disfrutado este micro post.

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.