你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
前端 Web 应用程序通常为数据和服务调用后端 API。 默认情况下,Azure Static Web Apps通过 Azure Functions 提供内置无服务器 API 终结点。
Static Web Apps 中的 Azure Functions API 在托管计划的基础上提供两种可能的配置:
托管函数:默认情况下,静态 Web 应用的 API 是一种由 Azure Static Web Apps 托管和部署的 Azure Functions 应用程序,并且会受到一些限制。
创建自己的函数:(可选)可以提供任何计划类型的现有Azure Functions应用程序,其中包括Azure Functions的所有功能。 使用此配置,用户需负责单独部署此 Functions 应用。
下表对比了使用托管函数和现有函数之间的差异。
| 功能 | 托管函数 | 创建自己的函数 |
|---|---|---|
| 访问 Azure Functions 触发器及绑定 | 仅限 HTTP | 全部 |
| 支持的 Azure Functions 运行时1 | 请参阅支持的语言和运行时。 | 全部 |
| 支持的 Azure Functions 托管计划 | 消耗 | 消耗 高级 专属 |
| 集成安全性,可直接访问用户身份验证和基于角色的授权数据 | ✔ | ✔ |
路由集成,可向 Web 应用安全地提供 /api 路由,而无需自定义 CORS 规则。 |
✔ | ✔ |
| Durable Functions 编程模型 | ✕ | ✔ |
| 托管标识 | ✕ | ✔ |
| Azure 应用服务身份验证和授权令牌管理 | ✕ | ✔ |
| 在 Azure Static Web Apps 之外可用的 API 函数 | ✕ | ✔ |
| 密钥保管库 引用 | ✕ | ✔ |
1 若要在托管函数中指定运行时版本,请向前端应用添加配置文件并设置 apiRuntime 属性。 支持受 Azure Functions 语言运行时支持策略的约束。
用于Static Web Apps的 API 选项包括以下Azure服务:
有关详细信息,请参阅 API 概述。
配置
API 终结点通过 api 路由向 Web 应用提供。
| 托管函数 | 创建自己的函数 |
|---|---|
虽然 /api 路由已固定,但你可以控制托管函数应用的源代码文件夹位置。 可以通过编辑工作流 YAML 文件来改变此位置,该文件位于存储库的 .github/workflows 文件夹中的。 |
向 /api 路由发出的请求将发送到现有Azure Functions应用。 |
故障排除和日志
仅当添加 Application Insights 时,日志才可用。
| 托管函数 | 创建自己的函数 |
|---|---|
| 通过在静态 Web 应用上启用 Application Insights 来开启日志记录。 | 通过在Azure Functions应用上启用 Application Insights 来启用日志记录。 |
约束
除了 Static Web Apps API constraints 外,以下限制也适用于Azure Functions API:
| 托管函数 | 创建自己的函数 |
|---|---|
|
|