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.