Delen via


Aanbevolen procedures voor Databricks-apps

Op deze pagina vindt u belangrijke aanbevolen procedures voor het ontwikkelen en uitvoeren van Databricks-apps. Deze richtlijnen richten zich op beveiligings-, prestatie- en platformvereisten.

Algemene aanbevolen procedures

  • Gebruik systeemeigen azure Databricks-functies voor gegevensverwerking. App-rekenkracht is geoptimaliseerd voor ui-rendering. Databricks SQL gebruiken voor query's en gegevenssets, Lakeflow-taken voor batchverwerking en Modelverwerking voor AI-deductieworkloads. Verplaats zware gegevensverwerking naar deze diensten om prestatieproblemen te voorkomen. Test uw app onder de verwachte belastingsomstandigheden om te controleren of deze voldoet aan uw vereisten.

  • Implementeer de juiste verwerking van afsluiten. Uw app moet binnen 15 seconden worden afgesloten nadat er een SIGTERM signaal is ontvangen, of de app wordt geforceerd beĆ«indigd met SIGKILL.

  • Vermijd bevoegde bewerkingen. Apps worden uitgevoerd als niet-bevoegde gebruikers en kunnen geen acties uitvoeren waarvoor verhoogde machtigingen zijn vereist, zoals hoofdtoegang. U kunt geen pakketten op systeemniveau installeren met behulp van pakketbeheerders zoals apt-get, yumof apk. Gebruik in plaats daarvan Python-pakketten van PyPI of Node.js pakketten van npm om uw app-afhankelijkheden te beheren.

  • Inzicht in platformbeheerde netwerken. Aanvragen worden doorgestuurd via een omgekeerde proxy, zodat uw app niet afhankelijk is van de oorsprong van aanvragen. Azure Databricks verwerkt TLS-beĆ«indiging en vereist dat apps HTTP/2 cleartext (H2C) ondersteunen. Implementeer geen aangepaste TLS-verwerking.

  • Binden aan de juiste host en poort. Uw app moet luisteren naar 0.0.0.0 en de poort gebruiken die is opgegeven in de omgevingsvariabele DATABRICKS_APP_PORT. Zie omgevingsvariabelen voor meer informatie.

  • Minimaliseer de opstarttijd van de container. Initialisatielogica lichtgewicht houden om de latentie bij koude start te verminderen. Voorkom het blokkeren van bewerkingen zoals grote afhankelijkheidsinstallaties of externe API-aanroepen tijdens het opstarten. Laad zware resources alleen wanneer dat nodig is.

  • Meld u aan bij stdout en stderr. Azure Databricks legt logboeken vast van standaarduitvoer- en foutstromen. Gebruik deze voor alle logboekregistraties om ervoor te zorgen dat logboeken zichtbaar zijn in de Gebruikersinterface van Azure Databricks. Vermijd het schrijven van logboeken naar lokale bestanden.

  • Afhandelen van onverwachte fouten probleemloos. Implementeer globale uitzonderingsafhandeling om crashes door niet-onderschepte fouten te voorkomen. Retourneer de juiste HTTP-foutreacties zonder stacktraceringen of gevoelige gegevens weer te geven.

  • Afhankelijkheidsversies vastmaken. Gebruik exacte versienummers in uw requirements.txt bestand om consistente omgevingen in builds te garanderen. Vermijd het gebruik van losgemaakte of nieuwste versies van pakketten.

  • Gebruikersinvoer valideren en opschonen. Valideer altijd binnenkomende gegevens en schoon deze op om injectieaanvallen of onjuiste invoer te voorkomen, zelfs in interne apps.

  • Gebruik in-memory caching voor dure bewerkingen. Cache veelgebruikte gegevens zoals queryresultaten of API-antwoorden om latentie te verminderen en redundante verwerking te voorkomen. Gebruik functools.lru_cache, cachetoolsof vergelijkbare bibliotheken en scopecaches zorgvuldig in apps voor meerdere gebruikers.

  • Gebruik asynchrone aanvraagpatronen voor langdurige bewerkingen. Vermijd synchrone aanvragen die wachten tot de bewerkingen zijn voltooid, waardoor er een time-out optreedt. Voer in plaats daarvan een eerste aanvraag uit om de bewerking te starten en voer vervolgens periodiek een query uit op de resourcestatus of het eindpunt om de voltooiingsstatus te controleren.

Aanbevolen procedures voor beveiliging

  • Volg het principe van minimale bevoegdheden. Alleen de machtigingen verlenen die nodig zijn voor elke gebruiker of groep. Gebruik CAN USE in plaats van CAN MANAGE tenzij volledig beheer is vereist. Zie aanbevolen procedures voor machtigingen.

  • Kies zorgvuldig verificatiemethoden. Gebruik service-principals wanneer toegang tot resources en gegevens hetzelfde is voor alle gebruikers van de app. Implementeer alleen gebruikersverificatie in werkruimten met auteurs van vertrouwde apps en app-code die door peers is beoordeeld, wanneer de app de machtigingen van de aanroepende gebruiker moet respecteren.

  • Gebruik toegewijde service-principes voor elke app. Deel geen referenties van de service-principal tussen apps of gebruikers. Alleen de minimale machtigingen verlenen die nodig zijn, zoals CAN USE of CAN QUERY. Roteer de toegangsgegevens van de service-principal wanneer de app-makers uw organisatie verlaten. Zie App-toegang tot resources beheren.

  • App-omgevingen isoleren. Gebruik verschillende werkruimten om ontwikkel-, faserings- en productie-apps te scheiden. Dit voorkomt onbedoelde toegang tot productiegegevens tijdens het ontwikkelen en testen.

  • Toegang tot gegevens via de juiste berekening. Configureer uw app niet om rechtstreeks toegang te krijgen tot of gegevens te verwerken. Gebruik SQL-magazijnen voor query's, Model Serving voor AI-inferentie en Lakeflow-jobs voor batchverwerking.

  • Geheimen beheren. Maak nooit onbewerkte geheime waarden beschikbaar in omgevingsvariabelen. Gebruik valueFrom in uw app-configuratie en roteer geheimen regelmatig, met name wanneer teamrollen veranderen. Zie Best practices.

  • Beperk bereik en log gebruikersacties. Wanneer u gebruikersautorisatie gebruikt, vraagt u alleen de bereiken aan die uw app nodig heeft en registreert u alle gebruikersacties met gestructureerde auditrecords. Zie aanbevolen procedures voor gebruikersautorisatie.

  • Beperk de uitgaande netwerktoegang. Sta alleen de domeinen toe die uw app nodig heeft, zoals pakketopslagplaatsen en externe API's. Gebruik de dry-runmodus en weigeringslogboeken om uw configuratie te valideren. Zie aanbevolen procedures voor het configureren van netwerkbeleid.

  • Volg beveiligingscoderingsprocedures. Sql-query's parameteriseren om injectieaanvallen te voorkomen en algemene richtlijnen voor veilige ontwikkeling toe te passen, zoals invoervalidatie en foutafhandeling. Zie de API voor het uitvoeren van instructies: SQL uitvoeren op magazijnen.

  • Controleren op verdachte activiteiten. Controleer regelmatig auditlogboeken op ongebruikelijke toegangspatronen of niet-geautoriseerde acties. Waarschuwingen instellen voor kritieke beveiligingsevenementen.