您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

Azure 静态 Web 应用中通过 Azure Functions 提供 API 支持

Azure 静态 Web 应用通过 Azure Functions 提供无服务器 API 终结点。 利用 Azure Functions,API 可根据需要动态缩放,并且其中包括以下功能:

  • 集成安全性,可直接访问用户身份验证和基于角色的授权数据。

  • 无缝路由,可向 Web 应用安全地提供 api 路由,而无需自定义 CORS 规则。

以下两种可能的配置支持 Azure Static Web Apps API,具体取决于托管计划

  • 托管函数:默认情况下,静态 Web 应用的 API 是与某些限制关联的 Azure Static Web Apps 所托管和部署的 Azure Functions 应用程序。

  • 创建自己的函数:用户可选择针对任何计划类型提供现有 Azure Functions 应用程序,以及 Azure Functions 的所有功能。 使用此配置,用户需负责单独部署此 Functions 应用。

下表对比了使用托管函数和现有函数之间的差异。

功能 托管函数 创建自己的函数
访问 Azure Functions 触发器 仅 Http 全部
支持 Azure Functions 运行时 Node.js 12
.NET Core 3.1
.NET 6.0
Python 3.8
全部
支持 Azure Functions 托管计划 消耗 消耗
高级
专用
集成安全性,可直接访问用户身份验证和基于角色的授权数据
路由集成,可向 Web 应用安全地提供 api 路由,而无需自定义 CORS 规则。
Durable Functions 编程模型
托管的标识
Azure 应用服务身份验证和授权令牌管理
Azure Static Web Apps 外部的可用 API 函数
密钥保管库引用

配置

API 终结点通过 api 路由向 Web 应用提供。

托管函数 创建自己的函数
虽然 API 路由已固定,但你可以控制托管函数应用的源代码文件夹位置。 可以通过编辑工作流 YAML 文件来改变此位置,该文件位于存储库的 .github/workflows 文件夹中的。 对 api 路由的请求将发送到现有 Azure Functions 应用。

故障排除和日志

仅当添加 Application Insights 时,日志才可用。

托管函数 创建自己的函数
通过启用静态 Web 应用上的 Application Insights,启用日志记录。 通过启用 Azure Functions 应用上的 Application Insights,启用日志记录。

约束

托管函数 创建自己的函数
  • 触发器仅限于 HTTP
  • Azure Functions 应用必须使用 Node.js 12、.NET Core 3.1、.NET 6.0 或 Python 3.8。
  • 某些应用程序设置由服务管理,因此运行时已保留以下前缀:
    • APPSETTING_、AZUREBLOBSTORAGE_、AZUREFILESSTORAGE_、AZURE_FUNCTION_、CONTAINER_、DIAGNOSTICS_、DOCKER_、FUNCTIONS_、IDENTITY_、MACHINEKEY_、MAINSITE_、MSDEPLOY_、SCMSITE_、SCM_、WEBSITES_、WEBSITE_、WEBSOCKET_、AzureWeb
  • 用户负责管理 Functions 应用部署。

后续步骤