Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pour appeler les éléments de fonction de données utilisateur Fabric (aperçu) à partir d'une application console en Python, vous pouvez envoyer des requêtes HTTP au point de terminaison de fonction qui doit être exécuté. Dans ce guide de démarrage rapide, vous apprendrez à configurer une application Python à l’aide de Visual Studio Code.
Conditions préalables
- Installez Visual Studio Code.
- Téléchargez Python 3.1 sur votre machine locale.
- Créez un compte Microsoft Fabric gratuitement si vous n'en avez pas.
- Créer un espace de travail.
- Créez un élément de fonctions de données utilisateur et publiez-le. Consultez ces articles pour savoir comment en créer un dans VS Code ou comment en créer un dans le portail. Publiez les modifications afin que l’élément de fonctions de données utilisateur soit prêt à être appelé.
Créez une application console pour appeler la fonction
La fonction doit être accessible au public. Dans l'explorateur de fonctions, passez la souris sur le nom de la fonction et sélectionnez l'icône en forme de points de suspension (...) qui apparaît, puis sélectionnez Propriétés. Dans le volet Propriétés qui s’ouvre, activez Accès public. Vous devez également noter l’URL publique à utiliser dans votre application Python.
Créez un nouveau dossier pour votre application Python, par exemple my-data-app. Ouvrez le dossier dans VS Code.
Configurez l’environnement virtuel Python dans VS Code. Pour créer des environnements locaux dans VS Code, ouvrez la palette de commandes avec Ctrl+Maj+P, puis recherchez et sélectionnez la commande Python : Créer un environnement.
- La commande présente une liste de types d’environnement et sélectionne Venv.
- Sélectionnez la version Python de l'interpréteur Python 3.11.
Exécutez la commande suivante pour activer l’environnement virtuel dans le terminal VS Code.
venv\Scripts\activate.bat
Ensuite, exécutez la commande pour installer les bibliothèques Python nécessaires à cet exemple.
pip install azure-identity, requests
Créez un fichier
app.py
et utilisez le code pour appeler l’élément de fonctions de données utilisateur.from azure.identity import InteractiveBrowserCredential import requests import json # Acquire a token # DO NOT USE IN PRODUCTION. # Below code to acquire token is to test the GraphQL endpoint and is for the purpose of development only. # For production, always register an application in a Microsoft Entra ID tenant and use the appropriate client_id and scopes. # https://learn.microsoft.com/fabric/data-engineering/connect-apps-api-graphql#create-a-microsoft-entra-app app = InteractiveBrowserCredential() scp = 'https://analysis.windows.net/powerbi/api/user_impersonation' result = app.get_token(scp) if not result.token: print('Error:', "Could not get access token") # Prepare headers headers = { 'Authorization': f'Bearer {result.token}', 'Content-Type': 'application/json' } FUNCTION_URL = '<REPLACE WITH USER DATA FUNCTION URL>' # Prepare the request data data = '{"name": "John"}' # JSON payload to send to the Azure Function headers = { # "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } try: # Call the user data function public URL response = requests.post(FUNCTION_URL, json=data, headers=headers) response.raise_for_status() print(json.dumps(response.json())) except Exception as e: print({"error": str(e)}, 500) if __name__ == "__main__": app.run(debug=True)
Remarque
L'exemple est uniquement à des fins de développement. Mettez à jour l’application pour utiliser l’authentification Microsoft Entra ID avant d’utiliser l’application pour un cas d’utilisation de production.
Appel d'une fonction à partir d'une application externe
Les fonctions peuvent être invoquées en émettant un appel REST vers l'URL du point de terminaison. Sélectionnez la fonction que vous souhaitez appeler dans l'Explorateur de fonctions et sélectionnez Copier l'URL de la fonction. Vous pouvez également activer ou désactiver la possibilité d’utiliser cette URL en externe à partir du menu Propriétés.
Ensuite, utilisez cette URL dans votre application pour appeler la fonction. Consultez Appeler les fonctions de données utilisateur à partir d'une application
Schéma de sortie
Lors de l'appel d'une fonction de données utilisateur à partir d'une application externe, le schéma de sortie aura le format suivant :
{
"functionName": "hello_fabric",
"invocationId": "1234567890",
"status": "Succeeded | BadRequest | Failed | Timeout | ResponseTooLarge",
"output": /*shows the result of the function dependeing on the output type*/,
"errors": [
{
"name": "Error name",
"message": "Error message",
"properties": {
/*Key value pairs custom to error*/
}
},
]
}
Les propriétés suivantes sont renvoyées :
- functionName : Le nom de la fonction qui a été exécutée.
- invocationId : L'ID d'appel pour l'exécution d'une fonction.
-
status : Le résultat de l'exécution de la fonction. Cela peut avoir l'une des valeurs suivantes :
Succeeded
,BadRequest
,Failed
,Timeout
etResponseTooLarge
. - sortie : La valeur de sortie renvoyée par la fonction.
- erreurs : Si des erreurs ont été capturées, cela renverra une liste de chaque erreur avec leur nom, leur message d'erreur et leurs propriétés d'erreur.
Codes de réponse
La fonction renverra les codes HTTP suivants à la suite de l'exécution.
Code de réponse | Description |
---|---|
200 OK (Succès) | La requête a été acceptée |
403 (Interdit) | La réponse était trop grande et l’invocation a échoué. |
408 (Expiration du délai d’attente de la requête) | La requête a échoué car l'exécution a pris plus de 200 secondes. |
409 (Conflit) | La requête a généré une exception lors de l'exécution. |
400 (Requête incorrecte) | La requête a échoué en raison de paramètres d'entrée non valides ou manquants. |
500 (Erreur interne du serveur) | La requête a échoué en raison d'une erreur interne. |
Débogage et test
Déboguez l'application dans VS Code à l'aide du débogueur Python. Ajoutez des points d'arrêt si nécessaire pour déboguer d'éventuels problèmes. En savoir plus