Manejar los parámetros de configuración de tu aplicación .NET puede resultar algo complejo y tedioso, y más cuando tienes que estar pendiente de los distintos entornos de desarrollo que utilizarás (desarrollo, producción, etc.). Azure App Configuration puede hacer que este proceso sea más rápido, flexible y, sobre todo, más fácil de mantener y escalar. Te lo cuento en este artículo.
Con este servicio puedes gestionar en tiempo real la configuración de todas tus aplicaciones localizadas en Azure. Por si fuera poco, puedes configurar Azure App Configuration para que gestione el acceso a tus Azure Key Vault, de forma segura y totalmente desatendida.
Implementación
Bueno, vayamos al grano; ¿cómo implementamos Azure App Configuration en nuestra aplicación?
Pues muy sencillo. Lo único de quedemos hacer es implementar en nuestro fichero Program.cs el siguiente bloque de código:
Con esto ya podremos disfrutar de todas las ventajas que nos otorga Azure App Configuration.
Key Vault
Ahora vayamos por partes. Con la primera parte del código, estaremos estableciendo los parámetros básicos de nuestro servicio. Es decir, estaremos definiendo la URI en la que tenemos configurado nuestro App Configuration, así como la configuración necesaria para poder utilizar secretos de Key Vault desde el mismo.
¿Y cómo usamos estos secretos? Pues muy sencillo, lo único que deberemos hacer es crear una nueva referencia a Key Vault desde nuestro App Configuration en Azure.
Una vez creado, podrás acceder a esta propiedad como accederías a cualquier otra propiedad de tu configuración.
Refresh Options
Ahora viene una parte interesante: el RefreshOptions. Con esto estaremos diciéndole a nuestro App Configuration cuál es el parámetro de la configuración que hace de gatillo para que se apliquen todos los cambios que hemos hecho en tiempo real en nuestro servicio (en nuestro caso, una propiedad llamada «Sentinel»).
Por explicarlo con un ejemplo, imaginemos que tenemos una propiedad llamada «Color» en nuestro App Configuration con un valor «azul», que definirá el color de un texto que tenemos en nuestra UI. Si nosotros cambiamos el valor de esta propiedad a «rojo», el texto en nuestra UI seguirá mostrándose azul hasta que cambiemos el valor de nuestra propiedad «Sentinel». Una vez actualizado el valor de dicha propiedad, el texto cambiará a color rojo en tiempo real, sin necesidad de hacer un reinicio de nuestra aplicación.
Select
Y, por último, el Select. Aquí estaremos diciéndole a nuestro servicio que seleccione únicamente las propiedad que tienen ciertas claves o etiquetas.
Por volver al ejemplo anterior de los los colores, podríamos añadir en nuestro Azure App Configuration los siguientes registros clave-valor:
Como podréis ver, tenemos dos valores distintos para la clave «Color». El hecho de obtener uno u otro vendrá definido por el valor de la etiqueta que tienen asociados cada uno de ellos. Así, nuestro texto se verá de color azul en el entorno «Development», mientras que será de color rojo en el entorno «Production».
¡Y esto sería todo! Ya podrías utilizar un único servicio de configuración centralizado para todas tus aplicaciones, lo que reducirá la complejidad de la configuración en varios entornos y hará tus aplicaciones más seguras al tener separada la capa de configuración de la capa de código.
¡Pruébalo!