Azure Функции Премиум-план по-прежнему имеет холодный старт после бездействия или развертывания - PullRequest
2 голосов
/ 20 января 2020

Я создал простую функцию Hello World с HTTP-триггером, используя Azure CLI, и развернул ее в Azure, Северная Европа. Код можно увидеть на GitHub . Я указал EP2 SKU (премиальный план) с 3 минимальными и 3 предварительно нагретыми экземплярами. Я также создал промежуточный слот, в котором я могу развернуть и обменять его с производством.

# Create a Premium plan with EP2
az functionapp plan create \
  --name $plan \
  --resource-group $resourceGroup \
  --location $location \
  --min-instances 3 \
  --max-burst 5 \
  --sku EP2 

# Create the Function App
az functionapp create \
  --name $functionAppName \
  --storage-account $storageName \
  --plan $plan \
  --resource-group $resourceGroup

# Create a staging slot
az functionapp deployment slot create \
  --name $functionAppName \
  --resource-group $resourceGroup \
  --slot staging

# Configure for 3 pre-warmed instances
az resource update -g $resourceGroup -n $functionAppName/config/web \
  --set properties.preWarmedInstanceCount=3 \
  --resource-type Microsoft.Web/sites

Полный код CLI для создания ресурсов можно увидеть на GitHub

У меня все еще начинаются холодные запуски и недопустимо переменное время отклика (сообщается в разделе «Монитор портала» для триггера HTTP):

  • Среднее время отклика функции в горячем состоянии: 3-4 мс
  • После простоя: до секунды
  • При постановке на производственный своп, даже с подогревом постановки: 250-500 мс
  • Случайно, длительное время отклика до секунды

Что-то не так с моей конфигурацией? Нельзя ожидать поведения для Azure функций на премиум-плане.

1 Ответ

0 голосов
/ 21 января 2020

Для этой проблемы я проверил его на своей стороне и нашел тот же результат, что и ваш. Несмотря на то, что я установил предварительно нагретые экземпляры, когда функция бездействует, для ответа потребуется еще некоторое время.

Но в моем тесте, если я увеличу предварительно нагретые экземпляры, время отклика сократится. Поэтому не могли бы вы попытаться увеличить количество предварительно нагретых экземпляров и снова запросить вашу функцию после простоя? Вы можете настроить количество предварительно нагретых экземпляров, выполнив следующие шаги:

Go для своего функционального приложения и нажмите «Функции платформы» -> «Все настройки» -> «Масштаб». out (План обслуживания приложения) "

Если это не уменьшает время отклика или время отклика не может соответствовать вашему требованию после увеличения предварительно нагретых экземпляров. Я предлагаю вам подать заявку в службу поддержки на портале Azure, перейдя по этой ссылке . Служба поддержки может увидеть код вашей функции и попытаться помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...