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.
Azure SDK for Python