概述
Fabric 中的工作负载定义需要 WorkloadManifest.xml 和 Item.xml 文件。 其包含用于设置的基本工作负载和工作负载项配置设置,并作为工作负载设置和管理指南,帮助定义、共享和记录基本工作负载详细信息,以便顺利集成到 Fabric。
在我们的示例存储库中,生成过程中将从位于 .nupkg 文件夹中的 XML 文件生成 src/Packages/manifest 文件。 该打包文件包含有关工作负载的所有必要信息。 在 workload-dev-mode.json 文件中,应当有一个名为 ManifestPackageFilePath 的字段指向这个新创建的 .nupkg 文件。
上传和注册过程
- 用户身份验证:在开发过程中,执行示例后,身份验证就会启动上传和注册过程。 这可确保工作负载与你的标识正确关联。
- 清单分析:对上传的清单进行分析,以验证其结构和内容。 此步骤可确保清单格式正确,并可供进一步处理。
- 工作负载注册:如果分析成功,会在 Fabric 中注册工作负载。 Workload ID 等基本配置详细信息存储在 Fabric 数据库中,可实现有效的工作负载管理。
工作负载清单 – 关键清单组件
清单的结构由 WorkloadDefinition.xsd 定义,概述了工作负载的核心属性,例如名称、应用程序和终结点。
SchemaVersion 属性
表示 Fabric 的 WorkloadDefinition.xsd 已发布版本。
WorkloadName 属性
工作负载的唯一标识符。 请注意,WorkloadName 必须带有“Org.”前缀, 即名称应由两个单词组成,且带有分隔符“.”,例如“Org.MyWorkload”。 其他前缀无效,将导致上传失败。 这将在以下应用场景 – 开发连接、测试上传中强制执行。
Version 元素
清单版本应符合 SemVer。
CloudServiceConfiguration 元素
工作负载的服务配置,目前仅支持一个配置。
Microsoft Entra ID [Azure Active Directory (AAD)] 应用程序配置
<AADApp> 部分设置 Microsoft Entra ID [Azure Active Directory (AAD)] 应用程序以进行身份验证和授权过程。 AppId 表示应用程序的唯一标识符,RedirectUri 指定 Microsoft Entra ID 将向其发送身份验证响应的 URI,ResourceId 则指向应用程序正在访问的资源的唯一标识符。 有关 ResourceId、AppId 和 RedirectUri 代表的更多上下文,请参阅身份验证文档。
<AADApp>
<AppId>YourApplicationId</AppId>
<RedirectUri>YourRedirectUri</RedirectUri>
<ResourceId>YourResourceId</ResourceId>
</AADApp>
查阅身份验证文档,以便更深入地了解 AppId、ResourceId 和 RedirectUri 及其在身份验证过程中的上下文意义。
ServiceEndpoint 元素
表示特定逻辑终结点的配置,例如包括项目 CRUD 和作业 API 的实现的后端终结点。
- 工作负载后端终结点的配置说明了工作负载的后端 URL。
<ServiceEndpoint>
<Name>Workload</Name>
<Url>YourWorkloadBackendUrl</Url>
<IsEndpointResolutionService>...
<EndpointResolutionContext>...
</ServiceEndpoint>
<IsEndpointResolutionService>和<EndpointResolutionContext>根据终结点是否实现工作负载 API 还是仅实现终结点解析进行设置。- 从服务返回的已解析终结点必须满足以下要求:
示例:
资源 ID URL:https://contoso.com/fe/be/Org.WorkloadSample (域为 contoso.com)
租户中的已验证域:contoso.com、be.contoso.com、eastus.be.contoso.com
有效的已解析终结点:
api.eastus.be.contoso.combe.contoso.comapi.be.contoso.com
解析的终结点无效:
api.eastus.fe.contoso.com(无效,因为eastus.fe.contoso.com不是已验证的域)contoso-dev.com(无效,因为contoso-dev.com不是已验证的域,也与资源 ID 的主域不匹配)
- 有关使用工作负载客户端 API 进行终结点解析的详细信息,请参阅 终结点解析。
注意
不支持前端的终结点解析。
项清单 – 关键清单组件
清单的结构由 ItemDefinition.xsd 定义,概述了工作负载项的核心属性,例如名称和作业定义。
SchemaVersion 属性
表示 Fabric 的 ItemDefinition.xsd 已发布版本。
TypeName 属性
项目的唯一标识符。
作业计划程序配置
<JobScheduler> 部分包含用于定义作业计划、跟踪和管理的行为和设置的各种元素。
<OnDemandJobDeduplicateOptions>和<ScheduledJobDeduplicateOptions>:分别定义按需和计划项目作业的重复数据删除选项。 选项包括None(不进行重复数据删除)、PerItem(针对同一项和作业类型运行一次作业),以及PerUser(针对同一用户和项运行一次作业)。<ItemJobTypes>:包含不同项作业类型的配置。<ItemJobType>:描述特定的作业类型。<Name>:作业类型的名称。 必须使用项的名称作为前缀。
例如,考虑一下示例工作负载,其中包括 <ItemJobTypes> 部分中定义的三种特定作业:
<JobScheduler>
<OnDemandJobDeduplicateOptions>PerItem</OnDemandJobDeduplicateOptions>
<ScheduledJobDeduplicateOptions>PerItem</ScheduledJobDeduplicateOptions>
<ItemJobTypes>
<ItemJobType Name="Org.WorkloadSample.SampleWorkloadItem.ScheduledJob" />
<ItemJobType Name="Org.WorkloadSample.SampleWorkloadItem.CalculateAsText" />
<ItemJobType Name="Org.WorkloadSample.SampleWorkloadItem.CalculateAsParquet" />
</ItemJobTypes>
</JobScheduler>
- CalculateAsText 作业:此作业类型用于处理基于文本的计算、获取
Operand1和Operand2、执行所选操作,并将结果保存在 Lakehouse 中。 - CalculateAsParquet 作业:此作业类型为处理 Parquet 数据而量身打造,还可获取
Operand1和Operand2、执行所选操作,并按照 Parquet 数据格式将结果存储在 Lakehouse 中。 有关作业和相关配置的详细信息,请参阅监视中心指南。
总之,工作负载和项清单可用作将自定义工作负载添加到 Fabric 的基础文档。 身份验证过程会触发一系列简单操作:上传、分析和注册,从而保证 Azure 生态系统中的正确配置以及高效的工作负载管理。