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

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.