Поделиться через


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

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

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

Примечание.

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

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

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

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

Переключатель состояния функции

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

Примечание.

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

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

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

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

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

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

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

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

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

Внимание

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

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

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

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

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

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

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

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

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

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

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