Bibliothèque cliente de flux de travail Azure Purview pour Java - version 1.0.0-beta.2
Les workflows sont des processus d’entreprise automatisés et reproductibles que les utilisateurs peuvent créer dans Microsoft Purview pour valider et orchestrer des opérations CUD (création, mise à jour, suppression) sur leurs entités de données. L’activation de ces processus permet aux organisations de suivre les modifications, d’appliquer la conformité à la stratégie et de garantir des données de qualité dans leur paysage de données.
Utilisez la bibliothèque cliente pour le flux de travail Purview pour :
- Gérer les flux de travail
- Envoyer des requêtes utilisateur et surveiller les exécutions de flux de travail
- Afficher les tâches de flux de travail et y répondre
Pour plus d’informations sur l’utilisation du flux de travail, reportez-vous à la documentation du service
Prise en main
Prérequis
- Kit de développement Java (JDK) avec la version 8 ou ultérieure
- Abonnement Azure
- Un compte Azure Purview existant.
Authentification
Étant donné que le service Workflow utilise un jeton du porteur Azure Active Directory (AAD) pour l’authentification et l’identification, une adresse e-mail doit être encodée dans le jeton pour permettre la notification lors de l’utilisation du workflow. Il est recommandé d’utiliser la bibliothèque Azure Identity avec un Nom d’utilisateurPasswordCredential. Avant d’utiliser la bibliothèque d’identités Azure avec Workflow, une application doit être inscrite et utilisée pour le clientId passé à UsernamePasswordCredential.
Pour utiliser le fournisseur UsernamePasswordCredential ci-dessous ou d’autres fournisseurs d’informations d’identification fournis avec le KIT de développement logiciel (SDK) Azure, incluez le azure-identity
package :
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.10.4</version>
</dependency>
Définissez les valeurs de l’ID client et de l’ID de locataire de l’application AAD en tant que variables d’environnement : AZURE_CLIENT_ID, AZURE_TENANT_ID. Définissez la valeur du nom d’utilisateur et du mot de passe d’un utilisateur AAD en tant que variables d’environnement : USER_NAME, MOT DE PASSE.
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();
Exemples
La section suivante fournit plusieurs extraits de code couvrant certains des scénarios les plus courants, notamment :
Créer un workflow
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);
Envoyer des demandes utilisateur
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);
Approuver la tâche de flux de travail
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);
Concepts clés
Dépannage
Étapes suivantes
Contribution
Ce projet accepte les contributions et les suggestions. La plupart des contributions exiger que vous acceptiez un [Contrat de licence contributeur(CLA)][cla] déclarant que vous avez le droit de nous accorder les droits d’utiliser votre contribution et de le faire.
Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.
Ce projet a adopté le [Code de conduite Open Source Microsoft][coc]. Pour plus d’informations, consultez la [FAQ sur le code de conduite][coc_faq] ou contactez [opencode@microsoft.com][coc_contact] pour toute question ou commentaire supplémentaire.
Azure SDK for Java