Azure Functions HTTP 觸發程式和系結概觀
Azure Functions 可透過 HTTP 要求叫用,以建置無伺服器 API 並回應 Webhook。
動作 | 類型 |
---|---|
從 HTTP 要求執行函式 | 觸發程序 |
從函式傳回 HTTP 回應 | 輸出繫結 |
安裝擴充功能
您安裝的延伸模組 NuGet 套件取決於您在函式應用程式中使用的 C# 模式:
函式會在隔離的 C# 背景工作進程中執行。 若要深入瞭解,請參閱 在隔離背景工作程序中執行 C# Azure Functions 的指南。
擴充功能的功能會根據擴充功能版本而有所不同:
安裝搭售方案
從 Functions 2.x 版開始,HTTP 擴充功能是延伸模組套件組合的一 部分,該套件會在您的host.json項目檔中指定。 若要深入瞭解,請參閱 延伸模組套件組合。
此版本的延伸模組應該已可供您的函式應用程式使用,且具有 延伸模組套件組合 2.x 版。
host.json 設定
本節說明 2.x 版和更新版本中此系結可用的組態設定。 host.json檔案中的設定會套用至函式應用程式實例中的所有函式。 下列範例host.json檔案只包含此系結的 2.x+ 版設定。 如需 2.x 版和更新版本中函式應用程式組態設定的詳細資訊,請參閱 Azure Functions 的host.json參考。
注意
有關 Functions 1.x 中 host.json 的參考,請參閱適用於 Azure Functions 1.x 的 host.json 參考。
{
"extensions": {
"http": {
"routePrefix": "api",
"maxOutstandingRequests": 200,
"maxConcurrentRequests": 100,
"dynamicThrottlesEnabled": true,
"hsts": {
"isEnabled": true,
"maxAge": "10"
},
"customHeaders": {
"X-Content-Type-Options": "nosniff"
}
}
}
}
屬性 | 預設 | 描述 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
customHeaders | none | 可讓您在 HTTP 回應中設定自訂標頭。 上一個範例會將 X-Content-Type-Options 標頭新增至回應,以避免內容類型探查。 此自定義標頭適用於函式應用程式中的所有 HTTP 觸發函式。 |
||||||||||
dynamicThrottlesEnabled | 真* | 啟用時,此設定會導致要求處理管線定期檢查系統性能計數器,例如 connections/threads/processes/memory/cpu/etc ,如果其中任何計數器超過內建的高閾值(80%),要求將會遭到 429 "Too Busy" 拒絕,直到計數器(s) 回到正常層級為止。*取用機制中的預設值為 true 。 Premium 和 Dedicated 方案中的預設值為 false 。 |
||||||||||
hsts | 未啟用 | 當 設定為 時isEnabled ,會強制執行 .NET Core 的 HTTP Strict Transport Security (HSTS) 行為,如 類別中所HstsOptions 定義。true 上述範例也會將 maxAge 屬性設定為10天。 支援的屬性 hsts 如下:
|
||||||||||
maxConcurrentRequests | 100* | 平行執行的 HTTP 函式數目上限。 這個值可讓您控制並行,這有助於管理資源使用率。 例如,您可能會有使用大量系統資源(記憶體/cpu/套接字)的 HTTP 函式,如此一來,當並行存取太高時,就會造成問題。 或者,您可能有一個函式向第三方服務發出輸出要求,而且這些呼叫必須受到速率限制。 在這些情況下,套用節流會有所幫助。 *使用量方案的預設值為100。 Premium 和 Dedicated 方案的預設值為未系結 ( -1 )。 |
||||||||||
maxOutstandingRequests | 200* | 在任何指定時間保留的未完成要求數目上限。 此限制包含已排入佇列但尚未開始執行的要求,以及任何進行中的執行。 會以 429「忙碌」回應來拒絕任何超過此限制的連入要求。 這樣可讓呼叫者採用以時間為基礎的重試策略,並且也協助您控制要求延遲的上限。 此動作只會控制在指令碼主機執行路徑內發生的佇列處理。 其他佇列 (例如 ASP.NET 要求佇列) 仍然有效,且不受此設定的影響。 *使用量方案的預設值為 200。 Premium 和 Dedicated 方案的預設值為未系結 ( -1 )。 |
||||||||||
routePrefix | api | 適用於所有路由的路由前置詞。 若要移除預設前置詞,請使用空字串。 |