Способы отключения функций в решении "Функции Azure"

В этой статье объясняется, как отключить функцию в решении "Функции Azure". Отключение функции означает, что среда выполнения игнорирует событие, предназначенное для активации функции. Эта возможность позволяет предотвратить выполнение определенной функции без необходимости изменять и повторно публиковать все приложение-функцию.

Вы можете отключить функцию, создав параметр приложения в формате AzureWebJobs.<FUNCTION_NAME>.Disabled с заданным значением true. Вы можете создать и изменить этот параметр приложения несколькими способами, в том числе с помощью Azure CLI, Azure PowerShell и на вкладке обзора функции в портал Azure.

Изменения параметров приложения приводят к перезапуску приложения-функции. Дополнительные сведения см. в статье Справочник по параметрам приложений для Функций Azure.

Отключение функции

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

Используйте кнопки Включить и Отключить на странице Обзор для функции. Эти кнопки позволяют изменить значение параметра приложения AzureWebJobs.QueueTrigger.Disabled. Параметр приложения для конкретной функции создается при первом отключении функции.

Function state switch

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

Примечание.

Отключенные функции по-прежнему можно запускать, вызывая конечную точку REST с помощью главного ключа. Дополнительные сведения см. в разделе "Запуск отключенной функции". Это означает, что отключенная функция по-прежнему выполняется при запуске из окна тестирования и запуска на портале с помощью главного (ключа узла).

Отключение функций в слоте

По умолчанию параметры приложения применяются и к приложениям, выполняемым в слотах развертывания. Однако вы можете переопределить параметр приложения, используемый слотом, задав параметр приложения для конкретного слота. Например, может потребоваться, чтобы функция была активной в рабочей среде, но не во время тестирования развертывания. Обычно функция таймера активируется в слотах, чтобы предотвратить одновременные выполнение.

Вот как можно отключить функцию только в промежуточном слоте:

Перейдите к экземпляру слота приложения-функции. Для этого выберите Слоты развертывания в разделе Развертывание, затем найдите нужный слот и выберите Функции в экземпляре слота. Выберите функцию, затем используйте кнопки Включить и Отключить на странице Обзор для функции. Эти кнопки позволяют изменить значение параметра приложения AzureWebJobs.<FUNCTION_NAME>.Disabled. Этот параметр для конкретной функции создается при первом отключении функции.

Можно также напрямую добавить параметр приложения с именем AzureWebJobs.<FUNCTION_NAME>.Disabled и значением true в разделе Конфигурация для экземпляра слота. При добавлении параметра приложения для конкретного слота обязательно установите флажок Параметр слота развертывания. Этот параметр сохраняет значение параметра с слотом во время переключений.

Дополнительные сведения см. в статье Слоты развертывания Функций Azure.

Запуск отключенной функции

Вы по-прежнему можете привести к отключенной функции, указав главный ключ в запросе REST URL-адрес конечной точки отключенной функции. Таким образом, вы можете разрабатывать и проверять функции в Azure в отключенном состоянии, предотвращая доступ к ним другими пользователями. Использование любого другого типа ключа в запросе возвращает ответ HTTP 404.

Внимание

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

Дополнительные сведения о главном ключе см. в разделе "Получение ключей". Дополнительные сведения о вызове функций, не активированных по протоколу HTTP, см. в статье Вручную запуск функции, не активной по протоколу HTTP.

Отключение функций локально

Функции можно отключить тем же способом при локальном запуске. Чтобы отключить функцию с именем QueueTrigger, добавьте запись в коллекцию Values в файле local.settings.json, как показано ниже.

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "python",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true", 
    "AzureWebJobs.QueueTrigger.Disabled": true
  }
}

Рекомендации

При отключении функций учитывайте следующее:

  • При отключении функции с триггером HTTP с помощью методов, описанных в этой статье, конечная точка по-прежнему может быть доступ к конечной точке при выполнении на локальном компьютере и на портале.

  • В настоящее время имена функций, которые содержат дефис (-) не могут быть отключены при запуске в Linux. Если вы планируете отключить функции при запуске в Linux, не используйте дефисы в именах функций.

Следующие шаги

Эта статья посвящена отключению автоматических триггеров. Дополнительные сведения о триггерах см. в статье Основные понятия триггеров и привязок в Функциях Azure.