Udostępnij za pośrednictwem


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

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.