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
- Anda harus memiliki langganan Azure dan sumber daya Purview untuk menggunakan paket ini.
- Python 3.6 atau yang lebih baru diperlukan untuk menggunakan paket ini.
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.
Azure SDK for Python
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk