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.com
niet 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?
Klik in de zijbalk op
Nieuw en selecteer App- in het menu.
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.
Klik op Volgende.
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.
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 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.
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.
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.
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.
Klik in de kaart Nieuwe app maken of App- bewerken op Geavanceerde instellingen>+ Resourcetoevoegen en selecteer het resourcetype.
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.
Klik op Opslaan.
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, gebruiktvalueFrom
u in plaats vanvalue
.env: - name: "DATABRICKS_WAREHOUSE_ID" valueFrom: "sql-warehouse"
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:
- Klik op
Compute in de zijbalk.
- Ga naar het tabblad Apps .
- Klik in de kolom Naam op de naam van de app.
- 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.
- Klik op de pagina met app-details op Machtigingen.
- Selecteer in machtigingsinstellingende Gebruiker, groep of service-principal selecteren... vervolgkeuzelijst en selecteer vervolgens een gebruiker, groep, service-principal of alle werkruimtegebruikers.
- Selecteer een machtiging uit de vervolgkeuzelijst machtigingen.
- 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:
Configureer het geheim als een app-resource.
Voeg een vermelding toe voor het geheim in het configuratiebestand van
app.yaml
de app.env: - name: "API_TOKEN" valueFrom: "api-token-value"
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 eenSIGTERM
signaal, zodat apps niet langer dan 15 seconden na ontvangst van hetSIGTERM
signaal moeten worden afgesloten. Als een app na 15 seconden niet is afgesloten, wordt er eenSIGKILL
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 deDATABRICKS_APP_PORT
omgevingsvariabele. Zie omgevingsvariabelen.