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
- U moet een Azure-abonnement en een Purview-resource hebben om dit pakket te kunnen gebruiken.
- Python 3.6 of hoger is vereist voor het gebruik van dit pakket.
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 PurviewSharingClient
maken.
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.
Azure SDK for Python