Biblioteca de clientes do Fluxo de Trabalho do Azure Purview para .NET – versão 1.0.0-beta.1

Fluxos de trabalho são processos de negócios automatizados e reproduzíveis que os usuários podem criar dentro do Microsoft Purview para validar e orquestrar operações de CUD (criar, atualizar, excluir) em suas entidades de dados. Habilitar esses processos permite que as organizações controlem as alterações, imponham a conformidade da política e garanta dados de qualidade em seu cenário de dados.

Use a biblioteca de clientes para o fluxo de trabalho do Purview para:

  • Gerenciar fluxos de trabalho
  • Enviar solicitações de usuário e monitorar execuções de fluxo de trabalho
  • Exibir e responder a tarefas de fluxo de trabalho

Para obter mais detalhes sobre como usar o fluxo de trabalho, consulte a documentação do serviço

Introdução

Instalar o pacote

dotnet add package Azure.Analytics.Purview.Workflows --prerelease

Pré-requisitos

Você deve ter uma assinatura do Azure e um recurso do Purview para usar esse pacote.

Autenticar o cliente

Como o serviço fluxo de trabalho usa um token de portador do AAD (Azure Active Directory) para autenticação e identificação, um endereço de email deve ser codificado no token para permitir a notificação ao usar o Fluxo de Trabalho. É recomendável que a biblioteca de Identidade do Azure seja usada com um UsernamePasswordCredential. Antes de usar a biblioteca de Identidade do Azure com o Fluxo de Trabalho, um aplicativo deve ser registrado e usado para a clientId passada para o 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);

Exemplos

A seção a seguir fornece vários snippets de código que abrangem alguns dos cenários mais comuns, incluindo:

Criar fluxo de trabalho

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));

Enviar solicitações de usuário

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));

Aprovar tarefa de fluxo de trabalho

// 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));

Principais conceitos

Solução de problemas

Próximas etapas

Esse SDK do cliente expõe operações usando métodos de protocolo, você pode saber mais sobre como usar clientes SDK que usam métodos de protocolo em nossa documentação.

Participante

Consulte o CONTRIBUTING.md para obter detalhes sobre como criar, testar e contribuir para essa biblioteca.

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite cla.microsoft.com.

Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.