我在我的azure函数项目中有4个配置文件,代表4个环境。
我有以下代码来红色的env特定文件的基础上ASPNETCORE_ENVIRONMENT
var executionContextOptions = builder.Services.BuildServiceProvider()
.GetService<IOptions<ExecutionContextOptions>>().Value;
var currentDirectory = executionContextOptions.AppDirectory;
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var config = new ConfigurationBuilder()
.SetBasePath(currentDirectory)
.AddJsonFile($"local.settings.{environment}.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
builder.Services.AddSingleton<IConfiguration>(config);
我能够通过像_configuration.GetSection("Values")
这样的DI访问密钥,我现在有了一个ServiceBusTrigger
[FunctionName("FuncEmployeeMessageActivity")]
public static void FuncEmployeeMessageActivity(
[ServiceBusTrigger("queue-xxxxx", Connection = "ServiceBus")] string message,
ILogger log)
{
try
{
// Process the message received from the Service Bus queue.
log.LogInformation($"Received message: {message}");
}
catch (Exception)
{
throw;
}
}
在这里,Connection
属性是在local.settings.json
中查找键ServiceBus
,而不是local.dev.settings.json
,因为我在VS中将ASPNETCORE_ENVIRONMENT
设置为dev
。我该如何解决此问题?
警告:在local.settings.json中找不到名为“ServiceBus”的值,该值与“serviceBusTrigger”上设置的“connection”属性匹配
1条答案
按热度按时间ftf50wuq1#
在这个时候你不能。具有连接字符串的触发器(如Azure服务总线)需要在开发期间在
local.settings.json
中找到连接字符串,并在部署时通过设置将其设置为环境变量。This thread适用于新的SDK,但仍然与您的问题相关,并提供详细信息。