Я работаю над Azure Приложение функции. net ядро 3.1 с повторной попыткой Полли и автоматическим выключателем. до сих пор у меня не было проблем с регистрацией деталей в App Insights с использованием компоновщика, потому что он не инициализируется до выполнения, как показано ниже
private static void AddPoliciesAsync(this IHttpClientBuilder builder)
{
builder.AddPolicyHandler((service, request) =>
GetRetryAsyncPolicy(service.GetService<ILogger<HTTPTrigger1>>()).WrapAsync(
GetCircuitBreakerAsyncPolicy(service.GetService<ILogger<HTTPTrigger1>>())));
}
Где HTTPTrigger1 - имя приложения функции для тестирования. Теперь мне нужно расширить существующую функциональность, чтобы проверить, не нарушена ли схема или нет, чтобы я мог запустить другой набор бизнес-функций. Для этого, как упомянуто здесь https://github.com/App-vNext/Polly#circuit -breaker , я добавил одноэлементный экземпляр CB, чтобы убедиться, что я читаю состояние автоматического выключателя.
var logger = services.BuildServiceProvider().GetService<ILogger<HTTPTrigger1>>();
var circuitBreaker = GetCircuitBreakerAsyncPolicy(logger);
services.AddSingleton(circuitBreaker as ICircuitBreakerPolicy<HttpResponseMessage>);
services.AddHttpClient("name", client =>
{
// something
})
.AddPollyPolicies(logger, circuitBreaker);
Но получаю ошибку при получении экземпляра регистратора на второй реализации. Как я отмечал в MS документах https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-dependency-injection#caveats говорит, что не регистрировать сообщение во время запуска, даже если создается экземпляр, он по-прежнему выдает ошибку (которая требуется для последующих вызовов). В любом случае я могу добиться регистрации здесь?