前端網頁應用程式經常呼叫後端 API 來處理資料與服務。 預設情況下,Azure Static Web Apps 透過 Azure Functions 提供內建的無伺服器 API 端點。
Static Web Apps 中的Azure Functions API 依據 hosting plan 提供兩種可能的配置:
Managed functions:靜態網頁應用程式的 API 預設是由Azure Static Web Apps管理與部署的Azure Functions應用程式,並帶有一些限制。
自備功能:你可以選擇性地提供任何計畫類型的現有Azure Functions應用程式,包含Azure Functions的所有功能。 使用此設定時,您必須負責處理 Functions 應用程式的個別部署。
下表對比使用受管理的函式和現有函式之間的差異。
| 功能 | 受控 Functions | 自備 Functions |
|---|---|---|
| 存取 Azure Functions 觸發器與綁定 | 僅限 HTTP | 全部 |
| 支援 Azure Functions runtimes1 | 請參閱 支援的語言和運行時間。 | 全部 |
| 支援Azure Functions 主機計畫 | 使用量 | 使用量 進階 專用 |
| 整合式安全性 ,可直接存取使用者驗證和角色型授權數據 | ✔ | ✔ |
路由整合 ,可 /api 安全地將路由提供給 Web 應用程式,而不需要自訂 CORS 規則。 |
✔ | ✔ |
| Durable Functions程式設計模型 | ✕ | ✔ |
| 受控識別 | ✕ | ✔ |
| Azure App 服務 認證與授權 令牌管理 | ✕ | ✔ |
| API 函數可在 Azure Static Web Apps 外部使用 | ✕ | ✔ |
| 金鑰保存庫參考資料 | ✕ | ✔ |
1 若要在 Managed 函式中指定執行時間版本,請將組態檔新增至前端應用程式並設定 apiRuntime 屬性。 支援受 Azure Functions 語言執行時支援政策 約束。
Static Web Apps 的 API 選項包括以下 Azure 服務:
如需詳細資訊, 請參閱 API 概觀 。
組態
API 端點可透過 api 路由提供給 Web 應用程式。
| 受控 functions | 自備 functions |
|---|---|
雖然 /api 路由是固定的,但您可以控制受管函數應用程式的原始碼資料夾位置。 您可以編輯存放庫 .github/workflows 資料夾中的工作流程 YAML 檔案來變更此位置。 |
發送到 /api 路由的請求將被傳送到您現有的 Azure Functions 應用程式。 |
疑難解答和記錄
只有在您新增 Application Insights 時,才能使用記錄。
| 受控 functions | 自備 functions |
|---|---|
| 在靜態 Web 應用程式上啟用 Application Insights,以開啟記錄功能。 | 啟用 Azure Functions 應用程式中的 Application Insights 來開啟日誌功能。 |
限制
除了Static Web Apps API constraints外,以下限制也適用於Azure Functions API:
| 受控 functions | 自備 functions |
|---|---|
|
|