能否在Azure静态Web应用API中使用Azure Functions V3
自定义构建命令适配Azure Functions V3
你无需删除api_location配置即可正常部署已有V3版本Functions API,只需要修改自动生成的工作流配置即可:
- 打开仓库
.github/workflows目录下的Azure Static Web Apps自动生成的部署yml文件,找到Azure/static-web-apps-deploy@v1的执行步骤 - 在
with参数段新增api_build_command配置,传入V3 Functions对应的编译命令,C#项目示例配置如下:
- name: Build And Deploy uses: Azure/static-web-apps-deploy@v1 with: azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_XXXX }} app_location: "/" # Blazor应用根路径 api_location: "api" # 你的V3 Functions项目所在路径 output_location: "wwwroot" # Blazor构建输出路径 # 新增自定义API构建命令 api_build_command: "dotnet publish -c Release -o publish"
- 如果工作流运行环境默认没有安装V3 Functions对应的.NET Core 3.1 SDK,可以在构建步骤前添加.NET SDK安装步骤,指定版本为3.1.x即可。
V3版本Azure Functions适配角色管理功能
Azure Static Web Apps的角色管理属于平台层级的能力,和绑定的Functions版本没有强制依赖,V3版本Functions可以完美适配角色管理功能:
- 你可以正常在Functions代码中读取
x-ms-client-principal请求头解析当前登录用户的身份、角色信息 - 自定义角色分配的API也可以正常运行,只要按照平台要求返回对应格式的响应即可,不受Functions版本限制
你之前删除api_location配置后工作流运行正常,是因为删除该配置后工作流会跳过API的构建部署步骤,仅部署静态Blazor应用,不会触发默认针对V2版本Functions的构建逻辑。
内容的提问来源于stack exchange,提问作者GilShalit
相关产品推荐
相关产品推荐

