Biblioteka klienta udostępniania usługi Azure Purview dla języka Python — wersja 1.0.0b3
Microsoft Purview Share to w pełni zarządzana usługa w chmurze.
W dużej mierze polegaj na dokumentacji usługi i dokumentacji klienta protokołu do korzystania z tej biblioteki
Kod | źródłowyPakiet (PyPI) | Dokumentacja produktu
Wprowadzenie
Instalowanie pakietu
Zainstaluj bibliotekę klienta usługi Azure Purview Sharing dla języka Python za pomocą narzędzia pip:
pip install azure-purview-sharing
Wymagania wstępne
- Aby korzystać z tego pakietu, musisz mieć subskrypcję platformy Azure i zasób usługi Purview .
- Do korzystania z tego pakietu jest wymagany język Python 3.6 lub nowszy.
Uwierzytelnianie klienta
Korzystanie z usługi Azure Active Directory
W tym dokumencie pokazano, jak używać elementu DefaultAzureCredential do uwierzytelniania za pośrednictwem usługi Azure Active Directory. Jednak wszystkie poświadczenia oferowane przez pakiet azure-identity zostaną zaakceptowane. Aby uzyskać więcej informacji na temat innych poświadczeń, zobacz dokumentację azure-identity .
Po wybraniu i skonfigurowaniu poświadczeń można utworzyć wystąpienia elementu 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)
Kluczowe pojęcia
Dostawca danych: Dostawca danych to osoba, która tworzy udział, wybierając źródło danych, wybierając pliki i foldery do udostępnienia oraz komu je udostępnić. Usługa Microsoft Purview wysyła następnie zaproszenie do każdego odbiorcy danych.
Odbiorca danych: Odbiorca danych jest osobą, która akceptuje zaproszenie, określając docelowe konto magazynu w ramach własnej subskrypcji platformy Azure, która będzie używana do uzyskiwania dostępu do udostępnionych danych.
Przykłady
Spis treści:
Przykłady dostawców danych
W poniższych przykładach kodu pokazano, w jaki sposób dostawcy danych mogą zarządzać działaniami udostępniania przy użyciu zestawu SDK języka Python platformy Microsoft Azure na potrzeby udostępniania usługi Purview.
Tworzenie klienta wysłanego udziału
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)
Tworzenie udziału
Aby rozpocząć udostępnianie danych, dostawca danych musi najpierw utworzyć wysłany udział identyfikujący dane, które mają zostać udostępnione.
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)
Wysyłanie zaproszenia do udziału użytkownikowi
Po utworzeniu wysłanego udziału dostawca danych może rozszerzyć zaproszenia do użytkowników, którzy mogą następnie wyświetlać udostępnione dane. W tym przykładzie zaproszenie zostało rozszerzone na osobę, określając ich adres 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)
Wysyłanie zaproszenia do udziału do usługi
Dostawcy danych mogą również rozszerzać zaproszenia na usługi lub aplikacje, określając identyfikator dzierżawy i identyfikator obiektu usługi. Identyfikator obiektu używany do wysyłania zaproszenia do usługi musi być identyfikatorem obiektu skojarzonym z aplikacją dla przedsiębiorstw (a nie rejestracją aplikacji).
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)
Pobieranie wysłanego udziału
Po utworzeniu wysłanego udziału dostawcy danych mogą go pobrać.
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)
Listy wysłanych udziałów
Dostawcy danych mogą również pobrać listę wysłanych udziałów, które utworzyli.
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)
Usuwanie wysłanego udziału
Wysłany udział może zostać usunięty przez dostawcę danych, aby zatrzymać udostępnianie danych wszystkim użytkownikom danych.
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)
Zaproszenie do wysłania udziału
Po utworzeniu wysłanego zaproszenia do udziału dostawcy danych mogą go pobrać.
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)
Listy wysłanych zaproszeń do udziału
Dostawcy danych mogą również pobrać listę utworzonych zaproszeń do udziału.
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)
Usuń zaproszenie wysłanego udziału
Dostawca danych może usunąć indywidualne zaproszenie do udziału, aby zatrzymać udostępnianie danych określonym konsumentom danych, do którego zostało wysłane zaproszenie.
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)
Przykłady odbiorców danych
W poniższych przykładach kodu pokazano, w jaki sposób użytkownicy danych mogą zarządzać działaniami udostępniania przy użyciu zestawu SDK języka Python platformy Microsoft Azure na potrzeby udostępniania usługi Purview.
Tworzenie odebranego klienta udział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)
Wyświetlanie listy odłączonych odebranych udziałów
Aby rozpocząć wyświetlanie udostępnionych im danych, użytkownik danych musi najpierw pobrać listę odłączonych odebranych udziałów. Na tej liście mogą zidentyfikować odłączony odebrany udział do dołączenia. Odebrany udział "odłączony" odwołuje się do odebranego udziału, który nigdy nie został dołączony lub został odłączony.
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)
Dołączanie odebranego udziału
Gdy odbiorca danych zidentyfikował odebrany udział, może dołączyć odebrany udział do lokalizacji, w której może uzyskać dostęp do udostępnionych danych. Jeśli odebrany udział jest już dołączony, udostępnione dane będą dostępne w nowej określonej lokalizacji.
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)
Uzyskiwanie odebranych udziałów
Odbiorca danych może pobrać pojedynczy odebrany udział.
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)
Lista dołączonych otrzymanych udziałów
Użytkownicy danych mogą również pobrać listę dołączonych otrzymanych udziałów.
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)
Usuń odebrany udział
Odebrany udział może zostać usunięty przez odbiorcę danych, aby przerwać dostęp do udostępnionych danych.
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)
Przykłady zasobów udostępniania
W poniższych przykładach kodu pokazano, jak używać zestawu SDK języka Python platformy Microsoft Azure do udostępniania usługi Purview w celu wyświetlania zasobów udostępnionych. Zasób udziału to zasób bazowy, z którego dostawca udostępnia dane lub miejsce docelowe, w którym odbiorca dołącza udostępnione im dane.
Wyświetlanie listy zasobów udziałów
Listę zasobów udziałów można pobrać, aby wyświetlić wszystkie zasoby na koncie, na którym miały miejsce działania udostępniania.
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)
Rozwiązywanie problemów
Ogólne
Klient wykazu usługi Purview zgłosi wyjątki zdefiniowane w usłudze Azure Core , jeśli wywołasz .raise_for_status()
odpowiedzi.
Rejestrowanie
Ta biblioteka używa standardowej biblioteki rejestrowania do rejestrowania. Podstawowe informacje o sesjach HTTP (adresach URL, nagłówkach itp.) są rejestrowane na poziomie INFORMACJI.
Szczegółowe rejestrowanie na poziomie DEBUG, w tym treści żądań/odpowiedzi i nieredagowanych nagłówków, można włączyć na kliencie z argumentem słowa kluczowego 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)
logging_enable
Podobnie można włączyć szczegółowe rejestrowanie dla pojedynczego send_request
wywołania, nawet jeśli nie jest włączone dla klienta:
result = client.types.get_all_type_definitions(logging_enable=True)
Następne kroki
Aby uzyskać więcej ogólnych przykładów, zobacz nasze przykłady.
Współtworzenie
W tym projekcie zachęcamy do współtworzenia i zgłaszania sugestii. Współtworzenie w większości przypadków wymaga zgody na umowę licencyjną dotyczącą współautorów (CLA, Contributor License Agreement), zgodnie z którą współautor ma prawo udzielić i faktycznie udziela nam praw do używania wytworzonej przez siebie zawartości. Aby uzyskać szczegółowe informacje, odwiedź cla.microsoft.com.
Po przesłaniu żądania ściągnięcia robot CLA automatycznie określi, czy musisz przekazać umowę CLA, i doda odpowiednie informacje do tego żądania (na przykład etykietę czy komentarz). Po prostu postępuj zgodnie z instrukcjami robota. Wystarczy zrobić to raz dla wszystkich repozytoriów, w przypadku których jest używana nasza umowa CLA.
W tym projekcie przyjęto Kodeks postępowania oprogramowania Open Source firmy Microsoft. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące kodeksu postępowania lub skontaktuj się z opencode@microsoft.com dodatkowymi pytaniami lub komentarzami.
Azure SDK for Python