Partager via


Bibliothèque cliente de partage Azure Purview pour Python - version 1.0.0b3

Microsoft Purview Share est un service cloud entièrement managé.

Veuillez vous fier fortement à la documentation du service et à notre documentation cliente de protocole pour utiliser cette bibliothèque

| Code sourcePackage (PyPI) | Documentation produit

Prise en main

Installer le package

Installez la bibliothèque cliente de partage Azure Purview pour Python avec pip :

pip install azure-purview-sharing

Prérequis

  • Vous devez disposer d’un abonnement Azure et d’une ressource Purview pour utiliser ce package.
  • Python 3.6 ou version ultérieure est requis pour utiliser ce package.

Authentifier le client

Utilisation d’Azure Active Directory

Ce document illustre l’utilisation de DefaultAzureCredential pour l’authentification via Azure Active Directory. Toutefois, toutes les informations d’identification proposées par le package azure-identity seront acceptées. Pour plus d’informations sur d’autres informations d’identification, consultez la documentation azure-identity .

Une fois que vous avez choisi et configuré vos informations d’identification, vous pouvez créer des instances de .PurviewSharingClient

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
client = PurviewSharingClient(endpoint="https://<my-account-name>.purview.azure.com", credential=credential)

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 dans son propre abonnement Azure un compte de stockage cible qu’il utilisera pour accéder aux données partagées.

Exemples

Table des matières :

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) Microsoft Azure Python pour Purview Sharing pour gérer leur activité de partage.

Créer un client de partage envoyé

import os, uuid, json

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint, credential=credential)

Création de partage

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.

import os, uuid, json

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint, credential=credential)

sent_share_id = uuid.uuid4()

artifact = {
    "properties": {
        "paths": [
            {
                "containerName": "container-name",
                "receiverPath": "shared-file-name.txt",
                "senderPath": "original/file-name.txt"
            }
        ]
    },
    "storeKind": "AdlsGen2Account",
    "storeReference": {
        "referenceName": "/subscriptions/{subscription-id}/resourceGroups/provider-storage-rg/providers/Microsoft.Storage/storageAccounts/providerstorage",
        "type": "ArmResourceReference"
    }
}

sent_share = {
    "properties": {
        "artifact": artifact,
        "displayName": "sampleShare",
        "description": "A sample share"
    },
    "shareKind": "InPlace"
}

request = client.sent_shares.begin_create_or_replace(
    str(sent_share_id),
    sent_share=sent_share)

response = request.result()
print(response)

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 à une personne en spécifiant son adresse e-mail.

import os, uuid

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential
from datetime import date

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint, credential=credential)

sent_share_id = uuid.uuid4()
sent_share_invitation_id = uuid.uuid4()

consumerEmail = "consumer@contoso.com"
today = date.today()
invitation = {
    "invitationKind": "User",
    "properties": {
        "targetEmail": consumerEmail,
        "notify": "true",
        "expirationDate": date(today.year+1,today.month,today.day).strftime("%Y-%m-%d") + " 00:00:00"
    }
}

invitation_request = client.sent_shares.create_invitation(
    sent_share_id=str(sent_share_id),
    sent_share_invitation_id=str(sent_share_invitation_id),
    sent_share_invitation=invitation)

invitation_response = invitation_request.result()
created_invitation = json.loads(invitation_response)
print(created_invitation)

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

import os, uuid

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint, credential=credential)

targetActiveDirectoryId = uuid.uuid4()
targetObjectId = uuid.uuid4()

sent_share_invitation = {
    "invitationKind": "Service",
    "properties": {
        "targetActiveDirectoryId": str(targetActiveDirectoryId),
        "targetObjectId": str(targetObjectId)
    }
}

invitation_response = client.sent_shares.create_invitation(
    sent_share_id=str(sent_share_id),
    sent_share_invitation_id=str(sent_share_invitation_id),
    sent_share_invitation=sent_share_invitation)

print(invitation_response)

Obtenir le partage envoyé

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

import os, uuid

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()
sent_share_id = uuid.uuid4()

client = PurviewSharingClient(endpoint=endpoint, credential=credential)

retrieved_sent_share = client.sent_shares.get(sent_share_id=str(sent_share_id))
print(retrieved_sent_share)

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.

import os

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint, credential=credential)

provider_storage_account_resource_id = "/subscriptions/{subscription-id}/resourceGroups/provider-storage-rg/providers/Microsoft.Storage/storageAccounts/providerstorage"

list_request = client.sent_shares.list(
    reference_name=provider_storage_account_resource_id,
    orderby="properties/createdAt desc")

for list_response in list_request:
    print(list_response)

Supprimer le 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.

import os

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint,credential=credential)

sent_share_id = uuid.uuid4()

delete_request = client.sent_shares.begin_delete(sent_share_id=str(sent_share_id))
delete_response = delete_request.result()
print(delete_response)

Obtenir l’invitation de partage envoyé

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

import os, uuid, json

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint,credential=credential)

sent_share_id = uuid.uuid4()
sent_share_invitation_id = uuid.uuid4()

get_invitation_response = client.sent_shares.get_invitation(
    sent_share_id=str(sent_share_id), 
    sent_share_invitation_id=str(sent_share_invitation_id))

retrieved_share_invitation = json.loads(get_invitation_response)
print(retrieved_share_invitation)

Répertorier les invitations de partage envoyés

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

import os, uuid, json

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint, credential=credential)

sent_share_id = uuid.uuid4()

list_request = client.sent_shares.list_invitations(sent_share_id=str(sent_share_id))

for list_response in list_request:
    print(list_response)

Supprimer l’invitation de partage envoyé

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

import os, uuid, json

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint,credential=credential)

sent_share_id = uuid.uuid4()
sent_share_invitation_id = uuid.uuid4()

delete_invitation_request = client.sent_shares.begin_delete_invitation(
    sent_share_id=str(sent_share_id),
    sent_share_invitation_id=str(sent_share_invitation_id))
delete_invitation_response = delete_invitation_request.result()
print(delete_invitation_response)

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) Microsoft Azure Python pour le partage Purview pour gérer leur activité de partage.

Créer un client de partage reçu

import os

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint,credential=credential)

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

Pour commencer à afficher les données partagées avec eux, un consommateur de données doit d’abord récupérer une liste de partages reçus détachés. Dans cette liste, ils peuvent identifier un partage reçu détaché à attacher. Une action reçue « détachée » fait référence à une part reçue qui n’a jamais été attachée ou qui a été détachée.

import os

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint,credential=credential)

list_detached_response = client.received_shares.list_detached(orderby="properties/createdAt desc")
print(list_detached_response)

Attacher un partage reçu

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é.

import os, json

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint,credential=credential)

consumer_storage_account_resource_id = "/subscriptions/{subscription-id}/resourceGroups/consumer-storage-rg/providers/Microsoft.Storage/storageAccounts/consumerstorage"

list_detached_response = client.received_shares.list_detached(orderby="properties/createdAt desc")
received_share = next(x for x in list_detached_response)

store_reference = {
    "referenceName": consumer_storage_account_resource_id,
    "type": "ArmResourceReference"
}

sink = {
    "properties": {
        "containerName": "container-test",
        "folder": "folder-test",
        "mountPath": "mountPath-test",
    },
    "storeKind": "AdlsGen2Account",
    "storeReference": store_reference
}

received_share['properties']['sink'] = sink

update_request = client.received_shares.begin_create_or_replace(
    received_share['id'],
    content_type="application/json",
    content=json.dumps(received_share))

update_response = update_request.result()
print(update_response)

Obtenir le partage reçu

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

import os

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint,credential=credential)

list_detached_response = client.received_shares.list_detached(orderby="properties/createdAt desc")
list_detached = json.loads(list_detached_response)
received_share = list_detached[0]

get_share_response = client.received_shares.get(received_share_id=received_share['id'])
retrieved_share = json.loads(get_share_response)
print(retrieved_share)

Répertorier les partages reçus joints

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

import os

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint,credential=credential)

consumer_storage_account_resource_id = "/subscriptions/{subscription-id}/resourceGroups/consumer-storage-rg/providers/Microsoft.Storage/storageAccounts/consumerstorage"

list_attached_response = client.received_shares.list_attached(
    reference_name=consumer_storage_account_resource_id,
    orderby="properties/createdAt desc")
print(list_attached_response)

Supprimer le 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.

import os

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint,credential=credential)

delete_received_share_request = client.received_shares.begin_delete(received_share_id=received_share['id'])
delete_received_share_response = delete_received_share_request.result()
print(delete_received_share_response)

Partager des exemples de ressources

Les exemples de code suivants montrent comment utiliser le Kit de développement logiciel (SDK) Microsoft Azure Python pour Purview Sharing 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 lui.

Répertorier les ressources de partage

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

import os

from azure.purview.sharing import PurviewSharingClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["ENDPOINT"]
credential = DefaultAzureCredential()

client = PurviewSharingClient(endpoint=endpoint,credential=credential)

list_request = client.share_resources.list(
    filter="properties/storeKind eq 'AdlsGen2Account'",
    orderby="properties/createdAt desc")

for list_response in list_request:
    print(list_response)

Dépannage

Général

Le client Purview Catalog déclenche des exceptions définies dans Azure Core si vous appelez .raise_for_status() vos réponses.

Journalisation

Cette bibliothèque utilise la bibliothèque de journalisation standard pour la journalisation. Les informations de base sur les sessions HTTP (URL, en-têtes, etc.) sont enregistrées au niveau INFO.

La journalisation détaillée de niveau DEBUG, comprenant le corps de la demande et/ou de la réponse et les en-têtes non rédigés, peut être activée sur un client à l’aide de l’argument de mot clé logging_enable :

import sys
import logging
from azure.identity import DefaultAzureCredential
from azure.purview.sharing import PurviewSharingClient

# Create a logger for the 'azure' SDK
logger = logging.getLogger('azure')
logger.setLevel(logging.DEBUG)

# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)

endpoint = "https://<my-account-name>.share.purview.azure.com"
credential = DefaultAzureCredential()

# This client will log detailed information about its HTTP sessions, at DEBUG level
client = PurviewSharingClient(endpoint=endpoint, credential=credential, logging_enable=True)

De même, logging_enable peut activer la journalisation détaillée pour un seul send_request appel, même si elle n’est pas activée pour le client :

result = client.types.get_all_type_definitions(logging_enable=True)

Étapes suivantes

Pour plus d’exemples génériques, consultez nos exemples.

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, consultez cla.microsoft.com.

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 de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.