Saltar al contenido

Cómo agregar valores de configuración en AppSettings.json en funciones de Azure. ¿Hay alguna estructura para ello?

Tenemos la contestación a este atasco, o por lo menos eso pensamos. Si tienes preguntas dínoslo, que con gusto te responderemos

Solución:

En Azure Functions 2.x, debe usar el estilo de administración de configuración de .Net core, incluido en el paquete Microsoft.Extensions.Configuration. Esto le permite crear un local settings.json archivo en su computadora dev para la configuración local en el Values y ConnectionString parte del archivo json. El local json El archivo de configuración no se publica en Azure y, en su lugar, Azure obtendrá la configuración de la configuración de la aplicación asociada con la función.

En su código de función, acepte un parámetro de tipo Microsoft.Azure.WebJobs.ExecutionContext context, donde luego puede construir un IConfigurationRoot proveedor:

[FunctionName("MyFunction")]
public static async Task Run([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer,
    TraceWriter log, Microsoft.Azure.WebJobs.ExecutionContext context, 
    CancellationToken ctx)
{
   var config = new ConfigurationBuilder()
        .SetBasePath(context.FunctionAppDirectory)
        .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
        .AddEnvironmentVariables()
        .Build();

    // This abstracts away the .json and app settings duality
    var myValue = config["MyKey"];

    var myConnString = config.GetConnectionString("connString");
    ... etc

El AddJsonFile le permite agregar un archivo de configuración de desarrollo local, por ejemplo local.settings.json que contiene valores de desarrollo local (no publicado)

{
  "IsEncrypted": false,
  "Values": 
    "MyKey": "MyValue",
     ...
   ,
   "ConnectionStrings": 
      "connString": "...."

Aunque aparentemente se desaconseja usar ConnectionStrings para cualquier otra cosa que no sea EF

Y una vez implementado en Azure, puede cambiar los valores de la configuración en la hoja Configuración de la aplicación de funciones:

Configuración de la aplicación

Como se indica aquí

Estas configuraciones también se pueden leer en su código como variables de entorno. En C#, utilice System.Environment.GetEnvironmentVariable o ConfigurationManager.AppSettings. En JavaScript, utilice process.env. La configuración especificada como una variable de entorno del sistema tiene prioridad sobre los valores en el local.settings.json Archivo.

no tienes que usar System.Environment.GetEnvironmentVariable() para acceder a la configuración de su aplicación.

ConfigurationManager está disponible para Azure Functions en run.csx así:

System.Configuration.ConfigurationManager.AppSettings["SettingName"]

Comentarios y valoraciones

Nos puedes sustentar nuestro estudio dejando un comentario o puntuándolo te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *