Archivo de la etiqueta: Azure App Service

Agregando archivos generados con Webpack en un paquete de WebDeploy

Es muy probable que, en los tiempos que corren, estemos usando Webpack (o algo similar) para generar los archivos .js y .css minificados de nuestro sitio web. A estos archivos no los mantenemos versionados en nuestro repositorio de código, los usamos sólo para desplegar nuestra aplicación, y tampoco los tenemos incluidos en nuestro archivo de proyecto. Por este motivo es que al compilar nuestra aplicación y generar el paquete de despliegue para nuestra Azure Web App, estos archivos por defecto no están incluidos dentro del paquete.

Para solucionar este problema podemos tomar dos caminos: Sigue leyendo

Anuncio publicitario

Global Azure Bootcamp – Buenos Aires – 2018

El pasado sábado 21 de abril participé de la organización del Global Azure Bootcamp en Buenos Aires por cuarto año consecutivo, junto con Nicolás Bello Camiletti (@nbellocam) y Pablo Di Loreto (@pablodiloreto), y la colaboración de Matías Quaranta (@Ealsur) que este año lamentablemente no pudo acompañarnos presencialmente ese día.

Tuvimos 83 asistentes que durante 8 horas de evento disfrutaron de 12 charlas y 2 workshops, dictados por 16 oradores, entre los cuales contamos con 8 Microsoft MVPs, cubriendo temas como: Cómputo (VMs, Azure App Service, Azure Service Fabric, Azure Functions), Azure Resource Manager, Azure Key Vault, Visual Studio Team Services, Azure Networking, IoT Hub, Application Insights, Azure Active Directory, Xamarin, Cognitive Services, Azure Container Service (AKS), SQL Managed Instance, BI & Analytics, y más!

Durante el evento también tuve la oportunidad de dar una de las charlas: Manejando proyectos en Azure y VSTS:

Espero que hayan disfrutado del evento, y ¡nos vemos en 2019!

@gjbellmann

Generando el paquete de despliegue de una Web App desde la línea de comandos

Cuando queremos poner nuestro proyecto web dentro de un pipeline de Integración continua/Despliegue continuo (CI/CD por sus siglas en inglés), vamos a necesitar generar los paquetes de despliegue durante nuestro proceso de build, para luego poder usarlos desde la etapa de release.

MSBuild nos permite generarlos, usando los siguientes 4 parámetros:

/p:DeployOnBuild=true

/p:WebPublishMethod=Package

/p:PackageAsSingleFile=true

/p:PackageLocation="C:\temp\MyWeb.zip"

¿Qué significa cada parámetro? Sigue leyendo

Agregando un custom deployment script para Azure Functions desplegadas desde GitHub con un proyecto web de test

El escenario

Como parte de una aplicación con Azure Functions existente, que contiene unas Functions HTTP que generan archivos Excel y los devuelven como un byte array, quería agregar un proyecto web para tests de integración que al ser ejecutados descargaran el archivo Excel resultante. Estas Azure Functions se despliegan automáticamente desde un repositorio en GitHub.

Kudu y los scripts de despliegue

Al usar GitHub para desplegar cualquier aplicación en Azure App Service (incluyendo Azure Function), Kudu elige el script de despliegue de acuerdo al tipo de proyecto. Tal como dice en el artículo Customizing deployments de la wiki de Kudu, si tenemos un proyecto web en el repositorio, entonces compila y despliega ese proyecto. Sigue leyendo

Application Insights: Ignorar errores 404 para Web APIs

Application Insights es una excelente herramienta de monitoreo, pero considera a todos los status codes 4xx y 5xx como errores, y al escribir una API REST algunos de estos códigos tienen un significado particular y no son errores. Una respuesta con 404 (Not found) en una API REST normalmente significa que no hubo resultados para un dado recurso, no que solicitamos una página inexistente.

Así que, ¿cómo le decimos a Application Insights que ignore esos 404? Simple: creamos lo que se llama un Telemetry processor.
Sigue leyendo

Azure Functions: estructura básica y dependencias

Hoy veremos cómo es la estructura básica de archivos de una Azure Function, cómo podemos editar esos archivos y cómo agregamos las librerías que tenemos como dependencias en nuestro código.

Código de la función

Las funciones son el componente principal del servicio de Azure Functions. Escribimos el código de nuestra función en el lenguaje de nuestra preferencia y guardamos el archivo de código junto con la configuración en la misma carpeta.

Archivo de la función en C#

Las funciones en C# se crean en un archivo llamado run.csx. Los archivos .csx, llamados C# Script, nos permiten abstraernos de todo el código repetitivo como los namespaces, las clases y demás, y enfocarnos en el código de nuestra función. Si necesitamos agregar alguna clase que sea usada en nuestro código, podemos agregarla en el mismo archivo.

En el caso de Azure Functions el método que usamos para ejecutar la función es Run: Sigue leyendo

Recibiendo notificaciones de deploys de Azure Web Apps en Slack

Introducción

El servicio de Azure Web Apps tiene una gran funcionalidad: implementación contínua (continuous deployment), desde diferentes tipos de repositorios: Visual Studio Online, OneDrive, un repositorio local Git, GitHub, Bitbucket, Dropbox, o un repositorio externo. También tenemos alertas incorporadas, pero no notificaciones de las implementaciones. Ahí es cuando vienen al rescate los Web Hooks de Kudu.

Pero primero, ¿qué es Kudu?

Project Kudu es un proyecto open source, hosteado en GitHub, que es el motor detrás de las implementaciones desde Git/Mercurial, WebJobs, y varias otras cosas en Azure Web Apps. Y además, también puede correr fuera de Azure.

¿Qué son los Web Hooks?

Un Web Hook es un callback HTTP: un HTTP POST que ocurre cuando sucede algo; una simple notificación de evento vía HTTP POST. Los Web Hooks son una manera de recibir información valiosa cuando sucede, en vez de estar continuamente pidiendo datos sin estar recibiendo nada valioso la mayor parte del tiempo.

¿Cómo integramos?

En Nubimetrics, como en muchas otras startups, usamos Slack como medio de comunicación entre los miembros del equipo. Slack provee integración con otras aplicaciones y servicios, como GitHub, Bitbucket, Trello, Asana, JIRA, Google+ Hangouts, Google Drive, Dropbox y Visual Studio Online, por nombrar algunas (si estás interesado en conocer sobre el resto de las integraciones disponibles puedes visitar https://slack.com/integrations).

Pero, como verán en la lista, no hay una integración nativa con Kudu, pero aquí vienen nuevamente los Web Hooks al rescate! Slack soporta web hooks de entrada como una forma para otras aplicaciones de postear información a Slack.

Y, para hacer las cosas aún más fáciles, hay una aplicación hosteada en GitHub, escrita en Node.js y que corre en Azure, que hace esta tarea.

Todo lo que necesitamos hacer es:

  1. Ir a la configuración de nuestro equipo en Slack y configurar una integración de webhook de entrada.
  2. Implementar la aplicación desde el botón deploy.
  3. Configurar una variable de entorno llamada slackhookuri con el valor de la URI del Paso 1.
  4. Agregar la URI de nuestra Web App en los Web Hooks del portal de Kudu, al que podemos acceder desde https://{tu azure web app}.scm.azurewebsites.net/WebHooks.
  5. Y listo!!!

Conclusión

Los Web Hooks nos proveen una forma sencilla de integrar aplicaciones web. Usando simples web requests con contenido JSON podremos integrar casi cualquier cosa!

@gjbellmann

Build 2015

Mejoras de Microsoft Azure anunciadas en Build 2015

Hoy arrancó //build/ 2015 y se hicieron varios anuncios muy interesantes de la plataforma de Microsoft Azure.

Veamos un resumen de cada uno de ellos: Sigue leyendo