Azure Purview-Freigabeclientbibliothek für Python– Version 1.0.0b3
Microsoft Purview Share ist ein vollständig verwalteter Clouddienst.
Verwenden Sie diese Bibliothek in hohem Maße auf die Dokumentation des Diensts und unsere Protokollclientdokumentation.
Quellcode | Paket (PyPI) | Produktdokumentation
Erste Schritte
Installieren des Pakets
Installieren Sie die Azure Purview Sharing-Clientbibliothek für Python mit pip:
pip install azure-purview-sharing
Voraussetzungen
- Sie benötigen ein Azure-Abonnement und eine Purview-Ressource , um dieses Paket verwenden zu können.
- Für die Verwendung dieses Pakets ist Python 3.6 oder höher erforderlich.
Authentifizieren des Clients
Verwenden von Azure Active Directory
In diesem Dokument wird die Verwendung von DefaultAzureCredential zur Authentifizierung über Azure Active Directory veranschaulicht. Alle anmeldeinformationen, die vom azure-identity-Paket angeboten werden, werden jedoch akzeptiert. Weitere Informationen zu anderen Anmeldeinformationen finden Sie in der Dokumentation zu azure-identity .
Nachdem Sie Ihre Anmeldeinformationen ausgewählt und konfiguriert haben, können Sie Instanzen von PurviewSharingClient
erstellen.
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)
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.
Datenconsumer: Ein Datenconsumer 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
Inhaltsverzeichnis:
Beispiele für Datenanbieter
Die folgenden Codebeispiele veranschaulichen, wie Datenanbieter das Microsoft Azure Python SDK für Purview-Freigabe verwenden können, um ihre Freigabeaktivität zu verwalten.
Erstellen eines Gesendeten Freigabeclients
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)
Erstellen einer 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.
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)
Senden einer Freigabe-Einladung 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.
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)
Senden einer Freigabe-Einladung an einen Dienst
Datenanbieter können Einladungen auch auf Dienste oder Anwendungen erweitern, indem sie die Mandanten-ID und die 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.
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)
Gesendete Freigabe abrufen
Nach dem Erstellen einer gesendeten Freigabe können Datenanbieter sie abrufen.
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)
Auflisten von gesendeten Freigaben
Datenanbieter können auch eine Liste der gesendeten Freigaben abrufen, die sie erstellt haben.
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)
Gesendete Freigabe löschen
Eine gesendete Freigabe kann vom Datenanbieter gelöscht werden, um die Freigabe der Daten für alle Datenconsumer zu beenden.
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)
Get Sent Share Einladung
Nach dem Erstellen einer gesendeten Freigabe-Einladung können Datenanbieter sie abrufen.
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)
Auflisten gesendeter Freigabe-Einladungen
Datenanbieter können auch eine Liste der gesendeten Freigabe-Einladungen abrufen, die sie erstellt haben.
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)
Gesendete Freigabe-Einladung löschen
Eine einzelne gesendete Freigabe-Einladung kann vom Datenanbieter gelöscht werden, um die Freigabe ihrer Daten mit dem bestimmten Datenconsumer zu beenden, an den die Einladung adressiert wurde.
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)
Beispiele für Datenconsumer
Die folgenden Codebeispiele veranschaulichen, wie Datenconsumer das Microsoft Azure Python SDK für Purview-Freigabe verwenden können, um ihre Freigabeaktivität zu verwalten.
Erstellen eines empfangenen Freigabeclients
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)
Auflisten getrennter empfangener Freigaben
Um mit der Anzeige der für sie freigegebenen Daten zu beginnen, muss ein Datenconsumer zunächst eine Liste der getrennten empfangenen Freigaben abrufen. Innerhalb dieser Liste können sie eine getrennte empfangene Freigabe identifizieren, die angefügt werden soll. Eine "getrennt" empfangene Freigabe bezieht sich auf eine empfangene Freigabe, die nie angefügt oder getrennt wurde.
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)
Anfügen einer empfangenen Freigabe
Nachdem der Datenconsumer eine empfangene Freigabe identifiziert hat, kann er die empfangene Freigabe an einen Speicherort anfügen, an dem er auf die freigegebenen Daten zugreifen kann. Wenn die empfangene Freigabe bereits angefügt ist, werden die freigegebenen Daten am neuen angegebenen Speicherort zugänglich gemacht.
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)
Empfangene Freigabe abrufen
Ein Datenconsumer kann eine einzelne empfangene Freigabe abrufen.
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)
Auflisten angefügter empfangener Freigaben
Datenconsumer können auch eine Liste ihrer angefügten empfangenen Freigaben abrufen.
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)
Empfangene Freigabe löschen
Eine empfangene Freigabe kann vom Datenconsumer gelöscht werden, um den Zugriff auf freigegebene Daten zu beenden.
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)
Freigeben von Ressourcenbeispielen
Die folgenden Codebeispiele veranschaulichen, wie Sie das Microsoft Azure Python SDK für Purview-Freigabe verwenden, um Freigaberessourcen anzuzeigen. Eine Freigaberessource ist die zugrunde liegende Ressource, von der ein Anbieter Daten gemeinsam verwendet, oder das Ziel, an das ein Consumer die für sie freigegebenen Daten anfügt.
Auflisten von Freigaberessourcen
Eine Liste der Freigaberessourcen kann abgerufen werden, um alle Ressourcen in einem Konto anzuzeigen, in dem Freigabeaktivitäten stattgefunden haben.
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)
Problembehandlung
Allgemein
Der Purview Catalog-Client löst ausnahmen aus, die in Azure Core definiert sind, wenn Sie für Ihre Antworten aufrufen .raise_for_status()
.
Protokollierung
Diese Bibliothek verwendet die Standardprotokollbibliothek für die Protokollierung. Grundlegende Informationen zu HTTP-Sitzungen (URLs, Header usw.) werden auf INFO-Ebene protokolliert.
Eine ausführliche Protokollierung auf der Ebene DEBUG, einschließlich Anforderungs-/Antworttexten und vollständiger Header, kann auf einem Client mit dem Schlüsselwortargument logging_enable
aktiviert werden:
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)
logging_enable
Auf ähnliche Weise kann die detaillierte Protokollierung für einen einzelnen send_request
Aufruf aktiviert werden, auch wenn sie für den Client nicht aktiviert ist:
result = client.types.get_all_type_definitions(logging_enable=True)
Nächste Schritte
Weitere generische Beispiele finden Sie in unseren Beispielen.
Mitwirken
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Weitere Informationen finden Sie unter cla.microsoft.com.
Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.
Azure SDK for Python