Partager via


Bibliothèque de client de partage Azure Purview pour Java - version 1.0.0-beta.2

Partage de données Microsoft Purview permet de partager des données sur place à partir de Azure Data Lake Storage Gen2 et de comptes de stockage Azure, à la fois au sein et entre les organisations.

Les fournisseurs de données peuvent utiliser Partage de données Microsoft Purview pour partager leurs données directement avec d’autres utilisateurs et partenaires (appelés consommateurs de données) sans duplication de données, tout en gérant de manière centralisée leurs activités de partage à partir de Microsoft Purview.

Pour les consommateurs de données, Partage de données Microsoft Purview fournit un accès en quasi-temps réel aux données partagées avec eux par un fournisseur.

Les principales fonctionnalités fournies par Partage de données Microsoft Purview sont les suivantes :

  • Partagez des données au sein de l’organisation ou avec des partenaires et des clients en dehors de l’organisation (au sein du même locataire Azure ou entre différents locataires Azure).
  • Partagez des données à partir d’ADLS Gen2 ou de stockage Blob sur place sans duplication de données.
  • Partagez des données avec plusieurs destinataires.
  • Accéder aux données partagées en quasi-temps réel.
  • Gérez les relations de partage et effectuez le suivi des personnes avec qui les données sont partagées/à partir de, pour chaque compte de stockage ADLSGen2 ou Blob.
  • Arrêtez l’accès au partage à tout moment.
  • Expérience flexible via le portail de gouvernance Microsoft Purview ou via les API REST.

Pour en savoir plus sur ce produit, consultez les ressources suivantes.

| Code sourcePackage (Maven) | Documentation de référence sur les | APIDocumentation | produitÉchantillons

Prise en main

Prérequis

Pour plus d’informations sur la création d’un compte Microsoft Purview, voir ici.

Documentation

Diverses documentations sont disponibles pour vous aider à démarrer

Ajout du package à votre produit

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-analytics-purview-sharing</artifactId>
    <version>1.0.0-beta.2</version>
</dependency>

Authentification

Le package Azure Identity fournit l’implémentation par défaut pour l’authentification du client.

Concepts clés

Fournisseur de données : Un fournisseur de données est la personne qui crée un partage en sélectionnant une source de données, en choisissant les fichiers et dossiers à partager et avec qui les partager. Microsoft Purview envoie ensuite une invitation à chaque consommateur de données.

Consommateur de données : Un consommateur de données est la personne qui accepte l’invitation en spécifiant un compte de stockage cible dans son propre abonnement Azure qu’il utilisera pour accéder aux données partagées.

Exemples

Exemples de fournisseurs de données

Les exemples de code suivants montrent comment les fournisseurs de données peuvent utiliser le Kit de développement logiciel (SDK) Java Microsoft Azure pour le partage Purview pour gérer leur activité de partage.

Créer un client de partage envoyé

SentSharesClient sentSharesClient =
        new SentSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

Créer un partage envoyé

Pour commencer à partager des données, le fournisseur de données doit d’abord créer un partage envoyé qui identifie les données qu’il souhaite partager.

SentSharesClient sentSharesClient =
        new SentSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

String sentShareId = UUID.randomUUID().toString();
InPlaceSentShare sentShare = new InPlaceSentShare()
        .setDisplayName("sample-share")
        .setDescription("A sample share");

StoreReference storeReference = new StoreReference()
        .setReferenceName("/subscriptions/de06c3a0-4610-4ca0-8cbb-bbdac204bd65/resourceGroups/provider-storage-rg/providers/Microsoft.Storage/storageAccounts/providerstorage")
        .setType(ReferenceNameType.ARM_RESOURCE_REFERENCE);

StorageAccountPath storageAccountPath = new StorageAccountPath()
        .setContainerName("container-name")
        .setReceiverPath("shared-file-name.txt")
        .setSenderPath("original/file-name.txt");

List<StorageAccountPath> paths = new ArrayList<>();
paths.add(storageAccountPath);

BlobStorageArtifact artifact = new BlobStorageArtifact()
        .setStoreReference(storeReference)
        .setPaths(paths);

sentShare.setArtifact(artifact);

SyncPoller<BinaryData, BinaryData> response =
        sentSharesClient.beginCreateOrReplaceSentShare(
                sentShareId,
                BinaryData.fromObject(sentShare),
                new RequestOptions());

Envoyer une invitation de partage à un utilisateur

Après avoir créé un partage envoyé, le fournisseur de données peut étendre les invitations aux consommateurs qui peuvent ensuite afficher les données partagées. Dans cet exemple, une invitation est étendue à un individu en spécifiant son adresse e-mail.

SentSharesClient sentSharesClient =
        new SentSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

String sentShareId = "<sent-share-id>";
String sentShareInvitationId = UUID.randomUUID().toString();

UserInvitation sentShareInvitation = new UserInvitation()
        .setTargetEmail("receiver@microsoft.com")
        .setNotify(true)
        .setExpirationDate(OffsetDateTime.now().plusDays(60));

Response<BinaryData> response =
        sentSharesClient.createSentShareInvitationWithResponse(
                sentShareId,
                sentShareInvitationId,
                BinaryData.fromObject(sentShareInvitation),
                new RequestOptions());

Envoyer une invitation de partage à un service

Les fournisseurs de données peuvent également étendre les invitations aux services ou aux applications en spécifiant l’ID de locataire et l’ID d’objet du service. L’ID d’objet utilisé pour envoyer une invitation à un service doit être l’ID d’objet associé à l’application d’entreprise (et non à l’inscription de l’application).

SentSharesClient sentSharesClient =
        new SentSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

String sentShareId = "<sent-share-id>";
String sentShareInvitationId = UUID.randomUUID().toString();

ServiceInvitation sentShareInvitation = new ServiceInvitation()
        .setTargetActiveDirectoryId(UUID.fromString("<tenant-id>"))
        .setTargetObjectId(UUID.fromString("<object-id>"))
        .setExpirationDate(OffsetDateTime.now().plusDays(60));

Response<BinaryData> response =
        sentSharesClient.createSentShareInvitationWithResponse(
                sentShareId,
                sentShareInvitationId,
                BinaryData.fromObject(sentShareInvitation),
                new RequestOptions());

Obtenir un partage envoyé

Après avoir créé un partage envoyé, les fournisseurs de données peuvent le récupérer.

SentSharesClient sentSharesClient =
        new SentSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

SentShare retrievedSentShare = sentSharesClient
        .getSentShareWithResponse("<sent-share-id>", new RequestOptions())
        .getValue()
        .toObject(SentShare.class);

Répertorier les partages envoyés

Les fournisseurs de données peuvent également récupérer une liste des partages envoyés qu’ils ont créés.

SentSharesClient sentSharesClient =
        new SentSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

PagedIterable<BinaryData> sentShareResults = sentSharesClient.listSentShares(
                "/subscriptions/de06c3a0-4610-4ca0-8cbb-bbdac204bd65/resourceGroups/provider-storage-rg/providers/Microsoft.Storage/storageAccounts/providerstorage",
                new RequestOptions());

List<SentShare> sentShares = sentShareResults.stream()
    .map(binaryData -> binaryData.toObject(SentShare.class))
    .collect(Collectors.toList());

Supprimer un partage envoyé

Un partage envoyé peut être supprimé par le fournisseur de données pour arrêter le partage de ses données avec tous les consommateurs de données.

SentSharesClient sentSharesClient =
        new SentSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

sentSharesClient.beginDeleteSentShare("<sent-share-id", new RequestOptions());

Obtenir l’invitation de partage envoyé

Après avoir créé une invitation de partage envoyé, les fournisseurs de données peuvent la récupérer.

SentSharesClient sentSharesClient =
        new SentSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

String sentShareId = "<sent-share-id>";
String sentShareInvitationId = "<sent-share-invitation-id>";

Response<BinaryData> sentShareInvitation =
        sentSharesClient.getSentShareInvitationWithResponse(sentShareId, sentShareInvitationId, new RequestOptions());

Répertorier les invitations de partage envoyé

Les fournisseurs de données peuvent également récupérer une liste des invitations de partage envoyées qu’ils ont créées.

SentSharesClient sentSharesClient =
        new SentSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

String sentShareId = "<sent-share-id>";

RequestOptions requestOptions = new RequestOptions().addQueryParam("$orderBy", "properties/sentAt desc");
PagedIterable<BinaryData> response =
        sentSharesClient.listSentShareInvitations(sentShareId, requestOptions);

Supprimer une invitation de partage envoyé

Une invitation de partage envoyée individuellement peut être supprimée par le fournisseur de données pour cesser de partager ses données avec le consommateur de données spécifique auquel l’invitation a été adressée.

SentSharesClient sentSharesClient =
        new SentSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

String sentShareId = "<sent-share-id>";
String sentShareInvitationId = "<sent-share-invitation-id>";

sentSharesClient.beginDeleteSentShareInvitation(sentShareId, sentShareInvitationId, new RequestOptions());

Exemples de consommateurs de données

Les exemples de code suivants montrent comment les consommateurs de données peuvent utiliser le Kit de développement logiciel (SDK) Java Microsoft Azure pour le partage Purview afin de gérer leur activité de partage.

Créer un client de partage reçu

ReceivedSharesClient receivedSharesClient =
        new ReceivedSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

Répertorier les partages reçus détachés

Pour commencer à afficher les données partagées avec lui, un consommateur de données doit d’abord récupérer une liste de partages détachés reçus. Dans cette liste, ils peuvent identifier un partage reçu détaché à attacher.

ReceivedSharesClient receivedSharesClient =
        new ReceivedSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

RequestOptions requestOptions = new RequestOptions().addQueryParam("$orderBy", "properties/createdAt desc");
PagedIterable<BinaryData> response = receivedSharesClient.listDetachedReceivedShares(requestOptions);

Attacher un partage de réception

Une fois que le consommateur de données a identifié un partage reçu, il peut attacher le partage reçu à un emplacement où il peut accéder aux données partagées. Si le partage reçu est déjà attaché, les données partagées sont rendues accessibles au nouvel emplacement spécifié.

ReceivedSharesClient receivedSharesClient =
        new ReceivedSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

RequestOptions listRequestOptions = new RequestOptions().addQueryParam("$orderBy", "properties/createdAt desc");
PagedIterable<BinaryData> listResponse = receivedSharesClient.listDetachedReceivedShares(listRequestOptions);

Optional<BinaryData> detachedReceivedShare = listResponse.stream().findFirst();

if (!detachedReceivedShare.isPresent()) {
    return;
}

String receivedShareId = new ObjectMapper()
        .readValue(detachedReceivedShare.get().toString(), ObjectNode.class)
        .get("id")
        .textValue();
 
InPlaceReceivedShare receivedShare = new InPlaceReceivedShare()
        .setDisplayName("my-received-share");

StoreReference storeReference = new StoreReference()
        .setReferenceName("/subscriptions/de06c3a0-4610-4ca0-8cbb-bbdac204bd65/resourceGroups/consumer-storage-rg/providers/Microsoft.Storage/storageAccounts/consumerstorage")
        .setType(ReferenceNameType.ARM_RESOURCE_REFERENCE); 

BlobAccountSink sink = new BlobAccountSink()
        .setStoreReference(storeReference)
        .setContainerName("container-name")
        .setFolder("folderName")
        .setMountPath("optionalMountPath");

receivedShare.setSink(sink);

SyncPoller<BinaryData, BinaryData> createResponse =
        receivedSharesClient.beginCreateOrReplaceReceivedShare(receivedShareId, BinaryData.fromObject(receivedShare), new RequestOptions());

Obtenir un partage reçu

Un consommateur de données peut récupérer un partage reçu individuellement.

ReceivedSharesClient receivedSharesClient =
        new ReceivedSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

Response<BinaryData> receivedShare =
        receivedSharesClient.getReceivedShareWithResponse("<received-share-id>", new RequestOptions());

Répertorier les partages reçus joints

Les consommateurs de données peuvent également récupérer une liste de leurs partages reçus attachés.

ReceivedSharesClient receivedSharesClient =
        new ReceivedSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

RequestOptions requestOptions = new RequestOptions().addQueryParam("$orderBy", "properties/createdAt desc");
PagedIterable<BinaryData> response =
        receivedSharesClient.listAttachedReceivedShares(
                "/subscriptions/de06c3a0-4610-4ca0-8cbb-bbdac204bd65/resourceGroups/consumer-storage-rg/providers/Microsoft.Storage/storageAccounts/consumerstorage",
                requestOptions);

Optional<BinaryData> receivedShare = response.stream().findFirst();

if (!receivedShare.isPresent()) {
    return;
}

ReceivedShare receivedShareResponse = receivedShare.get().toObject(InPlaceReceivedShare.class);

Supprimer un partage reçu

Un partage reçu peut être supprimé par le consommateur de données pour mettre fin à son accès aux données partagées.

ReceivedSharesClient receivedSharesClient =
        new ReceivedSharesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

receivedSharesClient.beginDeleteReceivedShare("<received-share-id>", new RequestOptions()); 

Partager des exemples de ressources

Les exemples de code suivants montrent comment utiliser le Kit de développement logiciel (SDK) Java Microsoft Azure pour le partage Purview pour afficher les ressources de partage. Une ressource de partage est la ressource sous-jacente à partir de laquelle un fournisseur partage des données ou la destination où un consommateur attache des données partagées avec eux.

Répertorier les ressources de partage

Une liste de ressources de partage peut être récupérée pour afficher toutes les ressources au sein d’un compte où des activités de partage ont eu lieu.

ShareResourcesClient shareResourcesClient =
        new ShareResourcesClientBuilder()
                .credential(new DefaultAzureCredentialBuilder().build())
                .endpoint("https://<my-account-name>.purview.azure.com/share")
                .buildClient();

PagedIterable<BinaryData> shareResourceResults = shareResourcesClient.listShareResources(new RequestOptions());
 
List<ShareResource> shareResources = shareResourceResults.stream()
    .map(binaryData -> binaryData.toObject(ShareResource.class))
    .collect(Collectors.toList());

Dépannage

Activation de la journalisation

Les kits SDK Azure pour Java offrent un article de journalisation cohérent pour faciliter la résolution des erreurs d’application et accélérer leur résolution. Les journaux produits capturent le flux d’une application avant d’atteindre l’état terminal pour faciliter la localisation du problème racine. Consultez le wiki de journalisation pour obtenir des conseils sur l’activation de la journalisation.

Étapes suivantes

Contribution

Pour plus d’informations sur la contribution à ce dépôt, consultez le guide de contribution.

  1. Fourchez-le
  2. Créer votre branche de fonctionnalité (git checkout -b my-new-feature)
  3. Valider vos modifications (git commit -am 'Add some feature')
  4. Envoyer (push) vers la branche (git push origin my-new-feature)
  5. Créer une demande de tirage