Partager via


Développer Des applications Databricks

Important

Databricks Apps est disponible en préversion publique.

Remarque

Pour déployer et exécuter des applications dans votre espace de travail Databricks, vous devez vous assurer que votre pare-feu ne bloque pas le domaine *.databricksapps.com.

Cet article présente des détails sur la création d’applications de données et d’IA avec Databricks Apps, notamment la création et la modification d’applications dans l’interface utilisateur, l’utilisation des fonctionnalités de plateforme Databricks telles que les entrepôts SQL, les secrets et les travaux Databricks, les meilleures pratiques pour le développement de vos applications et des informations importantes pour le développement d’applications à l’aide de frameworks pris en charge.

Comment faire créer une application dans l’interface utilisateur Databricks Apps ?

  1. Dans la barre latérale, cliquez sur Icône Nouveau Nouveau et sélectionnez Application dans le menu.

  2. Vous pouvez commencer par un exemple complet d’application prédéfini ou utiliser votre code source et vos artefacts.

    • Pour commencer par un exemple d’application, sélectionnez Modèle, cliquez sur l’onglet de votre infrastructure préférée, puis sélectionnez dans la liste des applications.
    • Pour créer une application à l’aide de votre code, sélectionnez Personnalisé.

    Afficher la page pour créer une application Databricks

  3. Sélectionnez Suivant.

  4. Dans le champ Nom de l’application, entrez un nom pour l’application et entrez éventuellement une description.

    Remarque

    • Le nom attribué à une application Databricks ne peut pas être modifié après avoir créé l’application, et tout utilisateur ayant accès à un espace de travail Azure Databricks peut voir les noms et l’historique de déploiement de toutes les applications Databricks dans l’espace de travail. En outre, le nom de l’application est inclus dans les enregistrements écrits dans les tables système. En raison de cette visibilité, vous ne devez pas inclure d’informations sensibles lors de l’affectation de noms à vos applications Databricks.
    • Le nom doit être unique dans l’espace de travail Azure Databricks qui héberge l’application et doit contenir uniquement des lettres minuscules, des chiffres et des traits d’union.

    Afficher la page pour nommer une application Databricks

    Si vous avez sélectionné Personnalisé, cliquez sur Créer une application. Si vous avez sélectionné Modèle, configurez les ressources requises, puis cliquez sur Créer et déployer une application. Consultez Affecter des fonctionnalités de plateforme Databricks à une application Databricks.

    Afficher la page pour nommer une application Databricks et ajouter des ressources

    La page détails de l’application s’affiche après avoir cliqué sur Créer et déployer une application ou Créer une application. Si vous avez sélectionné Modèle, Databricks Apps crée votre application, puis déploie l’application, y compris l’exemple de code à partir du modèle et la configuration requise pour l’application. La page de détails de l’application affiche :

    • État de la création et du déploiement de l’application.
    • Les étapes que vous pouvez utiliser pour poursuivre le développement de l’application localement, notamment la copie des artefacts d’application dans votre environnement local et la synchronisation des modifications locales vers l’espace de travail Azure Databricks.

    Afficher les détails d’une application Databricks modèle

    Si vous avez sélectionné Custom, Databricks Apps crée votre application. Étant donné que vous devez ajouter le code et les artefacts de votre application, vous devez déployer l’application en tant qu’étape distincte. La page de détails de l’application affiche :

    • État de la création de l’application.
    • Les étapes que vous pouvez utiliser pour synchroniser le code et les artefacts de l’application à partir de votre environnement de développement local vers votre espace de travail Azure Databricks et déployer l’application.

    Afficher les détails d’une application Databricks modèle

    Pour savoir comment configurer un environnement de développement local, créer ou mettre à jour le code et la configuration de votre application localement, et synchroniser et déployer l’application sur votre espace de travail Azure Databricks, consultez Prise en main de Databricks Apps.

  5. Si vous avez sélectionné Modèle et souhaitez copier vos artefacts d’application de l’espace de travail vers votre environnement de développement local, vous pouvez utiliser l’interface CLI Databricks :

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

    Remplacez :

    • <workspace-path> avec le chemin d’accès au répertoire des fichiers d’espace de travail qui contient le code et les artefacts de votre application.
    • <target-path> avec un chemin d’accès dans votre environnement local pour copier les fichiers vers.

Attribuer des fonctionnalités de plateforme Databricks à une application Databricks

Remarque

Pour utiliser Databricks SQL, les principaux de service nécessitent l’accès à un entrepôt SQL et à toutes les tables accessibles par les requêtes.

Pour utiliser des fonctionnalités de la plateforme Databricks, telles que Databricks SQL, Databricks Jobs, Mosaic AI Model Serving et Databricks secrets, ajoutez ces fonctionnalités à votre application en tant que ressources. Vous pouvez ajouter des ressources lorsque vous créez ou modifiez une application.

  1. Dans la carte Créer une application ou modifier une application, cliquez sur Paramètres avancés>+ Ajouter une ressource, puis sélectionnez le type de ressource.

    Ajout d’un entrepôt SQL en tant que ressource d’application dans l’interface utilisateur

  2. Selon le type de ressource, renseignez les champs requis pour configurer la ressource, y compris le champ Clé de ressource. Cette clé est utilisée ultérieurement pour référencer la ressource.

  3. Cliquez sur Enregistrer.

  4. Ajoutez une entrée pour la ressource dans le fichier de configuration à l’aide app.yaml de la clé de ressource SQL Warehouse. Étant donné que cela fait référence à la source de la valeur du paramètre et non à la valeur réelle, utilisez valueFrom plutôt valueque .

    env:
      - name: "DATABRICKS_WAREHOUSE_ID"
        valueFrom: "sql-warehouse"
    
  5. Pour référencer la ressource dans le code de votre application, utilisez la valeur du name champ (DATABRICKS_WAREHOUSE_ID dans cet exemple) pour faire référence à la valeur de clé configurée.

    import os
    
    os.getenv('DATABRICKS_WAREHOUSE_ID')
    

Pour voir d’autres exemples d’utilisation de ressources avec des applications, notamment des entrepôts SQL et des points de terminaison de service de modèle, consultez les exemples de modèles lorsque vous créez une application et la meilleure pratique : Utilisez des secrets pour stocker des informations sensibles pour une application Databricks.

Afficher les détails d’une application Databricks

Pour afficher la page de détails d’une application Databricks :

  1. Cliquez sur Icône Calcul Calcul dans la barre latérale.
  2. Accédez à l’onglet Applications .
  3. Dans la colonne Nom , cliquez sur le nom de l’application.
  4. L’onglet Vue d’ensemble s’affiche avec des détails pour l’application, notamment son état, son emplacement de déploiement et toutes les ressources associées.
    • Pour accéder à l’historique de déploiement de l’application, accédez à l’onglet Déploiements .
    • Pour afficher les journaux de l’application, accédez à l’onglet Journaux .
    • Pour afficher l’environnement d’exécution de l’application, y compris les variables d’environnement et les packages installés, accédez à l’onglet Environnement .

Configurer des autorisations pour votre application Databricks

Pour gérer les autorisations de l’application, vous devez disposer de l’autorisation ou IS OWNER de l’autorisationCAN MANAGE.

  1. Dans la page détails de l’application, cliquez sur Autorisations.
  2. Dans Paramètres des autorisations, sélectionnez le menu déroulant Sélectionner un utilisateur, un groupe ou un principal de service, puis sélectionnez un utilisateur, un groupe, un principal de service ou tous les utilisateurs de l’espace de travail.
  3. Sélectionnez une autorisation dans la liste déroulante des autorisations.
  4. Cliquez sur Ajouter , puis sur Enregistrer.

Maintien de l’état de votre application Databricks

Tout état que votre application conserve en mémoire est perdu lors du redémarrage. Si votre application nécessite la maintenance de l’état entre les redémarrages, stockez l’état en externe. Par exemple, votre application peut utiliser databricks SQL, les fichiers d’espace de travail ou les volumes catalogue Unity pour conserver l’état.

Journalisation à partir de votre application Databricks

Remarque

Pour afficher les journaux d’activité dans l’interface utilisateur Databricks Apps ou avec l’URL de l’application, votre application doit se connecter à stdout et stderr.

Pour afficher la sortie standard et l’erreur standard d’une application, dans la page détails de l’application, cliquez sur l’onglet Journaux . Consultez afficher les détails d’une application Databricks.

Vous pouvez également afficher les journaux d’erreurs standard et de sortie standard au niveau du <appurl>/logz lien. Par exemple, si l’URL de votre application est https://my-app-1234567890.my-instance.databricksapps.com, vous pouvez afficher les journaux à l’adresse https://my-app-1234567890.my-instance.databricksapps.com/logz. Pour rechercher l’URL de l’application, accédez à la page de détails de l’application.

Spécification des dépendances de bibliothèque pour votre application Databricks

Si votre application nécessite des bibliothèques Python autres que les packages installés automatiquement avec votre déploiement, utilisez un requirements.txt fichier pour définir ces bibliothèques. Si un package dans votre requirements.txt fichier duplique l’un des packages installés automatiquement, la version de votre requirements.txt fichier remplace le package installé automatiquement.

Pour obtenir la liste des packages et versions installés dans le cadre du déploiement de votre application, consultez Bibliothèques Python installées.

Quels en-têtes HTTP sont passés aux applications Databricks ?

Les en-têtes suivants X-Forwarded-* sont passés du proxy inverse Databricks Apps aux applications :

En-tête Description
X-Forwarded-Host Hôte ou domaine d’origine demandé par le client.
X-Forwarded-Preferred-Username Nom d’utilisateur fourni par idP.
X-Forwarded-User Identificateur de l’utilisateur fourni par idP.
X-Forwarded-Email E-mail de l’utilisateur fourni par idP.
X-Real-Ip Adresse IP du client à l’origine de la requête.
X-Request-Id UUID de la requête.

Quelles infrastructures sont prises en charge par Databricks Apps ?

Vous pouvez utiliser la plupart des infrastructures Python pour développer vos applications. Pour voir des exemples d’utilisation d’infrastructures spécifiques, notamment Dash, Gradio et Streamlit, sélectionnez dans la bibliothèque d’applications modèles lors de la création d’une application dans l’interface utilisateur. Consultez Comment faire créer une application dans l’interface utilisateur Databricks Apps ?.

Pour les variables spécifiques à Streamlit définies dans l’environnement d’exécution Databricks Apps, consultez les variables d’environnement par défaut pour Streamlit.

Bonne pratique : Utiliser des secrets pour stocker des informations sensibles pour une application Databricks

Databricks recommande d’utiliser des secrets pour stocker des informations sensibles, telles que les informations d’identification d’authentification. Pour en savoir plus sur l’utilisation des secrets, consultez Gérer les secrets.

Pour utiliser un secret avec votre application :

  1. Configurez le secret en tant que ressource d’application.

    Ajout d’un secret en tant que ressource d’application dans l’interface utilisateur

  2. Ajoutez une entrée pour le secret dans le fichier de configuration de l’application app.yaml .

    env:
      - name: "API_TOKEN"
        valueFrom: "api-token-value"
    
  3. Pour référencer le secret dans votre code d’application, utilisez la valeur du name champ (API_TOKEN dans cet exemple) pour faire référence à la valeur de clé configurée.

token = os.getenv('API_TOKEN')

Bonne pratique : Utiliser les fonctionnalités Azure Databricks pour le traitement des données

Le calcul Databricks Apps est conçu pour servir l’interface utilisateur. Pour vous assurer que vos applications peuvent prendre en charge efficacement plusieurs utilisateurs, vous devez utiliser les fonctionnalités Databricks pour effectuer tout autre chose que le traitement simple des données. Par exemple, utilisez Databricks SQL pour le traitement des requêtes et le stockage de jeux de données, les travaux Databricks pour le traitement des données ou le modèle servant à interroger des modèles IA.

Bonne pratique : Suivez les meilleures pratiques de codage sécurisées

Databricks recommande de suivre les pratiques de codage sécurisées lors du développement de vos applications, notamment la paramétrage des requêtes pour éviter les attaques par injection SQL. Consultez l’API d’exécution d’instruction.

Recommandations importantes pour l’implémentation d’applications Databricks

  • Databricks Apps envoie un SIGKILL signal 15 secondes après un SIGTERM, donc les applications doivent s’arrêter normalement pas plus de 15 secondes après avoir reçu le SIGTERM signal. Si une application n’a pas quitté après 15 secondes, un SIGKILL signal est envoyé pour arrêter le processus et tous les processus enfants.
  • Étant donné que Databricks Apps est exécuté en tant qu’utilisateur système non privilégié, il ne peut pas effectuer d’opérations nécessitant une exécution dans un contexte de sécurité privilégié, comme les opérations nécessitant des autorisations utilisateur racine.
  • Les requêtes sont transférées à partir d’un proxy inverse. Les applications ne doivent donc pas dépendre des origines des requêtes. L’environnement Databricks Apps définit les paramètres de configuration requis pour les frameworks pris en charge.
  • Étant donné que l’infrastructure d’application Databricks gère les connexions TLS (Transport Layer Security), vos applications ne doivent pas effectuer d’opérations de liaison ou de connexion TLS.
  • Vos applications doivent être implémentées pour gérer les requêtes au format cleartext (H2C) HTTP/2.
  • Les applications Databricks doivent héberger des serveurs HTTP sur 0.0.0.0 et utiliser le numéro de port spécifié dans la variable d’environnement DATABRICKS_APP_PORT . Consultez les variables d’environnement.