Aller au contenu principal

Ajouter une Ressource de fonction définie par l’utilisateur (UDF) à une application Databricks.

Ajoutez des fonctions définies par l’utilisateur (UDF) enregistrées dans Unity Catalog en tant que Ressources Databricks Apps pour permettre à votre application d’exécuter des fonctions SQL et Python enregistrées. Les fonctions définies par l'utilisateur (UDF) 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 avec une gouvernance centralisée.

Exigences en matière de privilèges

Pour exécuter une UDF, le Service Principal de l'application doit disposer du privilège USE CATALOG sur le catalogue parent, du privilège USE SCHEMA sur le schéma parent et du privilège EXECUTE sur la fonction. Lorsque vous ajoutez la ressource UDF, Databricks accorde automatiquement ces privilèges au Service Principal de l'application.

Pour que cet octroi automatique réussisse, l'une des conditions suivantes doit être vraie pour chaque privilège :

  • Pour USE CATALOG: Soit tous les utilisateurs du compte disposent du privilège USE CATALOG sur le catalogue, soit vous disposez du privilège MANAGE sur le catalogue.
  • Pour USE SCHEMA: Soit tous les utilisateurs du compte disposent du privilège USE SCHEMA sur le schéma, soit vous disposez du privilège MANAGE sur le schéma.
  • Pour EXECUTE: Soit tous les utilisateurs du compte disposent du privilège EXECUTE sur la fonction, soit vous disposez du privilège MANAGE sur la fonction.

Consultez la référence des privilèges Unity Catalog.

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

Avant d'ajouter une UDF en tant que ressource, examinez les conditions préalables aux ressources d'application.

  1. Dans la section Ressources de l'application , lorsque vous créez ou modifiez une application, cliquez sur + Ajouter une ressource > Fonction UC .

  2. Choisissez une UDF parmi les fonctions disponibles dans votre Workspace. La fonction doit déjà être enregistrée dans Unity Catalog.

  3. Sélectionnez le niveau d'autorisation de votre application :

    • Peut exécuter : Accorde à l'application la permission d'exécuter l'UDF avec les parameters fournis. Correspond au privilège EXECUTE.
  4. (Facultatif) Spécifiez une clé de ressource personnalisée, c'est ainsi que vous référencez l'UDF dans la configuration de votre application. La clé default est function.

Variables d'environnement

Lorsque vous déployez une application avec une ressource UDF, Databricks expose le nom complet à trois niveaux via des variables d'environnement que vous pouvez référencer en utilisant le champ valueFrom.

Exemple de configuration :

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

Utilisation de la fonction dans votre application :

Python
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 les 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 Service Principal de l'application perd l'accès à la fonction. L'UDF elle-même reste inchangée et continue d'être disponible pour les autres utilisateurs et applications disposant des permissions appropriées.

Bonnes pratiques

Tenez compte des points suivants lorsque vous travaillez avec les ressources UDF :

  • Assurez-vous que les UDF sont bien documentées avec des descriptions de paramètres claires et des types de retour.
  • Gérez les erreurs d'UDF avec élégance dans le code de votre application, y compris la validation des paramètres et la gestion des exceptions.
  • Testez le comportement des UDF dans le contexte de l'application avant le déploiement pour vérifier les résultats attendus.
  • Tenez compte des dépendances des UDF vis-à-vis des tables ou sources de données sous-jacentes lors de la planification des autorisations d'application.