Personalizar a través de Proxies la ruta de nuestras Azure Functions
En anteriores entradas de mi blog, veíamos como personalizar la ruta de nuestras Azure Functions ya sea de forma global o de forma concreta para cada Azure Funtion.
Sin embargo, a la hora de personalizar la URL a la que debe antender una Azure Function, puede ser realizada de forma simple como vimos, moficando el archivo function.json o bien hacerlo a través de Proxies.
Los Azure Function Proxies fueron añadidos a las Azure Functions en Febrero del año 2017, y nos permite crear un proxy inverso ya sea con otra Azure Function, un Azure Blob Storage, u otro distinto.
En este caso, partimos de 2 Azure Functions de nombre xxx e yyy que responden a las URLs:
https://<functionapp>.azurewebsites.net/api/xxx
https://<functionapp>.azurewebsites.net/api/yyy
Y vamos a utilizar los Azure Function Proxies para añadir dos proxies (uno por cada Azure Function) que respondan a las siguientes URLs:
https://<functionapp>.azurewebsites.net/api/v1/MyFunction
https://<functionapp>.azurewebsites.net/api/v2/MyFunction
Para llevar a cabo esta tarea, vamos a acudir a nuestra Azure Function App, y dentro de esta, a la solapa Proxies como se puede ver en la siguiente imagen.
En mi caso y puesto que tengo dos Azure Functions que responden a peticiones POST, he preparado los dos Proxies como se pueden ver en la siguiente imagen:
Como vemos, indicamos la URL Proxy que queremos emplear, y la URL del servicio (en este caso de nuestra Azure Function), e indicamos incluso el verbo al que queremos que responda, así como la ruta de la plantilla que querermos emplear.
Aunque el nombre de mis dos proxies no son precisamente de lo más descriptivos, quiero que entendamos la idea detrás de este mecanismo que nos facilita enormemente la vida.
De hecho, ahora cuando llamo a mis Azure Functions, puedo hacerlo de la forma:
https://<functionapp>.azurewebsites.net/api/v1/MyFunction
https://<functionapp>.azurewebsites.net/api/v2/MyFunction
Si abrimos ahora el App Service Editor de nuestra Azure Function App, veremos que tenemos un fichero proxies.json con la información de nuestros proxies.
Allí mismo podemos modificar el nombre que le hemos dado a cada proxy así como otros detalles.
Una de las cosas más interesantes de esta forma de trabajar es que todo está en la configuración, por lo que nos ofrece bastante flexibilidad. Sólo debemos tener cierto orden a la hora de programar y organizar nuestras Azure Functions.
Happy Coding!