Delen via


Azure Purview-clientbibliotheek voor delen voor Python - versie 1.0.0b3

Microsoft Purview Share is een volledig beheerde cloudservice.

Vertrouw sterk op de documentatie van de service en onze protocolclientdocumenten om deze bibliotheek te gebruiken

Broncode | Pakket (PyPI) | Productdocumentatie

Aan de slag

Het pakket installeren

Installeer de Azure Purview-clientbibliotheek voor delen voor Python met pip:

pip install azure-purview-sharing

Vereisten

De client verifiëren

Azure Active Directory gebruiken

In dit document wordt gedemonstreerd hoe u DefaultAzureCredential gebruikt voor verificatie via Azure Active Directory. Alle referenties die door het pakket azure-identity worden aangeboden, worden echter geaccepteerd. Zie de documentatie over azure-identity voor meer informatie over andere referenties.

Nadat u uw referentie hebt gekozen en geconfigureerd, kunt u exemplaren van de PurviewSharingClientmaken.

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)

Belangrijkste concepten

Gegevensprovider: Een gegevensprovider is de persoon die een share maakt door een gegevensbron te selecteren, te kiezen welke bestanden en mappen u wilt delen en met wie u deze wilt delen. Microsoft Purview verzendt vervolgens een uitnodiging naar elke gegevensgebruiker.

Gegevensgebruiker: Een gegevensgebruiker is de persoon die de uitnodiging accepteert door een doelopslagaccount op te geven in hun eigen Azure-abonnement dat ze gebruiken om toegang te krijgen tot de gedeelde gegevens.

Voorbeelden

Inhoudsopgave:

Voorbeelden van gegevensproviders

De volgende codevoorbeelden laten zien hoe gegevensproviders de Microsoft Azure Python SDK voor Purview Delen kunnen gebruiken om hun deelactiviteit te beheren.

Een verzonden shareclient maken

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)

Share maken

Als u gegevens wilt delen, moet de gegevensprovider eerst een verzonden share maken waarmee de gegevens worden geïdentificeerd die ze willen delen.

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)

Uitnodiging voor delen verzenden naar een gebruiker

Nadat een verzonden share is gemaakt, kan de gegevensprovider uitnodigingen uitbreiden naar consumenten die vervolgens de gedeelde gegevens kunnen bekijken. In dit voorbeeld wordt een uitnodiging uitgebreid naar een persoon door het e-mailadres op te geven.

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)

Uitnodiging voor delen verzenden naar een service

Gegevensproviders kunnen uitnodigingen ook uitbreiden naar services of toepassingen door de tenant-id en object-id van de service op te geven. De object-id die wordt gebruikt voor het verzenden van een uitnodiging naar een service, moet de object-id zijn die is gekoppeld aan de ondernemingstoepassing (niet de registratie van de toepassing).

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)

Verzonden share ophalen

Nadat u een verzonden share hebt gemaakt, kunnen gegevensproviders deze ophalen.

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)

Verzonden shares weergeven

Gegevensproviders kunnen ook een lijst ophalen van de verzonden shares die ze hebben gemaakt.

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)

Verzonden share verwijderen

Een verzonden share kan door de gegevensprovider worden verwijderd om het delen van de gegevens met alle gegevensgebruikers te stoppen.

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)

Verzonden shareuitnodiging ontvangen

Nadat u een verzonden share-uitnodiging hebt gemaakt, kunnen gegevensproviders deze ophalen.

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)

Verzonden share-uitnodigingen weergeven

Gegevensproviders kunnen ook een lijst ophalen met de verzonden share-uitnodigingen die ze hebben gemaakt.

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)

Uitnodiging voor verzonden share verwijderen

Een individuele verzonden share-uitnodiging kan door de gegevensprovider worden verwijderd om het delen van hun gegevens te stoppen met de specifieke gegevensgebruiker aan wie de uitnodiging is gericht.

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)

Voorbeelden van gegevensverbruikers

De volgende codevoorbeelden laten zien hoe gegevensgebruikers de Microsoft Azure Python SDK voor Purview Delen kunnen gebruiken om hun deelactiviteit te beheren.

Een ontvangen shareclient maken

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)

Losgekoppelde ontvangen shares weergeven

Om te beginnen met het weergeven van gegevens die met hen zijn gedeeld, moet een gegevensgebruiker eerst een lijst met losgekoppelde ontvangen shares ophalen. In deze lijst kunnen ze een losgekoppelde ontvangen share identificeren om te koppelen. Een 'losgekoppelde' ontvangen share verwijst naar een ontvangen share die nooit is gekoppeld of is losgekoppeld.

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)

Een ontvangen share bijvoegen

Zodra de gegevensgebruiker een ontvangen share heeft geïdentificeerd, kan deze de ontvangen share koppelen aan een locatie waar deze toegang heeft tot de gedeelde gegevens. Als de ontvangen share al is gekoppeld, worden de gedeelde gegevens toegankelijk gemaakt op de nieuwe opgegeven locatie.

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)

Ontvangen share ophalen

Een gegevensgebruiker kan een individuele ontvangen share ophalen.

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)

Bijgevoegde ontvangen shares weergeven

Gegevensgebruikers kunnen ook een lijst met hun gekoppelde ontvangen shares ophalen.

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)

Ontvangen share verwijderen

Een ontvangen share kan door de gegevensgebruiker worden verwijderd om de toegang tot gedeelde gegevens te beëindigen.

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)

Voorbeelden van gedeelde resources

De volgende codevoorbeelden laten zien hoe u de Microsoft Azure Python SDK voor Purview-delen gebruikt om shareresources weer te geven. Een shareresource is de onderliggende resource van waaruit een provider gegevens deelt of de bestemming waar een consument gegevens koppelt die met hem of haar worden gedeeld.

Resources voor lijst delen

Een lijst met shareresources kan worden opgehaald om alle resources in een account weer te geven waar deelactiviteiten hebben plaatsgevonden.

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)

Problemen oplossen

Algemeen

De Purview Catalog-client genereert uitzonderingen die zijn gedefinieerd in Azure Core als u op uw antwoorden aanroept .raise_for_status() .

Logboekregistratie

Deze bibliotheek gebruikt de standaardbibliotheek voor logboekregistratie voor logboekregistratie. Basisinformatie over HTTP-sessies (URL's, headers, enzovoort) wordt geregistreerd op INFO-niveau.

Gedetailleerde logboekregistratie op DEBUG-niveau met aanvraag/antwoord-body's en niet-geredigeerde headers, kan worden ingeschakeld op een client met het sleutelwoordargument 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)

Op dezelfde manier logging_enable kan gedetailleerde logboekregistratie voor één send_request aanroep worden ingeschakeld, zelfs als deze niet is ingeschakeld voor de client:

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

Volgende stappen

Zie onze voorbeelden voor meer algemene voorbeelden.

Bijdragen

Wij verwelkomen bijdragen en suggesties voor dit project. Voor de meeste bijdragen moet u instemmen met een licentieovereenkomst voor bijdragers (CLA: Contributor License Agreement) waarin u verklaart dat u gerechtigd bent ons het recht te geven uw bijdrage te gebruiken, en dat u dit ook doet. Ga naar cla.microsoft.com voor meer informatie.

Wanneer u een pull-aanvraag indient, wordt met een CLA-bot automatisch bepaald of u een CLA moet verschaffen en wordt de pull-aanvraag dienovereenkomstig opgemaakt (bijvoorbeeld met een label of commentaar). Volg gewoon de instructies van de bot. U hoeft dit maar eenmaal te doen voor alle repo's waar gebruik wordt gemaakt van onze CLA.

Op dit project is de Microsoft Open Source Code of Conduct (Microsoft Open Source-gedragscode) van toepassing. Zie voor meer informatie de veelgestelde vragen over de gedragscode of neem contact op opencode@microsoft.com met eventuele aanvullende vragen of opmerkingen.