gpt4 book ai didi

c# - 使用 azure appsettings 读取 azure webjob 中 EventHubTrigger 的连接字符串

转载 作者:行者123 更新时间:2023-12-03 02:38:31 27 4
gpt4 key购买 nike

我正在使用 .Net core 3.1 编写一个 azure webjob 并从 eventhub 读取事件。我已经能够在本地工作,从本地 appsettings.json 和 appsettings.dev.json 读取所有设置。
公共(public)异步任务 ProcessEvent([EventHubTrigger("%EventHubName%", Connection = "EventHubConfigConnectionString", ConsumerGroup = "%ConsumerGroupName%")] EventData eventData)

但是,我现在尝试使用 azure appservice appsettings 来存储连接字符串,其中应用程序设置作为环境变量公开,我将其添加到配置中,如下所示:
配置 = 新的 ConfigurationBuilder()
.AddEnvironmentVariables().Build();

但我仍然收到错误:
System.ArgumentNullException:值不能为空。 (参数“连接字符串”)
在 Microsoft.Azure.EventHubs.Primitives.Guard.ArgumentNotNullOrWhiteSpace(字符串参数名称,字符串值)

我验证了变量名称是相同的。我在线阅读,看起来 EventHubTrigger 的连接字符串必须出现在 appsettings 文件中,而不是出现在环境变量中?

我错过了什么吗?

最佳答案

您的 appSettings.json 文件中应该有一个条目,我会在 connectionStrings 部分下说,如下所示:

{
"AppInsights_InstrumentationKey": "",
"ConnectionStrings": {
"EventHubConfigConnectionString": ""
}
}

我认为在 Azure 门户中,对于您的应用服务,您可以设置一个名为 EventHubConfigConnectionString 的新连接字符串,它将覆盖 appSettings.json 文件中的连接字符串:

Connection strings section under configuration blade of App service

然后在您的Program.cs中可能有以下内容:

Configuration = new ConfigurationBuilder()
.SetBasePath(Environment.CurrentDirectory)
.AddJsonFile("appSettings.json", optional: true)
.AddEnvironmentVariables()
.Build();

希望这有帮助。

关于c# - 使用 azure appsettings 读取 azure webjob 中 EventHubTrigger 的连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62321666/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com