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:
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
oConfigurationManager.AppSettings
. En JavaScript, utiliceprocess.env
. La configuración especificada como una variable de entorno del sistema tiene prioridad sobre los valores en ellocal.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.