是否以编程方式设置.NET 5 Azure Function ServiceBusTrigger连接字符串的环境变量



首先,我知道连接字符串来自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文档

相关内容

  • 没有找到相关文章

最新更新