Copier des données à partir de SharePoint Online List à l’aide d’Azure Data Factory ou d’Azure Synapse Analytics
S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics
Conseil
Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !
Cet article décrit comment utiliser l’activité de copie dans des pipelines Azure Data Factory et Azure Synapse pour copier des données à partir de SharePoint Online List. Il s’appuie sur l’article Activité de copie, qui présente une vue d’ensemble de cette activité.
Fonctionnalités prises en charge
Ce connecteur SharePoint Online List est pris en charge pour les fonctionnalités suivantes :
Fonctionnalités prises en charge | IR |
---|---|
Activité de copie (source/-) | ① ② |
Activité de recherche | ① ② |
① Runtime d’intégration Azure ② Runtime d’intégration auto-hébergé
Pour obtenir la liste des magasins de données pris en charge en tant que sources ou récepteurs, consultez la table Magasins de données pris en charge.
Plus précisément, ce connecteur SharePoint List Online utilise l’authentification du principal du service et récupère les données suivant le protocole OData.
Conseil
Ce connecteur prend en charge la copie de données à partir d’une liste SharePoint Online List, et non de fichiers. Découvrez comment copier un fichier dans la section Copier un fichier à partir de SharePoint Online.
Démarrage
Pour effectuer l’activité Copie avec un pipeline, vous pouvez vous servir de l’un des outils ou kits SDK suivants :
- L’outil Copier des données
- Le portail Azure
- Le kit SDK .NET
- Le kit SDK Python
- Azure PowerShell
- L’API REST
- Le modèle Azure Resource Manager
Créer un service lié à une liste SharePoint Online à l'aide de l'interface utilisateur
Suivez les étapes suivantes pour créer un service lié à une liste SharePoint Online dans l'interface utilisateur du portail Azure.
Accédez à l’onglet Gérer dans votre espace de travail Azure Data Factory ou Synapse et sélectionnez Services liés, puis cliquez sur Nouveau :
Recherchez SharePoint et sélectionnez le connecteur SharePoint Online List.
Configurez les informations du service, testez la connexion et créez le nouveau service lié.
Informations de configuration des connecteurs
Les sections suivantes fournissent des informations sur les propriétés permettant de définir les entités propres au connecteur SharePoint Online List.
Propriétés du service lié
Les propriétés prises en charge pour un service lié SharePoint Online List sont les suivantes :
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type doit être définie sur : SharePointOnlineList. | Oui |
siteUrl | URL du site SharePoint Online, par exemple https://contoso.sharepoint.com/sites/siteName . |
Oui |
servicePrincipalId | L’ID d’application (client) de l’application inscrite dans Microsoft Entra ID. | Oui |
servicePrincipalCredentialType | Spécifiez le type d’informations d’identification à utiliser pour l’authentification de principal du service. Les valeurs autorisées sont ServicePrincipalCert et ServicePrincipalKey . |
Non |
Pour ServicePrincipalCert | ||
servicePrincipalEmbeddedCert | Spécifiez le certificat codé en base64 de votre application inscrite dans Microsoft Entra ID, et vérifiez que le type de contenu du certificat est PKCS #12. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité, ou référencez un secret stocké dans Azure Key Vault. Vous devez configurer les paramètres d’autorisation faisant référence à cet article. | Non |
servicePrincipalEmbeddedCertPassword | Spécifiez le mot de passe de votre certificat si votre certificat est sécurisé par un mot de passe. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité, ou référencez un secret stocké dans Azure Key Vault. | Non |
Pour ServicePrincipalKey | ||
servicePrincipalKey | La clé de l’application. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité, ou référencez un secret stocké dans Azure Key Vault. Pour plus d’informations, y compris sur les paramètres d’autorisation, consultez cette section. | Non |
tenantId | ID du locataire sous lequel réside l’application. | Oui |
connectVia | Runtime d’intégration à utiliser pour la connexion au magasin de données. À défaut de spécification, l’Azure Integration Runtime par défaut est utilisé. | Non |
Remarque
Si vous utilisez l’authentification de la clé du principal de service, basée sur Azure ACS (Access Control Services), nous vous recommandons de basculer vers l’authentification par certificat du principal de service en raison du plan de mise hors service d’ACS.
Exemple 1 : utilisation de l’authentification de la clé du principal de service
{
"name": "SharePointOnlineList",
"properties": {
"type": "SharePointOnlineList",
"typeProperties": {
"siteUrl": "<site URL>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalKey",
"servicePrincipalKey": {
"type": "SecureString",
"value": "<service principal key>"
},
"tenantId": "<tenant ID>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemple 2 : utilisation de l’authentification par certificat du principal du service
{
"name": "SharePointOnlineList",
"properties": {
"type": "SharePointOnlineList",
"typeProperties": {
"siteUrl": "<site URL>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalCert",
"servicePrincipalEmbeddedCert": {
"type": "SecureString",
"value": "<base64 encoded string of (.pfx) certificate data>"
},
"servicePrincipalEmbeddedCertPassword": {
"type": "SecureString",
"value": "<password of your certificate>"
},
"tenantId": "<tenant ID>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Accorder l’autorisation d’utilisation de la clé de principal de service
Le connecteur SharePoint List Online utilise l’authentification du principal du service pour se connecter à SharePoint. Suivez la procédure ci-dessous pour le configurer :
Inscrire une application à l’aide de la plateforme d’identités Microsoft. Pour savoir comment, regardez Démarrage rapide : Inscrire une application à l’aide de la plateforme d’identités Microsoft. Prenez note des valeurs suivantes qui vous permettent de définir le service lié :
- ID de l'application
- Clé de l'application
- ID client
Accordez l’autorisation de site SharePoint Online à votre application inscrite en suivant les étapes ci-dessous. Pour ce faire, vous avez besoin d’un rôle d’administrateur de site.
Ouvrez le lien de votre site SharePoint Online. Par exemple, l’URL au format
https://<your-site-url>/_layouts/15/appinv.aspx
où l’espace réservé<your-site-url>
est votre site.Recherchez l’ID d’application que vous avez enregistré, renseignez les champs vides, puis cliquez sur « Créer ».
Domaine d'application :
contoso.com
URL de redirection :
https://www.contoso.com
XML de la demande d’autorisation :
<AppPermissionRequests AllowAppOnlyPolicy="true"> <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Read"/> </AppPermissionRequests>
Remarque
Dans le contexte de la configuration du connecteur SharePoint, « Domaine d’application » et « URL de redirection » font référence à l’application SharePoint que vous avez inscrite dans Microsoft Entra ID pour autoriser l’accès à vos données SharePoint. Le « domaine d’application » est le domaine où votre site SharePoint est hébergé. Par exemple, si votre site SharePoint se trouve sur « https://contoso.sharepoint.com" », le « domaine d’application » est « contoso.sharepoint.com ». L’« URL de redirection » est l’URL vers laquelle l’application SharePoint redirige l’utilisateur une fois qu’il s’est authentifié et a accordé des autorisations à l’application. Cette URL doit être une page de votre site SharePoint à laquelle l’application est autorisée à accéder. Par exemple, vous pouvez utiliser l’URL d’une page qui affiche une liste de fichiers dans une bibliothèque ou qui affiche le contenu d’un document.
Cliquez sur « Faire confiance à cette application ».
Propriétés du jeu de données
Pour obtenir la liste complète des sections et propriétés disponibles pour la définition de jeux de données, consultez Jeux de données et services liés. Cette section fournit la liste des propriétés prises en charge par le jeu de données de la table SAP.
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type du jeu de données doit être définie sur SharePointOnlineLResource. | Oui |
listName | Nom de la liste SharePoint Online List. Notez que l’apostrophe (') n’est pas autorisée dans les noms de fichiers. | Oui |
Exemple
{
"name": "SharePointOnlineListDataset",
"properties":
{
"type": "SharePointOnlineListResource",
"linkedServiceName": {
"referenceName": "<SharePoint Online List linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties":
{
"listName": "<name of the list>"
}
}
}
Propriétés de l’activité de copie
Pour obtenir la liste complète des sections et des propriétés permettant de définir des activités, consultez Pipelines. La section suivante donne la liste des propriétés prises en charge par la source SharePoint Online List.
Source SharePoint Online List
Pour copier des données à partir de SharePoint Online List, les propriétés prises en charge dans la section source de l’activité de copie sont les suivantes :
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type de la source de l’activité de copie doit être définie sur SharePointOnlineListSource. | Oui |
query | Options de requête OData personnalisées pour filtrer les données. Exemple : "$top=10&$select=Title,Number" . |
Non |
httpRequestTimeout | Délai d’expiration (en secondes) pour que la requête HTTP reçoive une réponse. Valeur par défaut : 300 (5 minutes). | Non |
Exemple
"activities":[
{
"name": "CopyFromSharePointOnlineList",
"type": "Copy",
"inputs": [
{
"referenceName": "<SharePoint Online List input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "SharePointOnlineListSource",
"query": "<OData query e.g. $top=10&$select=Title,Number>"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Notes
Il n’est pas possible de sélectionner plus d’un type de données choix pour une source SharePoint Online List.
Mappage de type de données pour SharePoint Online List
Lors de la copie de données à partir de SharePoint Online List, les mappages suivants sont utilisés entre les types de données SharePoint Online List et les types de données intermédiaires utilisés en interne par le service.
Type de données SharePoint Online | Type de données OData | Type de données intermédiaire |
---|---|---|
Ligne de texte unique | Edm.String | String |
Plusieurs lignes de texte | Edm.String | String |
Choix (menu de sélection) | Edm.String | String |
Nombre (1, 1.0, 100) | Edm.Double | Double |
Devise ($, ¥, €) | Edm.Double | Double |
Date et heure | Edm.DateTime | DateTime |
Recherche (informations déjà présentes sur ce site) | Edm.Int32 | Int32 |
Oui/Non (case à cocher) | Edm.Boolean | Boolean |
Personne ou groupe | Edm.Int32 | Int32 |
Lien hypertexte ou image | Edm.String | String |
Calculé (à partir d’autres colonnes) | Edm.String / Edm.Double / Edm.DateTime / Edm.Boolean | Chaîne / Double / DateHeure / Booléen |
Pièce jointe | Non pris en charge | |
Sortie de la tâche | Non pris en charge | |
Données externes | Non pris en charge | |
Métadonnées gérées | Non pris en charge |
Copie d’un fichier à partir de SharePoint Online
Pour copier un fichier à partir de SharePoint Online, vous pouvez utiliser l’activité web afin d’authentifier et de récupérer un jeton d’accès auprès de SPO, puis le transmettre à l’activité de copie suivante afin de copier des données avec le connecteur HTTP comme source.
Suivez la section Accorder l’autorisation d’utilisation de la clé de principal de service pour créer une application Microsoft Entra et accorder l’autorisation à SharePoint Online.
Créez une activité web pour récupérer le jeton d’accès auprès de SharePoint Online :
- URL :
https://accounts.accesscontrol.windows.net/[Tenant-ID]/tokens/OAuth/2
. Remplacez l’ID de locataire. - Méthode : POST
- Headers :
- Content-Type : application/x-www-form-urlencoded
- Corps :
grant_type=client_credentials&client_id=[Client-ID]@[Tenant-ID]&client_secret=[Client-Secret]&resource=00000003-0000-0ff1-ce00-000000000000/[Tenant-Name].sharepoint.com@[Tenant-ID]
. Remplacez l’ID client (ID d’application), la clé secrète client (clé d’application), l’ID locataire et le nom du locataire (du locataire SharePoint).
Attention
Définissez l’option Sortie sécurisée sur « True » dans l’activité web pour empêcher la journalisation en texte brut de la valeur du jeton. Pour toutes les autres activités qui consomment cette valeur, l’option d’entrée sécurisée doit être définie sur « True ».
- URL :
Chaînez avec une activité de copie en utilisant comme source le connecteur HTTP pour copier le contenu du fichier SharePoint Online :
- Service lié HTTP :
- URL de base :
https://[site-url]/_api/web/GetFileByServerRelativeUrl('[relative-path-to-file]')/$value
. Remplacez l’URL du site et le chemin relatif du fichier. Veillez à inclure l’URL du site SharePoint ainsi que le nom de domaine, par exemplehttps://[sharepoint-domain-name].sharepoint.com/sites/[sharepoint-site]/_api/web/GetFileByServerRelativeUrl('/sites/[sharepoint-site]/[relative-path-to-file]')/$value
. - Type d’authentification : Anonymes (pour utiliser le jeton du porteur configuré dans la source de l’activité de copie ultérieurement)
- URL de base :
- Jeu de données : choisissez le format souhaité. Pour copier le fichier tel quel, sélectionnez le type « Binaire ».
- Source de l’activité de copie :
- Méthode de demande : GET
- En-tête supplémentaires : utilisez l’expression
@{concat('Authorization: Bearer ', activity('<Web-activity-name>').output.access_token)}
, qui se sert du jeton du porteur généré par l’activité web en amont comme en-tête d’autorisation. Remplacez le nom de l’activité web.
- Configurez le récepteur de l’activité Copy pour toute destination de récepteur prise en charge.
- Service lié HTTP :
Remarque
Même si une application Microsoft Entra dispose des autorisations FullControl
sur SharePoint Online, vous ne pouvez pas copier les fichiers des bibliothèques de documents avec IRM activé.
Propriétés de l’activité Lookup
Pour en savoir plus sur les propriétés, consultez Activité Lookup.
Contenu connexe
Pour obtenir la liste des magasins de données pris en charge en tant que sources et récepteurs pour l’activité de copie, consultez Magasins de données et formats pris en charge.