Ejecutar WebJobs desde Fiddler o tu aplicación

En varias ocasiones he hablado de los WebJobs, asociados a Microsoft Azure Websites, y cómo es posible convertir una aplicación de consola utilizando este servicio e incluso lanzar acciones dentro de WebJobs mediante queues o blobs. En esta ocasión quería mostrar cómo es posible ejecutar un WebJob desde Fiddler o incluso desde nuestra propia aplicación.

Descargar el perfil de publicación

Para poder llamar a un WebJob es necesario estar autenticados pero ¿con qué credenciales? Con las del perfil de publicación. Cuando utilizamos Web Deploy, y tenemos asociado nuestro Visual Studio a una cuenta de Microsoft Azure, este es un paso transparente para nosotros. El propio IDE descarga un archivo XML, el cual nos completa la información de despliegue:

Publish Web

Para poder descargar dicho archivo basta con seleccionar el sitio web donde queremos alojar el WebJob y hacer clic sobre la opción Download the publish profile del apartado quick glance:

quick glance - download the publish profile

Este archivo contiene tanto las credenciales de despliegue como de publicación (Web Deploy y FTP). Para este post, los valores que debemos copiar son: userName (sin el nombre del sitio) y el hash de la password, almacenado en userPWD.

Obtener la URL de llamada al WebJob

El siguiente paso es saber a dónde tenemos que llamar para poder ejecutar el WebJob. Si bien no está lo suficientemente visible, existe una URL por cada WebJob que creamos. La misma se compone de https://SITE_NAME.scm.azurewebsites.net/api/triggeredwebjobs/NOMBRE_DEL_JOB/run. Sólo cuando creamos uno de tipo programado podemos acceder a esta información, haciendo clic sobre el enlace Schedule del WebJob:

Website - WebJob - Schedule link

Este nos llevará al servicio Scheduler donde podremos ver todos aquellos WebJobs que estén siendo lanzados de una forma programada:

Scheduler WebJobs

Si accedemos al que aparece en la lista, nos llevará a una sección llamada job action, donde podremos comprobar su configuración:

Scheduler job action

El servicio Scheduler está realizando una llamada POST a la URL mencionada anteriormente, con las cabeceras Authorization, donde se incluyen las credenciales del perfil de publicación, y Content-Type usando text/plain.

Si no tuvieras ningún WebJob programado, puedes utilizar los recuadros de este post para obtener la cadena en base64, compuesta por userName:userPWD

Llamada desde Fiddler

¡Listo! ya sabemos cómo funcionan las llamadas a los WebJobs. En este ejemplo he utilizado Fiddler para realizar la prueba:

Fiddler calling a WebJob

El resultado de esta acción debería ser un 202 (Accepted). Además, podemos comprobar los logs del WebJob en la siguiente URL: https://SITE_NAME.scm.azurewebsites.net/azurejobs/#/jobs/triggered/WEBJOB_NAME

WebJob Recent job runs

Espero que sea de utilidad.

¡Saludos!

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.