Delen via


Een door de gebruiker gedefinieerde functieresource (UDF) toevoegen aan een Databricks-app

Voeg door de gebruiker gedefinieerde functies (UDF's) toe die zijn geregistreerd in Unity Catalog als Databricks Apps-resources om uw app in staat te stellen geregistreerde SQL- en Python-functies uit te voeren. UDF's bieden herbruikbare bedrijfslogica, gegevenstransformaties en aangepaste bewerkingen die in uw organisatie kunnen worden gedeeld met gecentraliseerd beheer.

Vereisten voor bevoegdheden

Als u een UDF wilt uitvoeren, moet de service-principal van de app de USE CATALOG bevoegdheid hebben voor de bovenliggende catalogus, de USE SCHEMA bevoegdheid voor het bovenliggende schema en de EXECUTE bevoegdheid voor de functie. Wanneer u de UDF-resource toevoegt, verleent Azure Databricks deze bevoegdheden automatisch aan de service-principal van de app.

Voor deze automatische toekenning om te slagen, moet een van de volgende voorwaarden gelden voor elke bevoegdheid:

  • Voor USE CATALOG: alle accountgebruikers hebben de USE CATALOG bevoegdheid voor de catalogus of u hebt de MANAGE bevoegdheid voor de catalogus.
  • Voor USE SCHEMA: alle accountgebruikers hebben de USE SCHEMA bevoegdheid voor het schema of u hebt de MANAGE bevoegdheid voor het schema.
  • Voor EXECUTE: alle accountgebruikers hebben de EXECUTE bevoegdheid voor de functie of u hebt de MANAGE bevoegdheid voor de functie.

Zie Unity Catalog-bevoegdheden en beveiligbare objecten.

Een door de gebruiker gedefinieerde functieresource (UDF) toevoegen

Voordat u een UDF als resource toevoegt, controleert u de vereisten voor de app-resource.

  1. Wanneer u een app maakt of bewerkt, gaat u naar de stap Configureren .
  2. Klik in de sectie App-resources op + Resource toevoegen.
  3. Selecteer de functie UC als het resourcetype.
  4. Kies een UDF uit de beschikbare functies in uw werkruimte. De functie moet al zijn geregistreerd in Unity Catalog.
  5. Selecteer het machtigingsniveau voor uw app:
    • Kan het volgende uitvoeren: Verleent de app toestemming om de UDF uit te voeren met de opgegeven parameters. Komt overeen met de EXECUTE bevoegdheid.
  6. (Optioneel) Geef een aangepaste resourcesleutel op, zoals u verwijst naar de UDF in uw app-configuratie. De standaardsleutel is function.

Omgevingsvariabelen

Wanneer u een app met een UDF-resource implementeert, maakt Azure Databricks de volledige naam van drie niveaus beschikbaar via omgevingsvariabelen waarnaar u kunt verwijzen met behulp van het valueFrom veld.

Voorbeeldconfiguratie:

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

De functie in uw toepassing gebruiken:

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

Zie Omgevingsvariabelen gebruiken voor toegang tot resources voor meer informatie.

Een door de gebruiker gedefinieerde functieresource (UDF) verwijderen

Wanneer u een UDF-resource uit een app verwijdert, verliest de service-principal van de app de toegang tot de functie. De UDF zelf blijft ongewijzigd en blijft beschikbaar voor andere gebruikers en toepassingen met de juiste machtigingen.

Beste praktijken

Houd rekening met het volgende wanneer u met UDF-resources werkt:

  • Zorg ervoor dat UDF's goed zijn gedocumenteerd met duidelijke parameterbeschrijvingen en retourtypen.
  • UDF-fouten correct verwerken in uw app-code, inclusief parametervalidatie en afhandeling van uitzonderingen.
  • Test UDF-gedrag in de app-omgeving voordat implementatie om de verwachte resultaten te verifiëren.
  • Overweeg UDF-afhankelijkheden van onderliggende tabellen of gegevensbronnen bij het plannen van app-machtigingen.