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