Biblioteca cliente de flujo de trabajo de Azure Purview para .NET: versión 1.0.0-beta.1
Los flujos de trabajo son procesos empresariales repetibles y automatizados que los usuarios pueden crear en Microsoft Purview para validar y orquestar operaciones CUD (crear, actualizar, eliminar) en sus entidades de datos. La habilitación de estos procesos permite a las organizaciones supervisar los cambios, aplicar el cumplimiento de directivas y garantizar datos de calidad en todo el panorama de los datos.
Use la biblioteca cliente para el flujo de trabajo de Purview para:
- Administración de flujos de trabajo
- Envío de solicitudes de usuario y supervisión de ejecuciones de flujo de trabajo
- Visualización y respuesta a tareas de flujo de trabajo
Para más información sobre cómo usar el flujo de trabajo, consulte la documentación del servicio.
Introducción
Instalar el paquete
dotnet add package Azure.Analytics.Purview.Workflows --prerelease
Requisitos previos
Debe tener una suscripción de Azure y un recurso de Purview para usar este paquete.
Autenticar el cliente
Dado que el servicio flujo de trabajo usa un token de portador de Azure Active Directory (AAD) para la autenticación y la identificación, se debe codificar una dirección de correo electrónico en el token para permitir la notificación al usar el flujo de trabajo. Se recomienda usar la biblioteca de identidades de Azure con usernamePasswordCredential. Antes de usar la biblioteca de identidades de Azure con flujo de trabajo, se debe registrar y usar una aplicación para el clientId pasado a UsernamePasswordCredential.
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);
Ejemplos
En la siguiente sección se proporcionan varios fragmentos de código que abarcan algunos de los escenarios más comunes, entre los que se incluyen:
Creación del flujo de trabajo
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));
Envío de solicitudes de usuario
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));
Aprobar tarea de flujo de trabajo
// 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));
Conceptos clave
Solución de problemas
Pasos siguientes
Este SDK de cliente expone operaciones mediante métodos de protocolo. Puede obtener más información sobre cómo usar clientes del SDK que usan métodos de protocolo en nuestra documentación.
Contribuir
Consulte la CONTRIBUTING.md para obtener más información sobre la compilación, las pruebas y la contribución a esta biblioteca.
Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para obtener más información, visite cla.microsoft.com.
Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.
Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.