Partager via


Ajouter une ressource de fonction définie par l’utilisateur à une application Databricks

Ajoutez des fonctions définies par l’utilisateur inscrites dans Unity Catalog en tant que ressources Databricks Apps pour permettre à votre application d’exécuter des fonctions SQL et Python inscrites. Les UDFs (fonctions définies par l’utilisateur) offrent une logique métier réutilisable, des transformations de données et des opérations personnalisées qui peuvent être partagées au sein de votre organisation sous une gouvernance centralisée.

Exigences relatives aux privilèges

Pour exécuter une fonction UDF, le principal de service de l’application doit avoir le USE CATALOG privilège sur le catalogue parent, le USE SCHEMA privilège sur le schéma parent et le EXECUTE privilège sur la fonction. Lorsque vous ajoutez la ressource UDF, Azure Databricks accorde automatiquement ces privilèges au principal de service de l’application.

Pour que cet octroi automatique réussisse, l’un des éléments suivants doit être vrai pour chaque privilège :

  • Pour USE CATALOG: tous les utilisateurs de compte ont le USE CATALOG privilège sur le catalogue ou vous disposez du MANAGE privilège sur le catalogue.
  • Pour USE SCHEMA: tous les utilisateurs de compte ont le USE SCHEMA privilège sur le schéma ou vous disposez du MANAGE privilège sur le schéma.
  • Pour EXECUTE: tous les utilisateurs de compte ont le EXECUTE privilège sur la fonction ou vous disposez du MANAGE privilège sur la fonction.

Consultez Privilèges Unity Catalog et objets sécurisables.

Ajouter une ressource de fonction définie par l’utilisateur (UDF)

Avant d’ajouter une fonction UDF en tant que ressource, passez en revue les prérequis des ressources d’application.

  1. Lorsque vous créez ou modifiez une application, accédez à l’étape Configurer .
  2. Dans la section Ressources de l’application , cliquez sur + Ajouter une ressource.
  3. Sélectionnez la fonction UC comme type de ressource.
  4. Choisissez une fonction UDF dans les fonctions disponibles dans votre espace de travail. La fonction doit déjà être inscrite dans le catalogue Unity.
  5. Sélectionnez le niveau d’autorisation de votre application :
    • Peut s’exécuter : Octroie à l’application l’autorisation d’exécuter la fonction UDF avec les paramètres fournis. Correspond au EXECUTE privilège.
  6. (Facultatif) Spécifiez une clé de ressource personnalisée, c’est-à-dire la façon dont vous référencez la fonction UDF dans la configuration de votre application. La clé par défaut est function.

Variables d’environnement

Lorsque vous déployez une application avec une ressource UDF, Azure Databricks expose le nom complet de trois niveaux par le biais de variables d’environnement que vous pouvez référencer à l’aide du valueFrom champ.

Exemple de configuration :

env:
  - name: UC_FUNCTION_NAME
    valueFrom: function # Use your custom resource key if different

Utilisation de la fonction dans votre application :

import os
from databricks.sdk import WorkspaceClient

# Access the function name
function_name = os.getenv("UC_FUNCTION_NAME")

# Initialize workspace client
w = WorkspaceClient()

# Execute the function via SQL
result = w.statement_execution.execute_statement(
    warehouse_id="your_warehouse_id",
    statement=f"SELECT {function_name}('parameter_value')"
)

# Process the result
print(f"Function result: {result}")

Pour plus d’informations, consultez Utiliser des variables d’environnement pour accéder aux ressources.

Supprimer une ressource de fonction définie par l’utilisateur (UDF)

Lorsque vous supprimez une ressource UDF d’une application, le principal de service de l’application perd l’accès à la fonction. La fonction UDF elle-même reste inchangée et continue d’être disponible pour d’autres utilisateurs et applications disposant d’autorisations appropriées.

Meilleures pratiques

Tenez compte des éléments suivants lorsque vous travaillez avec des ressources UDF :

  • Assurez-vous que les fonctions définies par l’utilisateur sont bien documentées avec des descriptions de paramètres claires et des types de retour.
  • Gérez correctement les erreurs UDF dans votre code d’application, notamment la validation des paramètres et la gestion des exceptions.
  • Testez le comportement UDF dans le contexte de l’application avant le déploiement pour vérifier les résultats attendus.
  • Prenez en compte les dépendances UDF sur les tables ou sources de données sous-jacentes lors de la planification des autorisations d’application.