Compartilhar via


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

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

Pré-requisitos

Autenticação

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.

Para usar o provedor UsernamePasswordCredential mostrado abaixo ou outros provedores de credenciais fornecidos com o SDK do Azure, inclua o azure-identity pacote:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.10.4</version>
</dependency>

Defina os valores da ID do cliente, da ID do locatário do aplicativo AAD como variáveis de ambiente: AZURE_CLIENT_ID, AZURE_TENANT_ID. Defina o valor de nome de usuário e senha de um usuário do AAD como variáveis de ambiente: USER_NAME, PASSWORD.

WorkflowClient purviewWorkflowClient = new WorkflowClientBuilder()
    .endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "endpoint"))
    .credential(new UsernamePasswordCredentialBuilder()
        .clientId(Configuration.getGlobalConfiguration().get("CLIENTID", "clientId"))
        .tenantId(Configuration.getGlobalConfiguration().get("TENANTID", "tenantId"))
        .username(Configuration.getGlobalConfiguration().get("USERNAME", "username"))
        .password(Configuration.getGlobalConfiguration().get("PASSWORD", "password"))
        .build())
    .buildClient();

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

BinaryData workflowCreateOrUpdateCommand =
    BinaryData.fromString(
        "{\"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\"]}}}}}");
RequestOptions requestOptions = new RequestOptions();
Response<BinaryData> response =
    purviewWorkflowClient.createOrReplaceWithResponse(
        "4afb5752-e47f-43a1-8ba7-c696bf8d2745", workflowCreateOrUpdateCommand, requestOptions);

Enviar solicitações de usuário

BinaryData userRequestsPayload =
    BinaryData.fromString(
        "{\"comment\":\"Thanks!\",\"operations\":[{\"type\":\"CreateTerm\",\"payload\":{\"glossaryTerm\":{\"name\":\"term\",\"anchor\":{\"glossaryGuid\":\"20031e20-b4df-4a66-a61d-1b0716f3fa48\"},\"nickName\":\"term\",\"status\":\"Approved\"}}}]}");
RequestOptions requestOptions = new RequestOptions();
Response<BinaryData> response =
    userRequestsClient.submitWithResponse(userRequestsPayload, requestOptions);

Aprovar tarefa de fluxo de trabalho

BinaryData approvalResponseComment = BinaryData.fromString("{\"comment\":\"Thanks for raising this!\"}");
RequestOptions requestOptions = new RequestOptions();
Response<Void> response =
    approvalClient.approveWithResponse(
        "69b57a00-f5de-4a17-a44a-6479adae373d", approvalResponseComment, requestOptions);

Principais conceitos

Solução de problemas

Próximas etapas

Contribuição

Este projeto aceita contribuições e sugestões. A maioria dos contribuições exige que você concorde com um [Contrato de Licença de Colaborador (CLA)][cla] declarando que você tem o direito e, na verdade, nos concede os direitos de usar sua contribuição.

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][coc]. Para obter mais informações, consulte as perguntas frequentes sobre o [Código de Conduta][coc_faq] ou entre em contato com [opencode@microsoft.com][coc_contact] com perguntas ou comentários adicionais.

Impressões