#.net-core #azure-functions #azure-functions-core-tools
#.net-core #azure-функции #azure-functions-core-tools
Вопрос:
Я создал функциональное приложение Azure .netcore 2.0 для Linux. Могу ли я получить приведенный ниже идентификатор операции в своем коде. Для целей отслеживания нам это нужно. При регистрации исключения мы хотим также включить этот идентификатор операции в мой код .net core.
Комментарии:
1. AFAIK — идентификатор операции будет автоматически добавлен к исключениям из того же контекста операции. Application Insights уже позаботится об этом за вас. Если вы действительно хотите получить к нему доступ в любом случае для любой пользовательской телеметрии, которую вы хотите написать, вам следует посмотреть, как работают TelemetryInitializer и TelemetryProcessor. learn.microsoft.com/en-us/azure/azure-monitor/app /…
Ответ №1:
Я смог получить идентификатор вызова, добавив ExecutionContext к параметрам моей функции:
public static class Function1
{
[FunctionName("Function1")]
public static void Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, ILogger log, ExecutionContext context)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}
}
Комментарии:
1. как нам создать наш собственный идентификатор вызова и отправить его из функции Azure в AI?
2.
InvocationId
fromExecutionContext
— ЭТО НЕ то же самое, чтоoperationId
автоматически присваивается ILogger. Например:InvocationId=6b3be631-d3ad-4bfa-b70d-3c32c692bc0b
, иoperationId=849be655ea898b45a28c22a538e31723
.operationId
может быть идентификатор GUID, но это другой идентификатор GUID и отформатирован без тире.
Ответ №2:
Похоже, это System.Diagnostics.Activity.Current?.RootId
.
С этим связаны некоторые ошибки, см. https://github.com/Azure/azure-functions-host/issues/5014