Azure functions 存储Azure函数的环境变量的最佳位置
我正在用几个api键在本地测试azure函数。存储环境变量的最佳位置是什么?如何访问它们?我试过了Azure functions 存储Azure函数的环境变量的最佳位置,azure-functions,Azure Functions,我正在用几个api键在本地测试azure函数。存储环境变量的最佳位置是什么?如何访问它们?我试过了 System.Environment.GetEnvironmentVariable("name")} 但我不确定环境变量存储在哪里 谢谢 要存储api密钥,可以使用应用程序设置。细节: 要获取环境变量或应用程序设置值,请使用System.environment.GetEnvironmentVariable,如以下代码示例所示: public static void Run(TimerInfo
System.Environment.GetEnvironmentVariable("name")}
但我不确定环境变量存储在哪里
谢谢 要存储api密钥,可以使用应用程序设置。细节: 要获取环境变量或应用程序设置值,请使用System.environment.GetEnvironmentVariable,如以下代码示例所示:
public static void Run(TimerInfo myTimer, TraceWriter log)
{
log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
log.Info(GetEnvironmentVariable("AzureWebJobsStorage"));
log.Info(GetEnvironmentVariable("WEBSITE_SITE_NAME"));
}
public static string GetEnvironmentVariable(string name)
{
return name + ": " +
System.Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Process);
}
详情:
谢谢,Alexey将键/值对放在appsettings.json文件的“Values”属性下。您应该有一个名为local.settings.json的文件。这是我们的azure网站 它说 这些设置也可以作为环境变量在代码中读取。在C#中,使用System.Environment.GetEnvironmentVariable或ConfigurationManager.AppSettings。在JavaScript中,使用process.env。指定为系统环境变量的设置优先于local.Settings.json文件中的值 示例local.settings.json
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "<connection string>",
"AzureWebJobsDashboard": "<connection string>"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "*"
},
"ConnectionStrings": {
"SQLConnectionString": "Value"
}
}
在Azure Functions 2中,我们移动到ASP.NET核心配置,不再支持ConfigurationManager。这一点在第三章中仍然成立 我看过很多文章,其中人们都在努力让ConfigurationBuilder设置正常工作。问题是,一旦您开始执行最近添加的DI,由于无法访问上下文参数(1),就会出现一些恼人的情况。只使用Environment.GetEnvironmentVariable要干净得多 这完美地映射到Azure函数的配置模型:在dev中,它拾取local.settings.json>Values数组中的项,在生产中,它拾取您的环境变量。它只是工作 我看不到任何负面影响,除了它与我们在MVC中所做的不同。但这不是MVC,而是功能,在MS将这些平台更好地结合起来之前,我们应该对功能上最好的东西敞开心扉,而不是强迫一个不同的范例在这里工作 您的local.settings.json可能如下所示:
{
"IsEncrypted": false,
"Values": {
"KeystoneDB": "[CONNECTION STRING HERE]"
"FUNCTIONS_WORKER_RUNTIME": "dotnet"
}
}
在生产中,您可以在门户中设置环境变量
(1) 据我所知,没有其他干净的方法可以满足ConfigurationBuilder().SetBasePath的要求。请参阅:好文章。很难在azure页面中找到这样的页面。实际上,我希望在不将设置存储在Azure中的情况下进行本地测试,我从上面收集的设置表明,键/值对属于values属性下的appSettings.json。您能举一个例子说明local.settings.json如何查找AzureWebJobstorage和WEBSITE\u SITE\u NAME吗?看起来您可以在Azure和Azure中使用env变量在visual studio for local runtime:构建的环境变量中进行本地设置如何使用此选项进行环境转换?i、 e.我的dev env值与prod不同。您可以通过更新Azure中的函数应用程序来控制这一点:)谢谢!昨晚刚刚发现。我不得不重新运行
func host start
以从process.env
获取新值,如CustomSetting
。方法不明确。上述工作于2017年完成。
{
"IsEncrypted": false,
"Values": {
"KeystoneDB": "[CONNECTION STRING HERE]"
"FUNCTIONS_WORKER_RUNTIME": "dotnet"
}
}