Выходные привязки HTTP для функций AzureAzure Functions HTTP output bindings

Привязка для вывода HTTP используется для ответа отправителю запроса HTTP.Use the HTTP output binding to respond to the HTTP request sender. Эта привязка требует наличия триггера HTTP и позволяет настроить ответ на запрос этого триггера.This binding requires an HTTP trigger and allows you to customize the response associated with the trigger's request.

Возвращаемое по умолчанию значение для функции, активируемой по HTTP:The default return value for an HTTP-triggered function is:

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

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

В следующей таблице описываются свойства конфигурации привязки, которые задаются в файле function.json.The following table explains the binding configuration properties that you set in the function.json file. Для библиотек класса C# свойства атрибута, соответствующие этим свойствам function.json, отсутствуют.For C# class libraries, there are no attribute properties that correspond to these function.json properties.

СвойствоProperty ОписаниеDescription
typetype Нужно задать значение http.Must be set to http.
directiondirection Нужно задать значение out.Must be set to out.
namename Имя переменной, используемое в коде функции для ответа, или $return для использования возвращаемого значения.The variable name used in function code for the response, or $return to use the return value.

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

Чтобы отправить ответ HTTP, используйте шаблоны ответов языкового стандарта.To send an HTTP response, use the language-standard response patterns. В C# или скрипте C# задайте тип возвращаемого значения функции IActionResult или Task<IActionResult>.In C# or C# script, make the function return type IActionResult or Task<IActionResult>. В C# атрибут возвращаемого значения не является обязательным.In C#, a return value attribute isn't required.

Примеры ответов см. в разделе с примером триггера.For example responses, see the trigger example.

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

В этом разделе описаны глобальные параметры конфигурации, доступные для этой привязки в версиях 2. x и более поздних.This section describes the global configuration settings available for this binding in versions 2.x and higher. Пример host.jsв файле ниже содержит только параметры версии 2. x + для этой привязки.The example host.json file below contains only the version 2.x+ settings for this binding. Дополнительные сведения о глобальных параметрах конфигурации в версиях 2. x и более поздних версий см. в разделе host.jsв справочнике по функциям Azure.For more information about global configuration settings in versions 2.x and beyond, see host.json reference for Azure Functions.

Примечание

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

{
    "extensions": {
        "http": {
            "routePrefix": "api",
            "maxOutstandingRequests": 200,
            "maxConcurrentRequests": 100,
            "dynamicThrottlesEnabled": true,
            "hsts": {
                "isEnabled": true,
                "maxAge": "10"
            },
            "customHeaders": {
                "X-Content-Type-Options": "nosniff"
            }
        }
    }
}
СвойствоProperty По умолчаниюDefault ОписаниеDescription
кустомхеадерсcustomHeaders нетnone Позволяет задавать пользовательские заголовки в HTTP-ответе.Allows you to set custom headers in the HTTP response. В предыдущем примере в ответ добавляется X-Content-Type-Options заголовок, чтобы избежать перехвата типа содержимого.The previous example adds the X-Content-Type-Options header to the response to avoid content type sniffing.
dynamicThrottlesEnableddynamicThrottlesEnabled условия*true* Если этот параметр включен, то конвейер обработки запросов периодически проверяет системные счетчики производительности, например connections/threads/processes/memory/cpu/etc , и если какой-либо из этих счетчиков превышает встроенный высокий порог (80%), запросы будут отклонены с 429 "Too Busy" ответом, пока счетчики не вернутся на обычные уровни.When enabled, this setting causes the request processing pipeline to periodically check system performance counters like connections/threads/processes/memory/cpu/etc and if any of those counters are over a built-in high threshold (80%), requests will be rejected with a 429 "Too Busy" response until the counter(s) return to normal levels.
*Значение по умолчанию в плане потребления — true .*The default in a Consumption plan is true. По умолчанию выделенный план имеет значение false .The default in a Dedicated plan is false.
HSTShsts не включеноnot enabled Если isEnabled для задано значение true , то поведением HTTP-протокола HTTPS (HSTS) в .NET Core является принудительное применение, как определено в HstsOptions классе.When isEnabled is set to true, the HTTP Strict Transport Security (HSTS) behavior of .NET Core is enforced, as defined in the HstsOptions class. В приведенном выше примере свойство также задает maxAge 10 дней.The above example also sets the maxAge property to 10 days. Поддерживаются hsts следующие свойства:Supported properties of hsts are:
СвойствоPropertyОписаниеDescription
ексклудедхостсexcludedHostsМассив строк имен узлов, для которого заголовок HSTS не добавляется.A string array of host names for which the HSTS header isn't added.
includeSubDomainsincludeSubDomainsЛогическое значение, указывающее, включен ли параметр Инклудесубдомаин заголовка с уровнем безопасности "Долгосрочный транспорт — Безопасность".Boolean value that indicates whether the includeSubDomain parameter of the Strict-Transport-Security header is enabled.
maxAgemaxAgeСтрока, определяющая параметр max-age заголовка с ограничением транспорта по безопасности.String that defines the max-age parameter of the Strict-Transport-Security header.
Preload (Предварительная загрузка)preloadЛогическое значение, указывающее, включен ли параметр предварительной загрузки заголовка с уровнем безопасности "Долгосрочный транспорт — Безопасность".Boolean that indicates whether the preload parameter of the Strict-Transport-Security header is enabled.
maxConcurrentRequestsmaxConcurrentRequests 100*100* Максимальное число функций HTTP, выполняемых параллельно.The maximum number of HTTP functions that are executed in parallel. Это значение позволяет управлять параллелизмом, что может помочь в управлении использованием ресурсов.This value allows you to control concurrency, which can help manage resource utilization. Например, у вас может быть функция HTTP, которая использует большое количество системных ресурсов (память, ЦП и сокеты), что вызывает проблемы при слишком высоком уровне параллелизма.For example, you might have an HTTP function that uses a large number of system resources (memory/cpu/sockets) such that it causes issues when concurrency is too high. Или у вас может быть функция, выполняющая исходящие запросы к сторонней службе, и эти вызовы должны быть ограничены скоростью.Or you might have a function that makes outbound requests to a third-party service, and those calls need to be rate limited. В таких случаях может помочь применение регулирования.In these cases, applying a throttle here can help.
*Значение по умолчанию для плана потребления — 100.*The default for a Consumption plan is 100. Значение по умолчанию для выделенного плана не ограничено ( -1 ).The default for a Dedicated plan is unbounded (-1).
maxOutstandingRequestsmaxOutstandingRequests 200*200* Максимальное число невыполненных запросов, которое хранится в любой отдельно взятый момент времени.The maximum number of outstanding requests that are held at any given time. Это ограничение включает запросы, которые находятся в очереди, но еще не начали выполняться, а также все запросы в процессе выполнения.This limit includes requests that are queued but have not started executing, as well as any in progress executions. Все входящие запросы, превышающие это ограничение, отклоняются с ответом 429 "Too Busy" (Перегрузка).Any incoming requests over this limit are rejected with a 429 "Too Busy" response. Это позволяет вызывающим объектам использовать стратегии повторов на основе времени, а также помогает вам контролировать максимальные задержки запросов.That allows callers to employ time-based retry strategies, and also helps you to control maximum request latencies. Эта настройка влияет только на очереди, которые создаются по пути выполнения средства обработки скриптов.This only controls queuing that occurs within the script host execution path. Она не влияет на другие очереди, такие как очередь запросов ASP.NET.Other queues such as the ASP.NET request queue will still be in effect and unaffected by this setting.
*Значение по умолчанию для плана потребления — 200.*The default for a Consumption plan is 200. Значение по умолчанию для выделенного плана не ограничено ( -1 ).The default for a Dedicated plan is unbounded (-1).
routePrefixroutePrefix apiapi Префикс маршрута, который применяется ко всем маршрутам.The route prefix that applies to all routes. Используйте пустую строку, чтобы удалить префикс по умолчанию.Use an empty string to remove the default prefix.

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