Sdílet prostřednictvím


Klientská knihovna pro sdílení Azure Purview pro Python – verze 1.0.0b3

Microsoft Purview Share je plně spravovaná cloudová služba.

Při používání této knihovny se do značné míry spolehněte na dokumentaci ke službě a na dokumentaci k našim klientům protokolů .

Zdrojový kód | Balíček (PyPI) | Dokumentace k produktu

Začínáme

Instalace balíčku

Nainstalujte klientskou knihovnu sdílení Azure Purview pro Python pomocí nástroje pip:

pip install azure-purview-sharing

Požadavky

Ověření klienta

Použití Azure Active Directory

Tento dokument ukazuje použití DefaultAzureCredential k ověřování prostřednictvím Azure Active Directory. Všechny přihlašovací údaje nabízené balíčkem azure-identity se ale přijmou. Další informace o dalších přihlašovacích údaji najdete v dokumentaci k azure-identity .

Jakmile zvolíte a nakonfigurujete přihlašovací údaje, můžete vytvořit instance objektu 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)

Klíčové koncepty

Zprostředkovatel dat: Poskytovatel dat je osoba, která vytvoří sdílenou složku výběrem zdroje dat, výběrem souborů a složek, které chcete sdílet a s kým je chcete sdílet. Microsoft Purview pak pošle pozvánku každému příjemci dat.

Příjemce dat: Příjemce dat je osoba, která přijme pozvánku zadáním cílového účtu úložiště ve svém vlastním předplatném Azure, který použije pro přístup ke sdíleným datům.

Příklady

Obsah:

Příklady zprostředkovatelů dat

Následující příklady kódu ukazují, jak můžou poskytovatelé dat pomocí sady Microsoft Azure Python SDK pro Purview Sharing spravovat své aktivity sdílení.

Vytvoření odeslaného klienta sdílené složky

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)

Vytvořit sdílenou složku

Aby bylo možné začít sdílet data, musí poskytovatel dat nejprve vytvořit odeslanou sdílenou složku, která identifikuje data, která chce sdílet.

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)

Odeslání pozvánky ke sdílení uživateli

Po vytvoření odeslané sdílené složky může poskytovatel dat rozšířit pozvánky na uživatele, kteří pak mohou sdílená data zobrazit. V tomto příkladu se pozvánka rozšíří na jednotlivce zadáním jeho e-mailové adresy.

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)

Odeslání pozvánky ke sdílení do služby

Poskytovatelé dat můžou také rozšířit pozvánky na služby nebo aplikace zadáním ID tenanta a ID objektu služby. ID objektu použitého k odeslání pozvánky ke službě musí být ID objektu přidruženého k podnikové aplikaci (ne k registraci aplikace).

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)

Získat odeslanou sdílenou složku

Po vytvoření odeslané sdílené složky ji můžou poskytovatelé dat načíst.

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)

Zobrazit seznam odeslaných sdílených složek

Poskytovatelé dat můžou také načíst seznam odeslaných sdílených složek, které vytvořili.

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)

Odstranit odeslanou sdílenou složku

Odeslanou sdílenou složku může poskytovatel dat odstranit a ukončit tak sdílení dat se všemi příjemci dat.

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)

Získat odeslanou pozvánku ke sdílené složce

Po vytvoření odeslané pozvánky ke sdílené složce ji můžou poskytovatelé dat načíst.

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)

Vypsat odeslané sdílené pozvánky

Poskytovatelé dat můžou také načíst seznam odeslaných pozvánek ke sdílené složce, které vytvořili.

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)

Odstranit odeslanou pozvánku ke sdílené složce

Poskytovatel dat může odstranit jednotlivou odeslanou pozvánku ke sdílené složce a ukončit tak sdílení svých dat s konkrétním příjemcem dat, kterému byla pozvánka adresována.

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)

Příklady příjemců dat

Následující příklady kódu ukazují, jak můžou uživatelé dat spravovat své aktivity sdílení pomocí sady Microsoft Azure Python SDK pro Purview Sharing.

Vytvoření přijatého klienta sdílené složky

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)

Výpis odpojených přijatých sdílených složek

Pokud chcete začít zobrazovat data, která s ním někdo sdílí, musí nejdřív načíst seznam odpojených přijatých sdílených složek. V tomto seznamu můžou identifikovat odpojenou přijatou sdílenou složku k připojení. "Odpojená" přijatá sdílená složka odkazuje na přijatou sdílenou složku, která nikdy nebyla připojena nebo byla odpojena.

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)

Připojení přijaté sdílené složky

Jakmile příjemce dat zjistí přijatou sdílenou složku, může přijatou sdílenou složku připojit k umístění, kde má ke sdíleným datům přístup. Pokud už je přijatá sdílená složka připojená, budou sdílená data přístupná v novém zadaném umístění.

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)

Získat přijatou sdílenou složku

Příjemce dat může načíst jednotlivou přijatou sdílenou složku.

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)

Vypsat připojené přijaté sdílené složky

Příjemci dat můžou také načíst seznam připojených přijatých sdílených složek.

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)

Odstranit přijatou sdílenou složku

Příjemce dat může přijatou sdílenou složku odstranit, aby ukončil přístup ke sdíleným datům.

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)

Sdílení příkladů prostředků

Následující příklady kódu ukazují, jak pomocí sady Microsoft Azure Python SDK pro Purview Sharing zobrazit sdílené prostředky. Prostředek sdílené složky je podkladový prostředek, ze kterého poskytovatel sdílí data, nebo cíl, kam příjemce připojuje data, která s ním sdílí.

Vypsat sdílené prostředky

Je možné načíst seznam sdílených prostředků a zobrazit všechny prostředky v rámci účtu, ve kterém probíhaly aktivity sdílení.

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)

Řešení potíží

Obecné

Klient katalogu Purview vyvolá výjimky definované v Azure Core , pokud na své odpovědi zavoláte .raise_for_status() .

protokolování

Tato knihovna používá k protokolování standardní knihovnu protokolování . Základní informace o relacích HTTP (adresy URL, hlavičky atd.) se protokolují na úrovni INFO.

Podrobné protokolování úrovně DEBUG, včetně těl požadavků/odpovědí a nezopravovaných hlaviček, je možné povolit v klientovi s argumentem klíčového logging_enable slova:

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)

Podobně logging_enable může povolit podrobné protokolování pro jedno send_request volání, i když to není povolené pro klienta:

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

Další kroky

Obecnější ukázky najdete v našich ukázkách.

Přispívání

Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete v cla.microsoft.com.

Při odesílání žádosti o přijetí změn robot CLA automaticky určí, jestli je potřeba poskytnout smlouvu CLA, a příslušným způsobem žádost o přijetí změn upraví (např. přidáním jmenovky nebo komentáře). Stačí postupovat podle pokynů robota. Pro všechna úložiště používající naši smlouvu CLA to stačí udělat jenom jednou.

Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování nebo kontaktujte s opencode@microsoft.com případnými dalšími dotazy nebo připomínkami.