Freigeben über


Azure Purview Sharing-Clientbibliothek für Java – Version 1.0.0-beta.2

Microsoft Purview Data Sharing ermöglicht die direkte Freigabe von Daten aus Azure Data Lake Storage Gen2- und Azure Storage-Konten, sowohl innerhalb als auch zwischen Organisationen.

Datenanbieter können Microsoft Purview Data Sharing verwenden, um ihre Daten direkt mit anderen Benutzern und Partnern (als Datenverbraucher bezeichnet) ohne Duplizierung von Daten zu teilen, während sie ihre Freigabeaktivitäten in Microsoft Purview zentral verwalten.

Für Datenverbraucher bietet Microsoft Purview Data Sharing nahezu Echtzeitzugriff auf Daten, die von einem Anbieter für sie freigegeben werden.

Zu den wichtigsten Funktionen, die von Microsoft Purview Data Sharing bereitgestellt werden, gehören:

  • Freigeben von Daten innerhalb der Organisation oder für Partner und Kunden außerhalb der Organisation (innerhalb desselben Azure-Mandanten oder über verschiedene Azure-Mandanten hinweg)
  • Freigeben von Daten aus ADLS Gen2 oder Blobspeicher ohne Datenduplizierung
  • Freigeben von Daten für mehrere Empfänger
  • Zugreifen auf freigegebene Daten nahezu in Echtzeit.
  • Verwalten Sie Freigabebeziehungen, und verfolgen Sie für jedes ADLSGen2- oder Blob Storage-Konto nach, mit wem die Daten freigegeben werden.
  • Beenden Sie den Freigabezugriff jederzeit.
  • Flexibles Benutzererlebnis über das Microsoft Purview-Governanceportal oder über REST-APIs

Weitere Informationen zu diesem Produkt finden Sie in den folgenden Ressourcen.

Quellcode | Paket (Maven) | API-Referenzdokumentation | Produktdokumentation | Proben

Erste Schritte

Voraussetzungen

Weitere Informationen zum Erstellen eines Microsoft Purview-Kontos finden Sie hier.

Dokumentation

Es stehen verschiedene Dokumentationen zur Verfügung, die Ihnen den Einstieg erleichtern

Hinzufügen des Pakets zu Ihrem Produkt

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

Authentifizierung

Das Azure Identity-Paket stellt die Standardimplementierung für die Authentifizierung des Clients bereit.

Wichtige Begriffe

Datenanbieter: Ein Datenanbieter ist die Person, die eine Freigabe erstellt, indem sie eine Datenquelle auswählt, welche Dateien und Ordner freigegeben werden sollen und für wen sie freigegeben werden sollen. Microsoft Purview sendet dann eine Einladung an jeden Datenconsumer.

Datenverbraucher: Ein Datenverbraucher ist die Person, die die Einladung akzeptiert, indem sie ein Zielspeicherkonto in ihrem eigenen Azure-Abonnement angibt, das sie für den Zugriff auf die freigegebenen Daten verwenden wird.

Beispiele

Beispiele für Datenanbieter

Die folgenden Codebeispiele veranschaulichen, wie Datenanbieter das Microsoft Azure Java SDK for Purview Sharing verwenden können, um ihre Freigabeaktivität zu verwalten.

Erstellen eines Gesendeten Freigabeclients

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

Erstellen einer gesendeten Freigabe

Um mit der Freigabe von Daten zu beginnen, muss der Datenanbieter zuerst eine gesendete Freigabe erstellen, die die Daten identifiziert, die er freigeben möchte.

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

Senden einer Einladung zum Freigeben an einen Benutzer

Nach dem Erstellen einer gesendeten Freigabe kann der Datenanbieter Einladungen an Consumer erweitern, die dann die freigegebenen Daten anzeigen können. In diesem Beispiel wird eine Einladung auf eine Person erweitert, indem ihre E-Mail-Adresse angegeben wird.

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

Senden einer Einladung zum Freigeben an einen Dienst

Datenanbieter können Einladungen auch auf Dienste oder Anwendungen erweitern, indem sie die Mandanten- und Objekt-ID des Diensts angeben. Die Objekt-ID, die zum Senden einer Einladung an einen Dienst verwendet wird, muss die Objekt-ID sein, die der Unternehmensanwendung (nicht der Anwendungsregistrierung) zugeordnet ist.

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

Abrufen einer gesendeten Freigabe

Nach dem Erstellen einer gesendeten Freigabe können Datenanbieter sie abrufen.

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

Auflisten gesendeter Freigaben

Datenanbieter können auch eine Liste der gesendeten Freigaben abrufen, die sie erstellt haben.

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

Löschen einer gesendeten Freigabe

Eine gesendete Freigabe kann vom Datenanbieter gelöscht werden, um die Freigabe seiner Daten für alle Datenverbraucher zu beenden.

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

Gesendete Einladung zur Freigabe abrufen

Nach dem Erstellen einer gesendeten Freigabe-Einladung können Datenanbieter sie abrufen.

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

Auflisten gesendeter Freigabe-Einladungen

Datenanbieter können auch eine Liste der gesendeten Freigabeseinladungen abrufen, die sie erstellt haben.

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

Löschen einer gesendeten Freigabe-Einladung

Eine einzelne gesendete Freigabe-Einladung kann vom Datenanbieter gelöscht werden, um die Freigabe seiner Daten mit dem bestimmten Datenverbraucher, an den die Einladung adressiert wurde, zu beenden.

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

Beispiele für Datenverbraucher

Die folgenden Codebeispiele veranschaulichen, wie Datenverbraucher das Microsoft Azure Java SDK for Purview Sharing verwenden können, um ihre Freigabeaktivität zu verwalten.

Erstellen eines empfangenen Freigabeclients

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

Auflisten getrennter empfangener Freigaben

Um mit der Anzeige der für sie freigegebenen Daten zu beginnen, muss ein Daten consumer zuerst eine Liste der getrennten empfangenen Freigaben abrufen. Innerhalb dieser Liste können sie eine abgetrennte empfangene Freigabe identifizieren, die angefügt werden soll.

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

Anfügen einer Empfangsfreigabe

Sobald der Datenverbraucher eine empfangene Freigabe identifiziert hat, kann er die empfangene Freigabe an einen Ort anfügen, an dem er auf die freigegebenen Daten zugreifen kann. Wenn die empfangene Freigabe bereits angefügt ist, werden die freigegebenen Daten am angegebenen neuen Speicherort zugänglich gemacht.

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

Empfangene Freigabe abrufen

Ein Datenverbraucher kann eine einzelne empfangene Freigabe abrufen.

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

Listen angefügte empfangene Freigaben

Datenverbraucher können auch eine Liste ihrer angefügten empfangenen Freigaben abrufen.

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

Löschen einer empfangenen Freigabe

Eine empfangene Freigabe kann vom Datenverbraucher gelöscht werden, um den Zugriff auf freigegebene Daten zu beenden.

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

Ressourcenbeispiele freigeben

Die folgenden Codebeispiele veranschaulichen, wie Sie das Microsoft Azure Java SDK for Purview Sharing verwenden, um Freigaberessourcen anzuzeigen. Eine Freigaberessource ist die zugrunde liegende Ressource, von der ein Anbieter Daten oder das Ziel, an das ein Consumer freigegebene Daten anfügt.

Ressourcen auflisten

Eine Liste von Freigaberessourcen kann abgerufen werden, um alle Ressourcen innerhalb eines Kontos anzuzeigen, in dem Freigabeaktivitäten stattgefunden haben.

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

Problembehandlung

Aktivieren der Protokollierung

Azure SDKs für Java bieten eine konsistente Protokollierung, die bei der Problembehandlung von Anwendungsfehlern und deren Lösung hilft. Die erstellten Protokolle erfassen den Flow einer Anwendung, bevor sie den Endzustand erreichen. Dies trägt zur Ermittlung der Grundursache bei. Informationen zum Aktivieren der Protokollierung finden Sie im Protokollierungswiki.

Nächste Schritte

Mitwirken

Ausführliche Informationen zum Mitwirken zu diesem Repository finden Sie im Leitfaden zur Mitarbeit.

  1. Fork
  2. Erstellen Ihres Featurebranch (git checkout -b my-new-feature)
  3. Commit für Ihre Änderungen (git commit -am 'Add some feature')
  4. Pushen an den Branch (git push origin my-new-feature)
  5. Erstellen eines neuen Pull Request