如何添加Azure Functions扩展。

4

我正在尝试使用 Azure Functions 的扩展,就像这个问题中所示,但是我无法使其正常工作。

我的代码看起来像这样:(预编译,消费计划)

public static class FirstFunction
{
    [FunctionName("FirstFunction"),]
    public static void Run([TimerTrigger("0 */5 * * * *", RunOnStartup = true)]TimerInfo myTimer, TraceWriter log)
    {
        log.Info($"Started = { TestExtension.Started }");
        log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
    }
}

public class TestExtension : IExtensionConfigProvider
{
    public static bool Started = false;

    public void Initialize(ExtensionConfigContext context) {
        Started = true;
        Console.WriteLine("TestExtensionConsole");
        context.Trace.Error("TestExtension");

        throw new Exception("TextExtensionException");
    }
}

但是在运行时没有任何反应。我看到来自计时器的日志Started = false,但除此之外没有其他信息。

我需要启用扩展或其他什么吗?

1个回答

10
在启动时运行代码并不是 IExtensionConfigProvider 的主要目的。它被设计为用户创建自定义绑定的可扩展性点。
因此,除非您的函数使用自定义绑定,否则 IExtensionConfigProvider 的实现不会被运行时主机自动加载,请参见代码
您所提到的答案的作者使用他的扩展来实现依赖注入与自定义绑定,所以对他有效。
如果您打算将扩展用于自定义绑定,则在函数中使用该绑定,扩展将开始加载。

谢谢您的回答。我计划将其用于 DI,但首先我进行了一个小测试。 - adrianm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接