Как настроить привязку выходного BLOB-объекта с динамическим именем в функции Azure .NET 8?C#

Место общения программистов C#
Ответить
Anonymous
 Как настроить привязку выходного BLOB-объекта с динамическим именем в функции Azure .NET 8?

Сообщение Anonymous »

Я обновил свой проект «Функции Azure» с .NET 6 до .NET 8 и начал использовать изолированный от сети вместо dotnet. Я заметил, что все объекты, которые работали при добавлении в сигнатуру функции, больше не работают. Например,

Код: Выделить всё

[FunctionName("FunctionName")]
public static async Task Run([TimerTrigger("45 0 0 * * *")]TimerInfo myTimer, [DurableClient] IDurableOrchestrationClient starter, Binder binder, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed with frequency: {myTimer}");
await csvFileCreater(binder).ConfigureAwait(false);
log.LogInformation($"FunctionName - completed.");
}

private static async Task csvFileCreater(Binder binder)
{
string csvFileName = CommonUtils.GenerateCSVFileName();
var attributes = new Attribute[]
{
new BlobAttribute($"containerName/{csvFileName}"),
new StorageAccountAttribute("AzureWebsJobsStorage")
};
using (var writer = await binder.BindAsync(attributes))
{
writer.Write($"ColumnName ");
}
return csvFileName;
}
Из приведенного выше примера кода и Binder, и ILogger работали корректно в .NET 6.
Однако после при обновлении до .NET 8 значения Binder и ILogger больше не вводятся. Я нашел обходной путь для ведения журнала и включил его в своем проекте, добавив ведение журнала в файл Program.cs:

Код: Выделить всё

var host = new HostBuilder()
.ConfigureFunctionsWebApplication()
.ConfigureServices((appBuilder, services) =>
{
var config = appBuilder.Configuration;
services.AddApplicationInsightsTelemetryWorkerService();
services.ConfigureFunctionsApplicationInsights();
services.AddSingleton();
services.AddHttpClient();
})
.ConfigureLogging(logging =>
{
logging.Services.Configure(options =>
{
LoggerFilterRule defaultRule = options.Rules.FirstOrDefault(rule => rule.ProviderName
== "Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider");
if (defaultRule is not null)
{
options.Rules.Remove(defaultRule);
}
});
})
.Build();

host.Run();
Как добавить Binder (или любой другой объект) в мою функцию, чтобы я мог использовать привязку выходного блоба с динамическим именем Blob в .net 8 Function?

Подробнее здесь: https://stackoverflow.com/questions/784 ... e-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»