Freigeben über


Hinzufügen einer benutzerdefinierten Funktion (UDF)-Ressource zu einer Databricks-App

Fügen Sie benutzerdefinierte Funktionen (USER-Defined Functions, UDFs) hinzu, die im Unity-Katalog als Databricks-Apps-Ressourcen registriert sind, damit Ihre App registrierte SQL- und Python-Funktionen ausführen kann. UDFs bieten wiederverwendbare Geschäftslogik, Datentransformationen und benutzerdefinierte Vorgänge, die in Ihrer Organisation mit zentraler Governance geteilt werden können.

Berechtigungsanforderungen

Zum Ausführen einer UDF muss der Dienstprinzipal der App über die USE CATALOG Berechtigung für den übergeordneten Katalog, die USE SCHEMA Berechtigung für das übergeordnete Schema und die EXECUTE Berechtigung für die Funktion verfügen. Wenn Sie die UDF-Ressource hinzufügen, gewährt Azure Databricks automatisch diese Berechtigungen dem Dienstprinzipal der App.

Damit diese automatische Gewährung erfolgreich ausgeführt werden kann, muss für jede Berechtigung eine der folgenden Bedingungen erfüllt sein:

  • Entweder haben alle Kontobenutzer das USE CATALOG-Privileg im Katalog, oder Sie haben das -Privileg im Katalog.
  • Für USE SCHEMA: Entweder haben alle Kontobenutzer das USE SCHEMA-Privileg für das Schema, oder Sie haben das MANAGE-Privileg für das Schema.
  • Für EXECUTE : Entweder haben alle Kontenbenutzer das EXECUTE Privileg für die Funktion, oder Sie haben das MANAGE Privileg für die Funktion.

Weitere Informationen finden Sie unter Unity Catalog-Berechtigungen und sicherungsfähige Objekte.

Hinzufügen einer benutzerdefinierten Funktion (UDF)-Ressource

Bevor Sie eine UDF als Ressource hinzufügen, überprüfen Sie die Voraussetzungen für die App-Ressource.

  1. Wenn Sie eine App erstellen oder bearbeiten, navigieren Sie zum Schritt "Konfigurieren" .
  2. Klicken Sie im Abschnitt "App-Ressourcen " auf +Ressource hinzufügen.
  3. Wählen Sie UC-Funktion als Ressourcentyp aus.
  4. Wählen Sie eine UDF aus den verfügbaren Funktionen in Ihrem Arbeitsbereich aus. Die Funktion muss bereits im Unity-Katalog registriert sein.
  5. Wählen Sie die Berechtigungsstufe für Ihre App aus:
    • Kann ausgeführt werden: Erteilt der App die Berechtigung zum Ausführen der UDF mit den bereitgestellten Parametern. Entspricht der EXECUTE Berechtigung.
  6. (Optional) Geben Sie einen benutzerdefinierten Ressourcenschlüssel an, mit dem Sie in Ihrer App-Konfiguration auf die UDF verweisen. Der Standardwert ist function.

Umgebungsvariablen

Wenn Sie eine App mit einer UDF-Ressource bereitstellen, macht Azure Databricks den vollständigen Namen auf drei Ebenen über Umgebungsvariablen verfügbar, auf die Sie mithilfe des valueFrom Felds verweisen können.

Beispielkonfiguration:

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

Verwenden der Funktion in Ihrer Anwendung:

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}")

Weitere Informationen finden Sie unter Verwenden von Umgebungsvariablen für den Zugriff auf Ressourcen.

Entfernen einer benutzerdefinierten Funktion (UDF)-Ressource

Wenn Sie eine UDF-Ressource aus einer App entfernen, verliert der Dienstprinzipal der App den Zugriff auf die Funktion. Die UDF selbst bleibt unverändert und ist weiterhin für andere Benutzer und Anwendungen verfügbar, die über entsprechende Berechtigungen verfügen.

Bewährte Methoden

Berücksichtigen Sie folgendes, wenn Sie mit UDF-Ressourcen arbeiten:

  • Stellen Sie sicher, dass UDFs mit klaren Parameterbeschreibungen und Rückgabetypen gut dokumentiert sind.
  • Behandeln Sie UDF-Fehler ordnungsgemäß im App-Code, einschließlich Parameterüberprüfung und Ausnahmebehandlung.
  • Testen Sie das UDF-Verhalten im App-Kontext vor der Bereitstellung, um die erwarteten Ergebnisse zu überprüfen.
  • Berücksichtigen Sie UDF-Abhängigkeiten von zugrunde liegenden Tabellen oder Datenquellen beim Planen von App-Berechtigungen.