2017-11-29 10 views
0

this question과 같이 Azure 함수의 확장 기능을 실험하고 있지만 작동하지는 않습니다.Azure 함수 확장을 추가하는 방법

내 코드는 다음과 같습니다

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

시작시 코드 실행은 정확히 IExtensionConfigProvider의 목적이 아닙니다. 사용자 지정 바인딩을 만들 수있는 확장 지점으로 설계되었습니다.

따라서 함수가 사용자 지정 바인딩을 사용하지 않는 한 IExtensionConfigProvider의 구현은 런타임 호스트에 의해 자동로드되지 않습니다 (code 참조).

당신이 말하는 대답의 저자는 자신의 확장명을 implement Dependency Injection에 맞춤 바인딩으로 사용했기 때문에 그를 위해 작동합니다.

사용자 지정 바인딩에 확장을 사용하려는 경우 함수에서 해당 바인딩을 사용하면 확장이로드되기 시작합니다.

+0

답변 해 주셔서 감사합니다. DI 용으로 사용할 계획이지만 먼저 작은 테스트를했습니다. – adrianm