[英]Azure Durable Functions - where's the HostBuilder equivalent?
我正在使用Azure 持久函数<\/a>来编排当前包含在同一项目中的其他函数。 我想为那些编排的功能配置服务和日志记录。 我怎样才能做到这一点?
这里有一些更详细的信息:
在“普通”Azure 函数中,我有一个
Program.cs<\/code>和一个
Main<\/code>方法,其中包含以下代码,用于设置函数执行的环境:
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults()
.ConfigureLogging(loggingBuilder => { loggingBuilder.SetMinimumLevel(LogLevel.Trace); })... etc. pp.
默认情况下,ILogger 实例被注入到您的函数中,除非您使用 DI。您需要做的就是使用 ILogger。
[FunctionName("funcname")]
public async static Task RunOrchestrator(
[OrchestrationTrigger] DurableOrchestrationContext context,
ILogger log)
{
log.LogInformation("Starting Orchestration");
}
如果您使用依赖注入, 请检查Incase,您应该在启动 builder.Services.AddLogging(); 中执行以下操作;
因此,解决方案是使用此处<\/a>概述的
FunctionsStartup<\/code>类。
这应该使依赖注入工作,也适用于持久功能。
对我来说,它并没有立即起作用,而且花了一段时间才弄清楚原因。 我尝试的是向静态方法添加一个附加参数(
myService<\/code> ),如下所示:
[FunctionName("DurableFunctionsOrchestrationCSharp1_Hello")]
public static string SayHello([ActivityTrigger] string name, ILogger log, IMyService myService)
{
log.LogInformation($"Saying hello to {name}.");
return $"Hello {name}!";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.