Biblioteca cliente de Uso compartido de Azure Purview para Python: versión 1.0.0b3
Microsoft Purview Share es un servicio en la nube totalmente administrado.
Confíe en gran medida en la documentación del servicio y en nuestros documentos de cliente de protocolo para usar esta biblioteca.
Código | fuentePaquete (PyPI) | Documentación del producto
Introducción
Instalar el paquete
Instale la biblioteca cliente de Uso compartido de Azure Purview para Python con pip:
pip install azure-purview-sharing
Requisitos previos
- Debe tener una suscripción de Azure y un recurso de Purview para usar este paquete.
- Se requiere Python 3.6 o posterior para usar este paquete.
Autenticar el cliente
Uso de Azure Active Directory
En este documento se muestra cómo usar DefaultAzureCredential para autenticarse a través de Azure Active Directory. Sin embargo, se aceptará cualquiera de las credenciales que ofrece el paquete azure-identity . Consulte la documentación de azure-identity para más información sobre otras credenciales.
Una vez que haya elegido y configurado la credencial, puede crear instancias de .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)
Conceptos clave
Proveedor de datos: Un proveedor de datos es la persona que crea un recurso compartido seleccionando un origen de datos, eligiendo los archivos y carpetas con los que compartir y con quién compartirlos. Después, Microsoft Purview envía una invitación a cada consumidor de datos.
Consumidor de datos: Un consumidor de datos es la persona que acepta la invitación especificando una cuenta de almacenamiento de destino en su propia suscripción de Azure que usará para acceder a los datos compartidos.
Ejemplos
Tabla de contenido:
Ejemplos del proveedor de datos
En los ejemplos de código siguientes se muestra cómo los proveedores de datos pueden usar el SDK de Python de Microsoft Azure para Purview Sharing para administrar su actividad de uso compartido.
Crear un cliente de recurso compartido enviado
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)
Crear un recurso compartido
Para empezar a compartir datos, el proveedor de datos primero debe crear un recurso compartido enviado que identifique los datos que desea compartir.
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)
Enviar invitación de recurso compartido a un usuario
Después de crear un recurso compartido enviado, el proveedor de datos puede extender invitaciones a los consumidores que puedan ver los datos compartidos. En este ejemplo, una invitación se extiende a un individuo especificando su dirección de correo electrónico.
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)
Enviar invitación de recurso compartido a un servicio
Los proveedores de datos también pueden extender invitaciones a servicios o aplicaciones especificando el identificador de inquilino y el identificador de objeto del servicio. El identificador de objeto utilizado para enviar una invitación a un servicio debe ser el identificador de objeto asociado a la aplicación empresarial (no al registro de la aplicación).
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)
Obtener recurso compartido enviado
Después de crear un recurso compartido enviado, los proveedores de datos pueden recuperarlo.
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)
Enumerar recursos compartidos enviados
Los proveedores de datos también pueden recuperar una lista de los recursos compartidos enviados que han creado.
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)
Eliminar recurso compartido enviado
El proveedor de datos puede eliminar un recurso compartido enviado para dejar de compartir sus datos con todos los consumidores de datos.
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)
Obtener invitación de recurso compartido enviado
Después de crear una invitación de recurso compartido enviada, los proveedores de datos pueden recuperarla.
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)
Enumerar invitaciones de recurso compartido enviadas
Los proveedores de datos también pueden recuperar una lista de las invitaciones de recurso compartido enviadas que han creado.
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)
Eliminar invitación de recurso compartido enviado
El proveedor de datos puede eliminar una invitación de recurso compartido enviado individual para dejar de compartir sus datos con el consumidor de datos específico al que se ha dirigido la invitación.
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)
Ejemplos de consumidor de datos
En los ejemplos de código siguientes se muestra cómo los consumidores de datos pueden usar el SDK de Python de Microsoft Azure para purview sharing para administrar su actividad de uso compartido.
Crear un cliente de recurso compartido recibido
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)
Enumerar recursos compartidos recibidos desasociados
Para empezar a ver los datos compartidos con ellos, un consumidor de datos primero debe recuperar una lista de recursos compartidos recibidos desasociados. Dentro de esta lista, pueden identificar un recurso compartido recibido desasociado que se va a adjuntar. Un recurso compartido recibido "desasociado" hace referencia a un recurso compartido recibido que nunca se ha adjuntado o que se ha desasociado.
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)
Adjuntar un recurso compartido recibido
Una vez que el consumidor de datos ha identificado un recurso compartido recibido, puede adjuntar el recurso compartido recibido a una ubicación donde pueda acceder a los datos compartidos. Si el recurso compartido recibido ya está asociado, los datos compartidos serán accesibles en la nueva ubicación especificada.
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)
Obtener recurso compartido recibido
Un consumidor de datos puede recuperar un recurso compartido recibido individual.
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)
Enumerar recursos compartidos recibidos adjuntos
Los consumidores de datos también pueden recuperar una lista de sus recursos compartidos recibidos adjuntos.
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)
Eliminar recurso compartido recibido
El consumidor de datos puede eliminar un recurso compartido recibido para finalizar su acceso a los datos compartidos.
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)
Ejemplos de recursos compartidos
En los ejemplos de código siguientes se muestra cómo usar el SDK de Python de Microsoft Azure para purview sharing para ver los recursos compartidos. Un recurso compartido es el recurso subyacente desde el que un proveedor comparte datos o el destino donde un consumidor adjunta los datos compartidos con ellos.
Enumerar recursos compartidos
Se puede recuperar una lista de recursos compartidos para ver todos los recursos de una cuenta en la que se han realizado actividades de uso compartido.
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)
Solución de problemas
General
El cliente del catálogo de Purview generará excepciones definidas en Azure Core si llama a .raise_for_status()
las respuestas.
Registro
Esta biblioteca usa la biblioteca de registro estándar para el registro. La información básica sobre las sesiones HTTP (direcciones URL, encabezados, etc.) se registra en el nivel INFO.
El registro detallado del nivel de depuración, incluidos los cuerpos de solicitud y respuesta, y los encabezados no redactados, se puede habilitar en un cliente con el argumento de palabra clave 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)
Del mismo modo, logging_enable
puede habilitar el registro detallado para una sola send_request
llamada, incluso cuando no está habilitado para el cliente:
result = client.types.get_all_type_definitions(logging_enable=True)
Pasos siguientes
Para obtener ejemplos más genéricos, consulte nuestros ejemplos.
Contribuciones
Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para más información, visite cla.microsoft.com.
Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.
Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.
Azure SDK for Python