Activité de fonction Azure dans Azure Data Factory

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 !

L’activité Azure Function vous permet d’exécuter Azure Functions dans un pipeline Azure Data Factory ou Azure Synapse Analytics. Pour exécuter une fonction Azure, vous devez créer une connexion de service lié. Ensuite, vous pouvez utiliser le service lié avec une activité qui spécifie la fonction Azure que vous prévoyez d’exécuter.

Créer une activité de fonction Azure avec l’interface utilisateur

Pour utiliser une activité de fonction Azure dans un pipeline, effectuez les étapes suivantes :

  1. Développez la section de fonction Azure du volet Activités de pipeline, puis faites glisser une activité de fonction Azure vers le canevas du pipeline.

  2. Sélectionnez la nouvelle activité de fonction Azure sur le canevas si elle ne l’est pas déjà, et son onglet Paramètres pour modifier ses détails.

    Illustre l’IU pour une activité de fonction Azure.

  3. Si vous n’avez pas encore défini de service lié de fonction Azure, sélectionnez Nouveau pour en créer un nouveau. Dans le volet du nouveau service lié Azure Function, choisissez votre URL d’application de fonction Azure existante et fournissez une clé de fonction.

    Illustre le nouveau volet de création de service lié de fonction Azure.

  4. Après avoir sélectionné le service lié Azure Function, indiquez le nom de la fonction et d’autres détails pour terminer la configuration.

Service lié de fonction Azure

Le type de retour de la fonction Azure doit être un JObject valide (n’oubliez pas que JArray est pas un JObject). Tout type de retour autre que JObject échoue et génère l’erreur utilisateur Le contenu de la réponse n’est pas un JObject valide.

La clé de fonction permet un accès sécurisé aux noms de fonctions, chacune d’entre elles disposant de clés uniques distinctes ou d’une clé principale au sein d’une application de fonction. L’identité managée fournit un accès sécurisé à l’ensemble de l’application de fonction. L’utilisateur doit fournir une clé pour accéder au nom de la fonction. Pour plus d’informations sur la clé d’accès aux fonctions, consultez la documentation sur les fonctions

Propriété Description Obligatoire
Type La propriété type doit être définie sur : AzureFunction Oui
URL de l’application de fonction URL de l’application de fonction Azure. Son format est https://<accountname>.azurewebsites.net. Cette URL correspond à la valeur indiquée dans la section URL quand vous affichez votre application de fonction dans le portail Azure. Oui
Clé de fonction Clé d’accès de la fonction Azure. Cliquez sur la section Gérer de la fonction correspondante, puis copiez la clé de fonction ou la clé d’hôte. En savoir plus ici : Utiliser des clés d’accès Oui
Authentification Méthode d’authentification utilisée pour appeler la fonction Azure. Les valeurs prises en charge sont « Identité managée affectée par le système » ou « anonyme ». Oui
ID de ressource ID d’application (client) de la fonction Azure. Basculez vers la section Authentification pour la fonction respective et obtenez l’ID d’application (client) sous Fournisseur d’identité. Cette propriété s’affiche lorsque vous utilisez une identité managée affectée par le système. Pour plus d’informations, consultez Configurer votre application App Service ou Azure Functions de façon à utiliser une connexion Microsoft Entra. Non

Notes

Lorsque vous utilisez l’authentification anonyme, vérifiez que vous avez retiré votre identité côté Fonction Azure.

Activité de fonction Azure

Propriété Description Valeurs autorisées Obligatoire
Nom Nom de l’activité dans le pipeline String Oui
Type Le type d’activité est « AzureFunctionActivity ». String Oui
Service lié Service lié de fonction Azure de l’application de fonction Azure correspondante référence de service lié Oui
Nom de la fonction Nom de la fonction dans l’application de fonction Azure que cette activité appelle. String Oui
Méthode Méthode API REST de l’appel de fonction. Types de chaîne pris en charge : « GET », « POST », « PUT » Oui
En-tête En-têtes envoyés à la demande. Par exemple, pour définir la langue et le type sur une demande : "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } Chaîne (ou expression avec resultType de chaîne) Non
body Corps envoyé avec la demande à la méthode d’api de la fonction Chaîne (ou expression avec resultType de chaîne) ou objet. Obligatoire pour les méthodes PUT/POST

Voir le schéma de la charge utile de demande dans la section Schéma de la charge utile.

Routage et requêtes

L’activité de fonction Azure prend en charge le routage. Par exemple, si votre fonction Azure a un point de terminaison https://functionAPP.azurewebsites.net/api/<functionName>/<value>?code=<secret>, le functionName à utiliser dans l’activité de fonction Azure est <functionName>/<value>. Vous pouvez paramétrer cette fonction pour fournir le functionName souhaité lors de l’exécution.

Notes

Le functionName pour Durable Functions doit être extrait de la propriété d’itinéraire de la liaison de fonction dans sa définition JSON, afin d’inclure ses informations d’itinéraire. L’utilisation simple de functionName sans le détail de l’itinéraire inclus entraîne un échec, car l’application de fonction est introuvable.

L’activité de fonction Azure prend également en charge les requêtes. Une requête doit être incluse dans le cadre de functionName. Par exemple, lorsque le nom de la fonction est HttpTriggerCSharp et que la requête que vous souhaitez inclure est name=hello, vous pouvez construire la functionName dans l’activité de fonction Azure en tant que HttpTriggerCSharp?name=hello. Cette fonction peut être paramétrée afin que la valeur soit déterminée au moment de l’exécution.

Délai d’expiration et fonctions de longue durée

Azure Functions expire après 230 secondes, quel que soit le paramètre functionTimeout que vous ayez configuré dans les paramètres. Pour plus d’informations, consultez cet article. Pour contourner ce comportement, appliquez un modèle asynchrone ou utilisez Durable Functions. L’avantage de Durable Functions que cette option utilise son propre mécanisme de suivi de l’état, donc vous n’aurez pas à implémenter votre propre suivi de l’état.

Plus d’informations sur Durable Functions dans cet article. Vous pouvez configurer une activité de fonction Azure pour appeler la fonction Durable Functions, qui renvoie une réponse avec un autre URI, comme dans cet exemple. Étant donné que statusQueryGetUri retourne l’état HTTP 202 pendant que la fonction est en cours d’exécution, vous pouvez interroger l’état de la fonction avec une activité web. Définissez une activité web avec la valeur @activity('<AzureFunctionActivityName>').output.statusQueryGetUri dans le champ url. Lorsque la fonction Durable Functions est terminée, la sortie de la fonction sera la sortie de l’activité web.

Exemple

Un exemple où Azure Function est utilisé pour extraire le contenu d’un fichier tar est disponible ici.

Pour en savoir plus sur les activités prises en charge, consultez la page Pipelines et activités.