你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 .NET 的 Azure Purview 工作流客户端库 - 版本 1.0.0-beta.1
工作流是用户可以在 Microsoft Purview 中创建的,用于验证和协调对其数据实体执行的 CUD(创建、更新、删除)操作的自动化、可重复业务流程。 启用这些流程后,组织可以跟踪更改,强制要求符合策略,并在其整个数据格局中确保数据的质量。
使用 Purview 工作流的客户端库可以:
- 管理工作流
- 提交用户请求并监视工作流运行
- 查看和响应工作流任务
有关如何使用工作流的更多详细信息,请参阅 服务文档
入门
安装包
dotnet add package Azure.Analytics.Purview.Workflows --prerelease
先决条件
必须具有 Azure 订阅 和 Purview 资源 才能使用此包。
验证客户端
由于工作流服务使用 Azure Active Directory (AAD) 持有者令牌进行身份验证和标识,因此应将电子邮件地址编码到令牌中,以便在使用工作流时发出通知。 建议将 Azure 标识 库与 UsernamePasswordCredential 一起使用。 将 Azure 标识 库与工作流配合使用之前,应注册 应用程序 并将其用于传递给 UsernamePasswordCredential 的 clientId。
Uri endpoint = new Uri(Environment.GetEnvironmentVariable("WORKFLOW_ENDPOINT"));
string clientId = Environment.GetEnvironmentVariable("ClientId");
string tenantId = Environment.GetEnvironmentVariable("TenantId");
string username = Environment.GetEnvironmentVariable("Username");
string password = Environment.GetEnvironmentVariable("Password");
TokenCredential usernamePasswordCredential = new UsernamePasswordCredential(clientId,tenantId, username,password, null);
var client = new PurviewWorkflowServiceClient(endpoint, usernamePasswordCredential);
示例
以下部分提供了几个代码片段,涵盖了一些最常见的方案,包括:
创建工作流
Guid workflowId = Guid.NewGuid();
string workflow = "{\"name\":\"Create glossary term workflow\",\"description\":\"\",\"triggers\":[{\"type\":\"when_term_creation_is_requested\",\"underGlossaryHierarchy\":\"/glossaries/20031e20-b4df-4a66-a61d-1b0716f3fa48\"}],\"isEnabled\":true,\"actionDag\":{\"actions\":{\"Startandwaitforanapproval\":{\"type\":\"Approval\",\"inputs\":{\"parameters\":{\"approvalType\":\"PendingOnAll\",\"title\":\"ApprovalRequestforCreateGlossaryTerm\",\"assignedTo\":[\"eece94d9-0619-4669-bb8a-d6ecec5220bc\"]}},\"runAfter\":{}},\"Condition\":{\"type\":\"If\",\"expression\":{\"and\":[{\"equals\":[\"@outputs('Startandwaitforanapproval')['body/outcome']\",\"Approved\"]}]},\"actions\":{\"Createglossaryterm\":{\"type\":\"CreateTerm\",\"runAfter\":{}},\"Sendemailnotification\":{\"type\":\"EmailNotification\",\"inputs\":{\"parameters\":{\"emailSubject\":\"GlossaryTermCreate-APPROVED\",\"emailMessage\":\"YourrequestforGlossaryTerm@{triggerBody()['request']['term']['name']}isapproved.\",\"emailRecipients\":[\"@{triggerBody()['request']['requestor']}\"]}},\"runAfter\":{\"Createglossaryterm\":[\"Succeeded\"]}}},\"else\":{\"actions\":{\"Sendrejectemailnotification\":{\"type\":\"EmailNotification\",\"inputs\":{\"parameters\":{\"emailSubject\":\"GlossaryTermCreate-REJECTED\",\"emailMessage\":\"YourrequestforGlossaryTerm@{triggerBody()['request']['term']['name']}isrejected.\",\"emailRecipients\":[\"@{triggerBody()['request']['requestor']}\"]}},\"runAfter\":{}}}},\"runAfter\":{\"Startandwaitforanapproval\":[\"Succeeded\"]}}}}}";
Response createResult = await client.CreateOrReplaceWorkflowAsync(workflowId, RequestContent.Create(workflow));
提交用户请求
string request = "{\"operations\":[{\"type\":\"CreateTerm\",\"payload\":{\"glossaryTerm\":{\"name\":\"term\",\"anchor\":{\"glossaryGuid\":\"20031e20-b4df-4a66-a61d-1b0716f3fa48\"},\"status\":\"Approved\",\"nickName\":\"term\"}}}],\"comment\":\"Thanks!\"}";
Response submitResult = await client.SubmitUserRequestsAsync(RequestContent.Create(request));
批准工作流任务
// This taskId represents an existing workflow task. The id can be obtained by calling GetWorkflowTasksAsync API.
Guid taskId = new Guid("b129fe16-72d3-4994-9135-b997b9be46e0");
string request = "{\"comment\":\"Thanks!\"}";
Response approveResult = await client.ApproveApprovalTaskAsync(taskId, RequestContent.Create(request));
关键概念
疑难解答
后续步骤
此客户端 SDK 使用 协议方法公开操作,可以在 文档中详细了解如何使用使用协议方法的 SDK 客户端。
供稿
有关构建、测试和参与此库的详细信息,请参阅 CONTRIBUTING.md 。
本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。 有关详细信息,请访问 cla.microsoft.com。
提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 对所有存储库执行一次这样的操作。
此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。