azure ServiceBusTrigger拾取错误的配置文件

tsm1rwdh  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(116)

我在我的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”属性匹配

ftf50wuq

ftf50wuq1#

在这个时候你不能。具有连接字符串的触发器(如Azure服务总线)需要在开发期间在local.settings.json中找到连接字符串,并在部署时通过设置将其设置为环境变量。
This thread适用于新的SDK,但仍然与您的问题相关,并提供详细信息。

相关问题