Обзорные сведения о триггерах и привязках HTTP в службе "Функции Azure"

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

Действие Тип
Выполнение функции из HTTP-запроса Триггер
Выходные привязки HTTP для Функций Azure Выходная привязка

Установка расширения

Устанавливаемый пакет расширения NuGet зависит от режима C#, который используется в приложении-функции:

Функции выполняются в изолированном рабочем процессе C#. Дополнительные сведения см. в руководстве по запуску Функции Azure C# в изолированном рабочем процессе.

Функциональные возможности расширения отличаются в зависимости от версии расширения:

Добавьте расширение в проект, установив пакет NuGet версии 3.x.

Примечание.

Дополнительный пакет расширения необходим для интеграции ASP.NET Core в .NET Isolated

Установка пакета

Начиная с версии 2.x, расширение HTTP входит в пакет расширений, указанный в файле проекта host.json. Дополнительные сведения см. в разделе Пакет расширений.

Эта версия расширения уже должна быть доступна для приложения-функции после установки пакета расширений версии 2.x.

Параметры файла host.json

В этом разделе описываются параметры конфигурации, доступные для этой привязки в версии 2.x или новее. Параметры в файле host.json применяются ко всем функциям в экземпляре приложения-функции. В приведенном ниже примере файла host.json содержатся только параметры этой привязки для версии 2.x или новее. Дополнительные сведения о параметрах конфигурации приложения-функции в версии 2.x или более поздней см. в статье Справочник по файлу host.json для Функций Azure.

Примечание.

Чтобы получить дополнительные сведения о файле host.json в Функции 1.x, см. статью host.json reference for Azure Functions 1.x(Справочник по файлу host.json для службы "Функции Azure" версии 1.x.).

{
    "extensions": {
        "http": {
            "routePrefix": "api",
            "maxOutstandingRequests": 200,
            "maxConcurrentRequests": 100,
            "dynamicThrottlesEnabled": true,
            "hsts": {
                "isEnabled": true,
                "maxAge": "10"
            },
            "customHeaders": {
                "X-Content-Type-Options": "nosniff"
            }
        }
    }
}
Свойство По умолчанию Description
customHeaders ничего Позволяет задавать пользовательские заголовки в ответе HTTP. В предыдущем примере в ответ добавляется заголовок X-Content-Type-Options, позволяющий избежать сканирования типа контента. Этот пользовательский заголовок применяется ко всем функциям, активированным HTTP в приложении-функции.
dynamicThrottlesEnabled true* Если этот параметр включен, он заставляет конвейер обработки запросов периодически проверять счетчики производительности системы, например connections/threads/processes/memory/cpu/etc. При превышении встроенного порогового высокого значения (80 %) любого из этих счетчиков запросы будут отклоняться с ответом 429 "Too Busy" до тех пор, пока счетчики не вернутся к нормальному уровню.
*Значение по умолчанию в плане потребления — true. Значение по умолчанию в планах false"Премиум" и "Выделенный".
hsts не включено Если для параметра isEnabled задано значение true, то принудительно применяется строгий режим безопасности транспортировки HTTP (HSTS) .NET Core в соответствии с определением в классе HstsOptions. В приведенном выше примере для свойства maxAge также задается значение "10 дней". Поддерживаемые hsts свойства:
СвойствоDescription
excludedHostsМассив строк имен узлов, для которых заголовок HSTS не добавляется.
includeSubDomainsЛогическое значение, указывающее, включен ли параметр includeSubDomain заголовка Strict-Transport-Security.
maxAgeСтрока, определяющая параметр max-age заголовка Strict-Transport-Security.
предварительная загрузкаЛогическое значение, указывающее, включен ли параметр preload заголовка Strict-Transport-Security.
maxConcurrentRequests 100* Максимальное количество функций HTTP, которые могут выполняться параллельно. Это значение позволяет управлять параллелизмом, что помогает при управлении использованием ресурсов. Например, у вас может быть HTTP-функция, использующая много системных ресурсов (памяти, ЦП или сокетов) таким образом, что при слишком высоком параллелизме это вызывает проблемы. Или же функция может выполнять исходящие запросы к сторонней службе, и частоту таких вызовов необходимо ограничить. В таких случаях может помочь применение регулирования.
*Значение по умолчанию для плана потребления — 100. Значение по умолчанию для планов "Премиум" и "Выделенный" является необвязанным (-1).
maxOutstandingRequests 200* Максимальное число невыполненных запросов, которое хранится в любой отдельно взятый момент времени. Это ограничение включает запросы, которые находятся в очереди, но еще не начали выполняться, а также все запросы в процессе выполнения. Все входящие запросы, превышающие это ограничение, отклоняются с ответом 429 "Too Busy" (Перегрузка). Это позволяет вызывающим объектам использовать стратегии повторов на основе времени, а также помогает вам контролировать максимальные задержки запросов. Эта настройка влияет только на очереди, которые создаются по пути выполнения средства обработки скриптов. Она не влияет на другие очереди, такие как очередь запросов ASP.NET.
*Значение по умолчанию для плана потребления — 200. Значение по умолчанию для планов "Премиум" и "Выделенный" является необвязанным (-1).
routePrefix api Префикс маршрута, который применяется ко всем маршрутам. Используйте пустую строку, чтобы удалить префикс по умолчанию.

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