500 Internal Server Error al ejecutar una Azure Function desde Fiddler
Es posible que a la hora de crear tu Azure Function, quieras llamarla desde un programa externo de prueba como por ejemplo Fiddler, y te encuentres con la sorpresa de que te devuelve un error 500 de tipo Internal Server Error.
Supongamos que partimos de una Azure Function que he creado con la plantilla HTTP Trigger y que por defecto, se comporta como una llamada POST que tiene un cuerpo o body de petición con la información:
{ "name": "Azure" }
Desde la opción Get function URL que veremos en run.csx de nuestra Azure Function, lograremos obtener la información que nos permitirá lanzar nuestra llamada.
Esta llamada tendrá un aspecto similar al siguiente:
https://<Function App>.azurewebsites.net/api/<Function Name>?code=<access code>
Si ejecutamos nuestra Azure Function desde un programa externo de prueba como Fiddler y ponemos en el cuerpo de la llamada el texto JSON que indicaba anteriormente, seguramente obtendremos un error 500 Internal Server Error.
Si eres de esas personas cuidadosas a las que no se les escapa una, seguramente te hayas dado cuenta del fallo, pero sino, es posible que cuando te diga como resolverlo te tirarás de los pelos.
Dentro de Fiddler, en lo que es la cabecera de la petición, tendremos que indicar lo siguiente:
Content-Type: application/json
De esta manera, al realizar la petición, Azure Function sabe que le estamos enviando en el body o cuerpo un JSON, ya que sino, se creerá que estará tratando un media type de tipo application/octet-stream.
De todos los modos, cada vez que tengas un problema al ejecutar una Azure Function, además de escribir en el log la información que pueda estar ocurriendo, si estás en una fase temprana de desarrollo te sugiero ver siempre el log que vuelca en la consola la Azure Function, ya la estemos ejecutando remotamente o desde el mismo Portal de Azure.
Para más información, también puedes acceder dentro de la Azure Function a la solapa Monitor, y allí encontrarás mayor detalle de lo que está sucediendo.
¡Happy Coding!