如何添加Azure Functions扩展

adr*_*anm 3 precompiled azure-functions

我正在尝试在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");
    }
}
Run Code Online (Sandbox Code Playgroud)

但是在运行时什么也没有发生。我从计时器看到日志,Started = false但没有其他。

我需要启用扩展功能吗?

Mik*_*kov 7

在启动时运行代码并不完全是的目的IExtensionConfigProvider。它被设计为用户创建自定义绑定的可扩展点。

因此,除非您的函数使用自定义绑定,否则IExtensionConfigProvider运行时主机不会自动加载的实现,请参见代码

您所指的答案的作者正在使用其扩展程序通过自定义绑定实现“依赖注入”,因此它对他有效。

如果打算将扩展名用于自定义绑定,请在函数中使用该绑定,然后扩展名将开始加载。