Delen via


Databricks-apps ontwikkelen

Belangrijk

Databricks-apps is beschikbaar als openbare preview.

Notitie

Als u apps in uw Databricks-werkruimte wilt implementeren en uitvoeren, moet u ervoor zorgen dat uw firewall het domein *.databricksapps.comniet blokkeert.

Dit artikel bevat informatie over het maken van gegevens en AI-apps met Databricks-apps, waaronder het maken en bewerken van apps in de gebruikersinterface, het gebruik van Databricks-platformfuncties zoals SQL-magazijnen, geheimen en Databricks-taken, aanbevolen procedures voor het ontwikkelen van uw apps en belangrijke informatie voor het ontwikkelen van apps met behulp van ondersteunde frameworks.

Hoe kan ik een app maken in de gebruikersinterface van Databricks-apps?

  1. Klik in de zijbalk op Nieuw pictogramNieuw en selecteer App- in het menu.

  2. U kunt beginnen met een volledige, vooraf gebouwde voorbeeld-app of uw broncode en artefacten gebruiken.

    • Als u met een voorbeeld-app wilt beginnen, selecteert u sjabloon, klikt u op het tabblad voor het gewenste framework en selecteert u in de lijst met apps.
    • Om een app te maken met uw code, selecteert u Aangepast.

    De pagina weergeven om een nieuwe Databricks-app te maken

  3. Klik op Volgende.

  4. Voer in het veld App-naam een naam in voor de app en voer desgewenst een beschrijving in.

    Notitie

    • De naam die is toegewezen aan een Databricks-app kan niet worden gewijzigd nadat de app is gemaakt en elke gebruiker met toegang tot een Azure Databricks-werkruimte kan de namen en implementatiegeschiedenis van alle Databricks-apps in de werkruimte zien. Daarnaast wordt de naam van de app opgenomen in records die naar systeemtabellen zijn geschreven. Vanwege deze zichtbaarheid moet u geen gevoelige informatie opnemen bij het benoemen van uw Databricks-apps.
    • De naam moet uniek zijn in de Azure Databricks-werkruimte die als host fungeert voor de app en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten.

    De pagina weergeven om een Databricks-app een naam te geven

    Als u Aangepast hebt geselecteerd, klikt u op App maken. Als u Sjabloon hebt geselecteerd, configureert u de vereiste resources en klikt u op App maken en implementeren. Zie Databricks-platformfuncties toewijzen aan een Databricks-app.

    De pagina weergeven om een Databricks-app een naam te geven en resources toe te voegen

    De pagina met app-details wordt weergegeven nadat u op App maken ofApp maken hebt geklikt. Als u Sjabloon hebt geselecteerd, maakt Databricks-apps uw app en implementeert u vervolgens de app, inclusief de voorbeeldcode van de sjabloon en de vereiste configuratie voor de app. Op de detailpagina voor de app wordt het volgende weergegeven:

    • De status van het maken en implementeren van de app.
    • De stappen die u kunt gebruiken om de ontwikkeling van de app lokaal voort te zetten, inclusief het kopiëren van de app-artefacten naar uw lokale omgeving en het synchroniseren van lokale wijzigingen naar de Azure Databricks-werkruimte.

    De details voor een databricks-app met sjabloon weergeven

    Als u Aangepast hebt geselecteerd, maakt Databricks-apps uw app. Omdat u de code en artefacten voor uw app moet toevoegen, moet u de app als een afzonderlijke stap implementeren. Op de detailpagina voor de app wordt het volgende weergegeven:

    • De status van het maken van de app.
    • De stappen die u kunt gebruiken om de code en artefacten van de app vanuit uw lokale ontwikkelomgeving te synchroniseren met uw Azure Databricks-werkruimte en de app te implementeren.

    De details voor een databricks-app met sjabloon weergeven

    Zie Aan de slag met Databricks-appsvoor meer informatie over het instellen van een lokale ontwikkelomgeving, het maken of bijwerken van de code en configuratie voor uw app, en het synchroniseren en implementeren van de app in uw Azure Databricks-werkruimte.

  5. Als u Sjabloon hebt geselecteerd en uw app-artefacten vanuit de werkruimte wilt kopiëren naar uw lokale ontwikkelomgeving, kunt u de Databricks CLI gebruiken:

    databricks workspace export-dir <workspace-path> <target-path>
    

    Vervangen:

    • <workspace-path> met het pad naar de map met werkruimtebestanden die uw app-code en artefacten bevat.
    • <target-path> met een pad in uw lokale omgeving om de bestanden naar te kopiëren.

Databricks-platformfuncties toewijzen aan een Databricks-app

Notitie

Voor het gebruik van Databricks SQL hebben service-principals toegang nodig tot een SQL-warehouse en eventuele tabellen die worden geopend door query's.

Als u functies van het Databricks-platform wilt gebruiken, zoals Databricks SQL, Databricks Jobs, Mosaic AI Model Serving en Databricks-geheimen, voegt u deze functies als resources toe aan uw app. U kunt resources toevoegen wanneer u een app maakt of bewerkt.

  1. Klik in de kaart Nieuwe app maken of App- bewerken op Geavanceerde instellingen>+ Resourcetoevoegen en selecteer het resourcetype.

    Een SQL Warehouse toevoegen als een app-resource in de gebruikersinterface

  2. Afhankelijk van het resourcetype moet u de velden voltooien die nodig zijn om de resource te configureren, inclusief het veld Resourcesleutel . Deze sleutel wordt later gebruikt om te verwijzen naar de resource.

  3. Klik op Opslaan.

  4. Voeg een vermelding toe voor de resource in het app.yaml configuratiebestand met behulp van de SQL Warehouse-resourcesleutel. Omdat dit verwijst naar de bron van de parameterwaarde en niet naar de werkelijke waarde, gebruikt valueFrom u in plaats van value.

    env:
      - name: "DATABRICKS_WAREHOUSE_ID"
        valueFrom: "sql-warehouse"
    
  5. Als u naar de resource in uw app-code wilt verwijzen, gebruikt u de waarde van het name veld (DATABRICKS_WAREHOUSE_ID in dit voorbeeld) om te verwijzen naar de geconfigureerde sleutelwaarde.

    import os
    
    os.getenv('DATABRICKS_WAREHOUSE_ID')
    

Zie de sjabloonvoorbeelden wanneer u een app maakt en best practice: geheimen gebruiken om gevoelige informatie op te slaan voor een Databricks-app voor meer voorbeelden van het gebruik van resources met apps, waaronder SQL-warehouses en modelservereindpunten.

De details van een Databricks-app weergeven

De detailpagina voor een Databricks-app weergeven:

  1. Klik op rekenpictogramCompute in de zijbalk.
  2. Ga naar het tabblad Apps .
  3. Klik in de kolom Naam op de naam van de app.
  4. Het tabblad Overzicht wordt weergegeven met details voor de app, inclusief de status, de implementatielocatie en alle bijbehorende resources.
    • Ga naar het tabblad Implementaties om toegang te krijgen tot de implementatiegeschiedenis van de app.
    • Als u de logboeken voor de app wilt weergeven, gaat u naar het tabblad Logboeken .
    • Als u de runtime-omgeving voor de app wilt weergeven, inclusief omgevingsvariabelen en geïnstalleerde pakketten, gaat u naar het tabblad Omgeving .

Machtigingen configureren voor uw Databricks-app

Als u de machtigingen van de app wilt beheren, moet u de CAN MANAGE of IS OWNER machtiging hebben.

  1. Klik op de pagina met app-details op Machtigingen.
  2. Selecteer in machtigingsinstellingende Gebruiker, groep of service-principal selecteren... vervolgkeuzelijst en selecteer vervolgens een gebruiker, groep, service-principal of alle werkruimtegebruikers.
  3. Selecteer een machtiging uit de vervolgkeuzelijst machtigingen.
  4. Klik op Toevoegen en klik vervolgens op Opslaan.

Status behouden voor uw Databricks-app

Elke status die uw app in het geheugen onderhoudt, gaat verloren wanneer deze opnieuw wordt opgestart. Als voor uw app de status tussen opnieuw opstarten moet worden onderhouden, slaat u de status extern op. Uw app kan bijvoorbeeld Databricks SQL, werkruimtebestandenof Unity Catalog-volumes gebruiken om de status te bewaren.

Logboekregistratie vanuit uw Databricks-app

Notitie

Als u logboeken wilt weergeven in de gebruikersinterface van Databricks Apps of met de APP-URL, moet uw app zich aanmelden stdout bij en stderr.

Als u de standaarduitvoer en de standaardfout voor een app wilt weergeven, klikt u op de pagina met details voor de app op het tabblad Logboeken . Zie De details van een Databricks-app weergeven.

U kunt ook de standaarduitvoer en standaardfoutlogboeken bekijken via de <appurl>/logz koppeling. Als de URL voor uw app bijvoorbeeld is https://my-app-1234567890.my-instance.databricksapps.com, kunt u de logboeken bekijken op https://my-app-1234567890.my-instance.databricksapps.com/logz. Als u de URL van de app wilt vinden, gaat u naar de pagina met app-details.

Bibliotheekafhankelijkheden opgeven voor uw Databricks-app

Als voor uw app andere Python-bibliotheken zijn vereist dan de automatisch geïnstalleerde pakketten die met uw implementatie zijn geïnstalleerd, gebruikt u een requirements.txt bestand om deze bibliotheken te definiëren. Als een pakket in uw requirements.txt bestand een van de automatisch geïnstalleerde pakketten dupliceren, overschrijft de versie in uw requirements.txt bestand het automatisch geïnstalleerde pakket.

Zie Geïnstalleerde Python-bibliothekenvoor de lijst met pakketten en versies die zijn geïnstalleerd als onderdeel van uw app-implementatie.

Welke HTTP-headers worden doorgegeven aan Databricks-apps?

De volgende X-Forwarded-* headers worden doorgegeven vanuit de omgekeerde proxy van Databricks-apps naar apps:

Koptekst Beschrijving
X-Forwarded-Host De oorspronkelijke host of het oorspronkelijke domein dat door de client is aangevraagd.
X-Forwarded-Preferred-Username De gebruikersnaam die is opgegeven door IdP.
X-Forwarded-User De gebruikers-id die is opgegeven door IdP.
X-Forwarded-Email De e-mail van de gebruiker die door IdP wordt verstrekt.
X-Real-Ip Het IP-adres van de client die de oorspronkelijke aanvraag heeft ingediend.
X-Request-Id De UUID van de aanvraag.

Welke frameworks worden ondersteund door Databricks-apps?

U kunt de meeste Python-frameworks gebruiken om uw apps te ontwikkelen. Als u voorbeelden wilt zien van het gebruik van specifieke frameworks, waaronder Dash, Gradio en Streamlit, selecteert u een keuze uit de bibliotheek met sjabloon-apps bij het maken van een nieuwe app in de gebruikersinterface. Zie Hoe kan ik een app maken in de gebruikersinterface van Databricks Apps?

Zie Standaardomgevingsvariabelen voor Streamlitvoor Streamlit-specifieke variabelen die zijn ingesteld in de uitvoeringsomgeving van Databricks Apps.

Best practice: Geheimen gebruiken om gevoelige informatie op te slaan voor een Databricks-app

Databricks raadt het gebruik van geheimen aan om gevoelige informatie op te slaan, zoals verificatiereferenties. Zie Geheimen beheren voor meer informatie over het gebruik van geheimen.

Een geheim gebruiken met uw app:

  1. Configureer het geheim als een app-resource.

    Een geheim toevoegen als een app-resource in de gebruikersinterface

  2. Voeg een vermelding toe voor het geheim in het configuratiebestand van app.yaml de app.

    env:
      - name: "API_TOKEN"
        valueFrom: "api-token-value"
    
  3. Als u naar het geheim in uw app-code wilt verwijzen, gebruikt u de waarde van het name veld (API_TOKEN in dit voorbeeld) om te verwijzen naar de geconfigureerde sleutelwaarde.

token = os.getenv('API_TOKEN')

Best practice: Azure Databricks-functies gebruiken voor gegevensverwerking

Databricks Apps Compute is ontworpen voor de gebruikersinterface. Om ervoor te zorgen dat uw apps efficiënt ondersteuning kunnen bieden voor meerdere gebruikers, moet u Databricks-functies gebruiken om iets anders uit te voeren dan eenvoudige gegevensverwerking. Gebruik bijvoorbeeld Databricks SQL voor het verwerken van query's en het opslaan van gegevenssets, Databricks-taken voor gegevensverwerking of model voor het uitvoeren van query's op AI-modellen.

Best practice: Best practices voor veilig coderen volgen

Databricks raadt aan om veilige coderingsprocedures te volgen bij het ontwikkelen van uw apps, waaronder het parameteriseren van query's om SQL-injectieaanvallen te voorkomen. Zie de API voor het uitvoeren van de instructie.

Belangrijke richtlijnen voor het implementeren van Databricks-apps

  • Databricks-apps verzenden SIGKILL 15 seconden na een SIGTERMsignaal, zodat apps niet langer dan 15 seconden na ontvangst van het SIGTERM signaal moeten worden afgesloten. Als een app na 15 seconden niet is afgesloten, wordt er een SIGKILL signaal verzonden om het proces en alle onderliggende processen te beëindigen.
  • Omdat Databricks-apps worden uitgevoerd als een niet-bevoegde systeemgebruiker, kunnen ze geen bewerkingen uitvoeren die moeten worden uitgevoerd in een bevoegde beveiligingscontext, zoals bewerkingen waarvoor hoofdgebruikersmachtigingen zijn vereist.
  • Aanvragen worden doorgestuurd vanaf een omgekeerde proxy, dus apps mogen niet afhankelijk zijn van de oorsprong van de aanvragen. De Databricks Apps-omgeving stelt de vereiste configuratieparameters voor ondersteunde frameworks in.
  • Omdat het Databricks-app-framework TLS-verbindingen (Transport Layer Security) beheert, mogen uw apps geen TLS-verbinding of handshake-bewerkingen uitvoeren.
  • Uw apps moeten worden geïmplementeerd om aanvragen in de H2C-indeling (HTTP/2 cleartext) te verwerken.
  • Databricks-apps moeten HTTP-servers 0.0.0.0 hosten en het poortnummer gebruiken dat is opgegeven in de DATABRICKS_APP_PORT omgevingsvariabele. Zie omgevingsvariabelen.