Bagikan melalui


Pustaka klien Berbagi Azure Purview untuk Python - versi 1.0.0b3

Microsoft Purview Share adalah layanan cloud yang dikelola sepenuhnya.

Harap sangat bergantung pada dokumentasi layanan dan dokumen klien protokol kami untuk menggunakan pustaka ini

Kode sumber | Paket (PyPI) | Dokumentasi produk

Memulai

Menginstal paket

Instal pustaka klien Berbagi Azure Purview untuk Python dengan pip:

pip install azure-purview-sharing

Prasyarat

Mengautentikasi klien

Atau menggunakan Azure Active Directory

Dokumen ini menunjukkan penggunaan DefaultAzureCredential untuk mengautentikasi melalui Azure Active Directory. Namun, salah satu kredensial yang ditawarkan oleh paket identitas azure akan diterima. Lihat dokumentasi azure-identity untuk informasi selengkapnya tentang kredensial lainnya.

Setelah memilih dan mengonfigurasi kredensial, Anda dapat membuat instans 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)

Konsep utama

Penyedia Data: Penyedia data adalah individu yang membuat berbagi dengan memilih sumber data, memilih file dan folder mana yang akan dibagikan, dan dengan siapa berbagi. Microsoft Purview kemudian mengirim undangan ke setiap konsumen data.

Konsumen Data: Konsumen data adalah individu yang menerima undangan dengan menentukan akun penyimpanan target dalam langganan Azure mereka sendiri yang akan mereka gunakan untuk mengakses data bersama.

Contoh

Daftar Isi:

Contoh Penyedia Data

Contoh kode berikut menunjukkan bagaimana penyedia data dapat menggunakan Microsoft Azure Python SDK untuk Berbagi Purview untuk mengelola aktivitas berbagi mereka.

Membuat Klien Berbagi Terkirim

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)

Buat Berbagi

Untuk mulai berbagi data, penyedia data harus terlebih dahulu membuat berbagi terkirim yang mengidentifikasi data yang ingin mereka bagikan.

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)

Kirim Undangan Berbagi ke Pengguna

Setelah membuat berbagi terkirim, penyedia data dapat memperluas undangan kepada konsumen yang kemudian dapat melihat data bersama. Dalam contoh ini, undangan diperluas ke individu dengan menentukan alamat email mereka.

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)

Mengirim Undangan Berbagi ke Layanan

Penyedia data juga dapat memperluas undangan ke layanan atau aplikasi dengan menentukan id penyewa dan id objek layanan. Id objek yang digunakan untuk mengirim undangan ke layanan harus berupa id objek yang terkait dengan Aplikasi Perusahaan (bukan pendaftaran aplikasi).

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)

Dapatkan Berbagi Terkirim

Setelah membuat berbagi terkirim, penyedia data dapat mengambilnya.

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)

Daftar Berbagi Terkirim

Penyedia data juga dapat mengambil daftar berbagi terkirim yang telah mereka buat.

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)

Hapus Berbagi Terkirim

Berbagi terkirim dapat dihapus oleh penyedia data untuk berhenti berbagi data mereka dengan semua konsumen data.

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)

Dapatkan Undangan Berbagi Terkirim

Setelah membuat undangan berbagi terkirim, penyedia data dapat mengambilnya.

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)

Mencantumkan Undangan Berbagi Terkirim

Penyedia data juga dapat mengambil daftar undangan berbagi terkirim yang telah mereka buat.

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)

Menghapus Undangan Berbagi Terkirim

Undangan berbagi terkirim individu dapat dihapus oleh penyedia data untuk berhenti berbagi data mereka dengan konsumen data tertentu yang ditujukan undangan.

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)

Contoh Konsumen Data

Contoh kode berikut menunjukkan bagaimana konsumen data dapat menggunakan Microsoft Azure Python SDK untuk Berbagi Purview untuk mengelola aktivitas berbagi mereka.

Membuat Klien Berbagi yang Diterima

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)

Daftar Pembagian yang Diterima Yang Dicopot

Untuk mulai melihat data yang dibagikan dengan mereka, konsumen data harus terlebih dahulu mengambil daftar berbagi yang diterima yang dilepaskan. Dalam daftar ini, mereka dapat mengidentifikasi berbagi yang diterima yang dilepas untuk dilampirkan. Berbagi yang diterima "dilepas" mengacu pada berbagi yang diterima yang belum pernah dilampirkan atau telah dilepas.

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)

Lampirkan Berbagi yang Diterima

Setelah konsumen data mengidentifikasi berbagi yang diterima, mereka dapat melampirkan berbagi yang diterima ke lokasi tempat mereka dapat mengakses data bersama. Jika berbagi yang diterima sudah dilampirkan, data bersama akan dapat diakses di lokasi baru yang ditentukan.

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)

Dapatkan Berbagi yang Diterima

Konsumen data dapat mengambil berbagi yang diterima individu.

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)

Daftar Pembagian yang Diterima Terlampir

Konsumen data juga dapat mengambil daftar berbagi yang diterima terlampir.

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)

Hapus Berbagi yang Diterima

Berbagi yang diterima dapat dihapus oleh konsumen data untuk mengakhiri akses mereka ke data bersama.

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)

Bagikan Contoh Sumber Daya

Contoh kode berikut menunjukkan cara menggunakan Microsoft Azure Python SDK untuk Berbagi Purview untuk melihat sumber daya berbagi. Sumber daya berbagi adalah sumber daya yang mendasar tempat penyedia berbagi data atau tujuan tempat konsumen melampirkan data yang dibagikan dengan mereka.

Mencantumkan Sumber Daya Berbagi

Daftar sumber daya berbagi dapat diambil untuk melihat semua sumber daya dalam akun tempat aktivitas berbagi berlangsung.

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)

Pemecahan Masalah

Umum

Klien Katalog Purview akan memunculkan pengecualian yang ditentukan di Azure Core jika Anda memanggil .raise_for_status() respons Anda.

Pembuatan Log

Pustaka ini menggunakan pustaka pengelogan standar untuk pengelogan. Informasi dasar tentang sesi HTTP (URL, header, dll.) dicatat di tingkat INFO.

Pengelogan tingkat DEBUG mendetail, termasuk isi permintaan/respons dan header yang tidak diedit, dapat diaktifkan pada klien dengan argumen kata kunci 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)

Demikian pula, logging_enable dapat mengaktifkan pengelogan terperinci untuk satu send_request panggilan, bahkan ketika tidak diaktifkan untuk klien:

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

Langkah berikutnya

Untuk sampel umum lainnya, lihat sampel kami.

Berkontribusi

Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar-benar melakukannya, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi cla.microsoft.com.

Ketika Anda mengirimkan permintaan tarik, CLA-bot akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghias PR dengan tepat (misalnya, label, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di semua repos menggunakan CLA kami.

Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Tata Tertib atau hubungi opencode@microsoft.com untuk pertanyaan atau komentar lainnya.