Привязки для вывода HTTP в Функциях Azure

Привязка для вывода HTTP используется для ответа отправителю запроса HTTP. Эта привязка требует наличия триггера HTTP и позволяет настроить ответ на запрос этого триггера.

Возвращаемое по умолчанию значение для функции, активируемой по HTTP:

  • HTTP 204 No Content с пустым телом в Функциях 2.x и более поздних версий;
  • HTTP 200 OK с пустым телом в Функциях 1.x.

Конфигурация

В следующей таблице описываются свойства конфигурации привязки, которые задаются в файле function.json. Для библиотек класса C# свойства атрибута, соответствующие этим свойствам function.json, отсутствуют.

Свойство Описание
type Нужно задать значение http.
direction Нужно задать значение out.
name Имя переменной, используемое в коде функции для ответа, или $return для использования возвращаемого значения.

Использование

Чтобы отправить ответ HTTP, используйте шаблоны ответов языкового стандарта. В C# или скрипте C# задайте тип возвращаемого значения функции IActionResult или Task<IActionResult>. В C# атрибут возвращаемого значения не является обязательным.

Примеры ответов см. в разделе с примером триггера.

Параметры файла 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"
            }
        }
    }
}
Свойство По умолчанию Описание
customHeaders нет Позволяет задавать пользовательские заголовки в ответе HTTP. В предыдущем примере в ответ добавляется заголовок X-Content-Type-Options, позволяющий избежать сканирования типа контента.
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 поддерживает следующие свойства:
СвойствоОписание
excludedHostsМассив строк имен узлов, для которых заголовок HSTS не добавляется.
includeSubDomainsЛогическое значение, указывающее, включен ли параметр includeSubDomain заголовка Strict-Transport-Security.
maxAgeСтрока, определяющая параметр max-age заголовка Strict-Transport-Security.
Preload (Предварительная загрузка)Логическое значение, указывающее, включен ли параметр preload заголовка Strict-Transport-Security.
maxConcurrentRequests 100* Максимальное количество функций HTTP, которые могут выполняться параллельно. Это значение позволяет управлять параллелизмом, что помогает при управлении использованием ресурсов. Например, у вас может быть HTTP-функция, использующая много системных ресурсов (памяти, ЦП или сокетов) таким образом, что при слишком высоком параллелизме это вызывает проблемы. Или же функция может выполнять исходящие запросы к сторонней службе, и частоту таких вызовов необходимо ограничить. В таких случаях может помочь применение регулирования.
*Значение по умолчанию для плана потребления — 100. Значение по умолчанию для плана ценовой категории "Выделенный" не ограничено (-1).
maxOutstandingRequests 200* Максимальное число невыполненных запросов, которое хранится в любой отдельно взятый момент времени. Это ограничение включает запросы, которые находятся в очереди, но еще не начали выполняться, а также все запросы в процессе выполнения. Все входящие запросы, превышающие это ограничение, отклоняются с ответом 429 "Too Busy" (Перегрузка). Это позволяет вызывающим объектам использовать стратегии повторов на основе времени, а также помогает вам контролировать максимальные задержки запросов. Эта настройка влияет только на очереди, которые создаются по пути выполнения средства обработки скриптов. Она не влияет на другие очереди, такие как очередь запросов ASP.NET.
*Значение по умолчанию для плана потребления — 200. Значение по умолчанию для плана ценовой категории "Выделенный" не ограничено (-1).
routePrefix api Префикс маршрута, который применяется ко всем маршрутам. Используйте пустую строку, чтобы удалить префикс по умолчанию.

Дальнейшие действия