Функции Azure со средой выполнения Javascript медленно читают запросы httptrigger - PullRequest
0 голосов
/ 24 октября 2018

Я отправляю данные (4 МБ) как отправленный запрос функциям Azure с Javascript Runtime и HttpTrigger.В функции я распаковываю данные и обрабатываю их.Требуется 6-7 секунд, чтобы запустить код в функции, но обратная передача запроса занимает почти 60 секунд.Я понимаю, что загрузка запроса занимает некоторое время, но я не ожидал такой огромной задержки.Как я могу отладить, где идет время?

Это не проблема холодного запуска, поскольку запрос занимает 60 секунд последовательно.

1 Ответ

0 голосов
/ 24 октября 2018

Насколько я знаю, функции Azure еще не поддерживают подключение App Insights Profiler, однако вы можете добавить свою собственную телеметрию.

Это не обязательно поможет, если время будет проводиться внутривремя выполнения функций Azure, но это может помочь устранить узкое место во время распаковки / обработки:

https://docs.microsoft.com/en-us/azure/application-insights/application-insights-custom-operations-tracking?toc=/azure/azure-monitor/toc.json#outgoing-dependencies-tracking

Общий подход для отслеживания пользовательских зависимостей заключается в следующем:

  • Вызовите метод TelemetryClient.StartOperation (extension), который заполняет свойства DependencyTelemetry, необходимые для корреляции, и некоторые другие свойства (отметка времени начала, продолжительность).
  • Установите другие настраиваемые свойства для DependencyTelemetry,например, имя и любой другой контекст, который вам нужен.
  • Сделайте вызов зависимости и дождитесь его.
  • Остановите операцию с помощью StopOperation, когда она закончится.
  • Обработка исключений.

Пример из документации:

public async Task RunMyTaskAsync()
{
    using (var operation = telemetryClient.StartOperation<DependencyTelemetry>("task 1"))
    {
        try 
        {
            var myTask = await StartMyTaskAsync();
            // Update status code and success as appropriate.
        }
        catch(...) 
        {
            // Update status code and success as appropriate.
        }
    }
}
...