首先,我知道连接字符串来自Azure Portal/local.settings.json上的Configuration,并且它是一个环境变量,您可以使用以下命令访问:
Environment.GetEnvironmentVariable("Name", EnvironmentVariableTarget.Process);
我正在尝试从appsettings.json设置ServiceBusTrigger连接字符串。我在这个博客后面添加了一个appsettings.json文件,介绍如何做到这一点。当我尝试使用以下内容设置环境变量时,我可以从appsettingsjson文件访问设置,但在Program.cs中:
.ConfigureAppConfiguration(c =>
{
var config = c.SetBasePath(Environment.CurrentDirectory)
.AddJsonFile("appsettings.json", true, true)
.AddEnvironmentVariables()
.Build();
// Setting the Environment Variable for the connection string
Environment.SetEnvironmentVariable(config["ConnectionString:Name"], config["ConnectionString:Value"]);
})
其中";名称";是传递给函数中的Connection的内容;值";是连接字符串,我得到以下错误:
Microsoft.Azure.WebJobs.ServiceBus:Microsoft Azure WebJobs SDK ServiceBus连接字符串"Name"丢失或为空。
我所说的连接:
public async Task Run(ServiceBusTrigger("myqueue", Connection = "Name")] string myQueueItem, FunctionContext) { // Some Implementation }
我试图避免设置连接字符串"0";名称";在Azure门户上的应用程序配置中。有没有一种方法可以通过编程实现?
- 当您通过
Environment.SetEnvironmentVariable
设置变量时,它将不会显示在应用程序设置中。但我们可以按预期通过Environment.GetEnvironmentVariable
使用它 SetEnvironmentVariable(String,String)
创建、修改或删除存储在当前进程中的环境变量- 虽然你提到的解决方案不是很好,但它可以实现你的需求。不利影响是当您重新启动功能应用程序时,变量将丢失
有关SetEnvironmentVariable
的更多信息,请参阅此MSFT文档