引入工作负载

本章介绍系统的关键组件,并概述了体系结构。 这些组件协同工作,为开发需求创建可靠且灵活的平台。 我们来深入探讨这些组件及其在我们的体系结构中的角色。

Fabric 工作负载体系结构

Fabric 工作负载体系结构的一些关键方面包括:

  • 它处理数据处理、存储和管理。 它在处理 Microsoft Entra ID 令牌之前对其进行验证,并与外部 Azure 服务(如 Lakehouse)交互。

  • 工作负载前端 (FE) 提供用于创建、创作、管理和执行作业的用户界面。

  • 通过 FE 的用户交互通过 Fabric 后端 (Fabric BE) 直接或间接启动对 BE 的请求。

有关描述各种组件的通信和身份验证的更详细关系表,请参阅后端身份验证和授权概述身份验证概述关系图。

前端 (FE)

前端充当用户体验 (UX) 和行为的基础,在 Fabric 门户中的 iframe 内运行。 它为 Fabric 合作伙伴提供了特定的用户界面体验,包括项编辑器。 扩展客户端 SDK 提供了将常规 Web 应用转换为在 Fabric 门户内无缝运行的微前端 Web 应用所需的接口、API 和启动函数。

后端 (BE)

后端是数据处理和元数据存储的动力源。 它利用 CRUD 操作来创建和管理工作负载项以及元数据,并执行作业来填充存储中的数据。 前端与后端之间的通信桥通过公共 API 建立。

工作负载可以在以下两个环境中运行:本地和云。 在本地 (devmode) 中,工作负载在开发人员的计算机上运行,API 调用由 DevGateway 实用工具管理。 此实用工具还处理 Fabric 的工作负载注册。 在云模式下,工作负载在合作伙伴服务上运行,并直接对 HTTPS 终结点进行 API 调用。

开发环境

  • 开发模式工作负载包:在 Visual Studio 中生成后端解决方案时,使用调试生成配置创建 BE NuGet 包,该包可以使用 DevGateway 应用程序加载到 Fabric 租户中。

开发人员模式体系结构的关系图。

  • 云模式工作负载包:在 Visual Studio 中生成 BE 解决方案时,使用 Release 生成配置创建独立工作负载包(BE 和 FE)。 此包可以直接上传到租户。

云模式体系结构的关系图。

工作负载 NuGet 包结构

工作负载打包为 NuGet 包,并合并后端和前端组件。 该结构遵循特定的命名约定,并由 Fabric 强制实施,以便在上传应用场景中保持一致性。 旨在表示工作负载的 NuGet 包的结构包括后端和前端组件。

后端结构

后端段包括.xml文件,这些文件定义工作负载及其关联的项,这对于使用 Fabric 注册至关重要。

关键组件
  • WorkloadManifest.xml - 工作负载配置文件,需要具有此确切名称才能进行 Fabric 验证。
  • Item1.xmlItem2.xml... - 具有灵活命名的单个项的清单,遵循 XML 格式。

前端结构

前端部分包含 .json 文件,其中详细介绍了前端的产品和项,以及图标的“资产”目录。

关键组件
  • Product.json - 产品的前端的主要清单,必须准确命名才能进行 Fabric 验证。
  • Item1.jsonItem2.json... - 具有灵活命名的单个项的清单,遵循 JSO 格式。 每个 json 对应于后端清单(例如,Item1.json Item1.xml)。
  • assets 文件夹 - 存储前端使用的所有图标 icon1.jpgicon2.png...

强制结构合规性

结构中包括特定的子文件夹名称(“BE”、“FE”、“assets”),它是必需的,由 Fabric 对所有上传应用场景强制实施,包括测试和开发包。 结构是在 Backend/src/Packages/manifest 目录下的存储库中找到的 .nuspec 文件中指定的。

限制

在开发模式和云模式下,下列限制适用于所有类型的 NuGet 包:

  • 仅允许 BEFE 子文件夹。 位于这些文件夹之外的任何其他子文件夹或文件都会导致上传错误。
  • BE 文件夹仅接受 .xml 文件。 任何其他文件类型会导致上传错误。
  • 最多允许 10 个项目文件,这意味着 BE 文件夹可以包含一个 WorkloadManifest.xml 和最多 10 个 Item.xml 文件。 文件夹中有超过 10 个项目文件会导致上传错误。
  • Assets 子文件夹必须位于 FE 文件夹下。 它最多可包含 15 个文件,每个文件不超过 1.5 MB。
  • Assets 子文件夹中只允许以下文件类型:.jpeg.jpg.png
  • FE 文件夹最多可包含 10 个项目文件以及一个 product.json 文件。
  • Assets 文件夹中的每个资产都必须在项目文件中引用。 从 Assets 文件夹中缺少的项目文件引用的任何资产都将导致上传错误。
  • 项目的文件名必须唯一。 重复的文件名会导致上传错误。
  • 文件名只能包含字母数字(英语)字符或连字符,长度不能超过 32 个字符。 使用其他字符或超过此长度会导致上传错误。
  • 总包大小不得超过 20 MB。
  • 有关清单特定限制,请参阅工作负载清单

本地开发模式 (devmode)

工作负载后端 (BE) 在开发人员的计算机上运行。 工作负载 API 调用通过 Azure 中继传输,Azure 中继通道的工作负载端由专用命令行实用程序 DevGateway 管理。 工作负载控制 API 调用直接从工作负载发送到 Fabric,绕过 Azure 中继通道。 DevGateway 实用工具还可以在特定工作区的上下文中监督向 Fabric 注册工作负载的本地开发实例。 DevGateway 实用工具终止后,会自动撤销工作负载实例的注册。 有关详细信息,请参阅后端实现指南

DevMode BE 架构

开发人员模式 BE 架构体系结构的关系图。

云开发模式(云模式)

工作负载后端 (BE) 在合作伙伴的服务内运行。 工作负载 API 调用直接发送到 HTTPS 终结点,如工作负载清单中指定。 在此方案中,不需要 DevGateway 实用工具。 通过将工作负载 NuGet 包上传到 Fabric,然后激活租户的工作负载,来实现向 Fabric 注册工作负载。 有关详细信息,请参阅在 Fabric 中管理工作负载

CloudMode BE 架构

云模式 BE 架构体系结构的关系图。