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
- Java Development Kit (JDK) mit Version 8 oder höher
- Azure-Abonnement
- Ein vorhandenes Microsoft Purview-Konto.
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.
- Fork
- Erstellen Ihres Featurebranch (
git checkout -b my-new-feature
) - Commit für Ihre Änderungen (
git commit -am 'Add some feature'
) - Pushen an den Branch (
git push origin my-new-feature
) - Erstellen eines neuen Pull Request
Azure SDK for Java