Compartir a través de


Biblioteca cliente de Uso compartido de Azure Purview para Java: versión 1.0.0-beta.2

Uso compartido de datos de Microsoft Purview permite que los datos se compartan en contexto desde Azure Data Lake Storage Gen2 y cuentas de Azure Storage, tanto dentro como entre organizaciones.

Los proveedores de datos pueden usar Uso compartido de datos de Microsoft Purview para compartir sus datos directamente con otros usuarios y asociados (conocidos como consumidores de datos) sin duplicación de datos, a la vez que administran de forma centralizada sus actividades de uso compartido desde Microsoft Purview.

Para los consumidores de datos, Uso compartido de datos de Microsoft Purview proporciona acceso casi en tiempo real a los datos compartidos con ellos por un proveedor.

Entre las funcionalidades clave proporcionadas por Uso compartido de datos de Microsoft Purview se incluyen las siguientes:

  • Compartir datos dentro de la organización o con asociados y clientes fuera de la organización (dentro del mismo inquilino de Azure o entre distintos inquilinos de Azure).
  • Compartir datos locales de ADLS Gen2 o Blob Storage sin duplicación de datos.
  • Compartir datos con varios destinatarios.
  • Acceder a los datos compartidos casi en tiempo real.
  • Administre las relaciones de uso compartido y realice un seguimiento de quiénes se comparten los datos con/desde para cada cuenta de ADLSGen2 o Blob Storage.
  • Finalice el acceso al recurso compartido en cualquier momento.
  • Experiencia flexible a través del portal de gobernanza de Microsoft Purview o a través de las API de REST.

Visite los siguientes recursos para obtener más información sobre este producto.

Código | fuentePaquete (Maven) | Documentación | de referencia de APIDocumentación del | productoMuestras

Introducción

Requisitos previos

Para obtener más información sobre cómo crear una cuenta de Microsoft Purview, consulte aquí.

Documentación

Hay varias documentación disponibles para ayudarle a empezar.

Adición del paquete al producto

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

Authentication

El paquete de identidad de Azure proporciona la implementación predeterminada para autenticar el cliente.

Conceptos clave

Proveedor de datos: Un proveedor de datos es el usuario que crea un recurso compartido seleccionando un origen de datos, eligiendo qué archivos y carpetas compartir y con quién compartirlos. Después, Microsoft Purview envía una invitación a cada consumidor de datos.

Consumidor de datos: Un consumidor de datos es la persona que acepta la invitación especificando una cuenta de almacenamiento de destino en su propia suscripción de Azure que usará para acceder a los datos compartidos.

Ejemplos

Ejemplos del proveedor de datos

En los ejemplos de código siguientes se muestra cómo los proveedores de datos pueden usar el SDK de Java de Microsoft Azure para Uso compartido de Purview para administrar su actividad de uso compartido.

Crear un cliente de recurso compartido enviado

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

Crear un recurso compartido enviado

Para empezar a compartir datos, el proveedor de datos debe crear primero un recurso compartido enviado que identifique los datos que les gustaría compartir.

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

Enviar una invitación de recurso compartido a un usuario

Después de crear un recurso compartido enviado, el proveedor de datos puede ampliar las invitaciones a los consumidores que, a continuación, pueden ver los datos compartidos. En este ejemplo, una invitación se extiende a una persona especificando su dirección de correo electrónico.

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

Enviar una invitación de recurso compartido a un servicio

Los proveedores de datos también pueden extender invitaciones a servicios o aplicaciones especificando el identificador de inquilino y el identificador de objeto del servicio. El identificador de objeto que se usa para enviar una invitación a un servicio debe ser el identificador de objeto asociado a la aplicación empresarial (no al registro de la aplicación).

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

Obtener un recurso compartido enviado

Después de crear un recurso compartido enviado, los proveedores de datos pueden recuperarlo.

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

Enumerar recursos compartidos enviados

Los proveedores de datos también pueden recuperar una lista de los recursos compartidos enviados que han creado.

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

Eliminar un recurso compartido enviado

El proveedor de datos puede eliminar un recurso compartido enviado para dejar de compartir sus datos con todos los consumidores de datos.

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

Obtener invitación a recursos compartidos enviados

Después de crear una invitación de recurso compartido enviada, los proveedores de datos pueden recuperarla.

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

Enumerar invitaciones de recursos compartidos enviados

Los proveedores de datos también pueden recuperar una lista de las invitaciones de recursos compartidos enviadas que han creado.

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

Eliminar una invitación de recurso compartido enviado

El proveedor de datos puede eliminar una invitación de recurso compartido enviado individual para dejar de compartir sus datos con el consumidor de datos específico al que se ha dirigido la invitación.

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

Ejemplos de consumidores de datos

En los ejemplos de código siguientes se muestra cómo los consumidores de datos pueden usar el SDK de Java de Microsoft Azure para Uso compartido de Purview para administrar su actividad de uso compartido.

Crear un cliente de recursos compartidos recibidos

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

Enumerar recursos compartidos recibidos desasociados

Para empezar a ver los datos compartidos con ellos, un consumidor de datos primero debe recuperar una lista de recursos compartidos recibidos desasociados. Dentro de esta lista, pueden identificar un recurso compartido desasociado recibido que se va a adjuntar.

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

Adjuntar un recurso compartido de recepción

Una vez que el consumidor de datos ha identificado un recurso compartido recibido, puede adjuntar el recurso compartido recibido a una ubicación donde pueda acceder a los datos compartidos. Si el recurso compartido recibido ya está asociado, los datos compartidos serán accesibles en la nueva ubicación especificada.

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

Obtener recurso compartido recibido

Un consumidor de datos puede recuperar un recurso compartido recibido individual.

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

Enumerar recursos compartidos recibidos adjuntos

Los consumidores de datos también pueden recuperar una lista de sus recursos compartidos recibidos adjuntos.

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

Eliminar un recurso compartido recibido

El consumidor de datos puede eliminar un recurso compartido recibido para finalizar su acceso a los datos compartidos.

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

Ejemplos de recursos compartidos

En los ejemplos de código siguientes se muestra cómo usar el SDK de Java de Microsoft Azure para uso compartido de Purview para ver los recursos compartidos. Un recurso compartido es el recurso subyacente desde el que un proveedor comparte datos o el destino donde un consumidor adjunta los datos compartidos con ellos.

Enumerar recursos compartidos

Se puede recuperar una lista de recursos compartidos para ver todos los recursos de una cuenta en la que se han realizado actividades de uso compartido.

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

Solución de problemas

Habilitar el registro

Los SDK de Azure para Java ofrecen una historia de registro coherente para ayudar a solucionar errores de aplicación y acelerar su resolución. Los registros generados capturarán el flujo de una aplicación antes de alcanzar el estado terminal para ayudar a encontrar el problema raíz. Consulte la wiki de registro para obtener instrucciones sobre cómo habilitar el registro.

Pasos siguientes

Contribuir

Para más información sobre cómo contribuir a este repositorio, consulte la guía de contribución.

  1. Bifurcarlo
  2. Creación de la rama de características (git checkout -b my-new-feature)
  3. Confirmar los cambios (git commit -am 'Add some feature')
  4. Inserción en la rama (git push origin my-new-feature)
  5. Creación de una nueva solicitud de incorporación de cambios