Aller au contenu principal

Configurer l’exécution d’applications Databricks avec app.yaml

Le fichier app.yaml d’une application Databricks définit le fonctionnement de votre application. Si votre application nécessite un point d'entrée différent ou une configuration spécifique à l'environnement, vous pouvez inclure ce fichier facultatif dans votre projet pour remplacer le comportement default.

Vous pouvez utiliser l’extension de fichier .yaml ou .yml. Ce fichier doit être situé à la racine de votre répertoire de projet.

Paramètres pris en charge

Le fichier app.yaml prend en charge les paramètres suivants :

Paramètre

Type

Description

command

sequence

Utilisez ce paramètre lorsque vous avez besoin d’une commande personnalisée pour exécuter votre application. Par default, Databricks exécute les applications Python à l'aide de la commande python <my-app.py>, où <my-app.py> est le premier fichier .py dans la structure de fichiers de votre application. Si votre application inclut Node.js, la commande default est npm run start. Consultez la logique de déploiement.

Comme Databricks n'exécute pas la commande dans un shell, les variables d'environnement définies en dehors de la configuration de l'application ne sont pas disponibles pour votre application. La seule exception est DATABRICKS_APP_PORT, qui est remplacé par le numéro de port réel dans la commande lors de l'exécution. Si votre application nécessite des paramètres supplémentaires pour s'exécuter, utilisez la structure env.

Ce paramètre est facultatif.

env

list

Databricks définit automatiquement plusieurs variables d'environnement default dans l'environnement d'exécution de l'application. Cette clé de haut niveau définit une liste facultative de variables d'environnement supplémentaires à transmettre à votre application. Chaque variable peut utiliser une valeur codée en dur ou faire référence à une source externe, telle qu'un secret ou une entrée de base de données.

Les éléments valides de la liste sont :

Ce paramètre est facultatif.

Paramètre

Type

Description

command

sequence

Utilisez ce paramètre lorsque vous avez besoin d’une commande personnalisée pour exécuter votre application. Par default, Databricks exécute les applications Python à l'aide de la commande python <my-app.py>, où <my-app.py> est le premier fichier .py dans la structure de fichiers de votre application. Si votre application inclut Node.js, la commande default est npm run start. Consultez la logique de déploiement.

Comme Databricks n'exécute pas la commande dans un shell, les variables d'environnement définies en dehors de la configuration de l'application ne sont pas disponibles pour votre application. La seule exception est DATABRICKS_APP_PORT, qui est remplacé par le numéro de port réel dans la commande lors de l'exécution. Si votre application nécessite des paramètres supplémentaires pour s'exécuter, utilisez la structure env.

Ce paramètre est facultatif.

env

list

Databricks définit automatiquement plusieurs variables d'environnement default dans l'environnement d'exécution de l'application. Cette clé de haut niveau définit une liste facultative de variables d'environnement supplémentaires à transmettre à votre application. Chaque variable peut utiliser une valeur codée en dur ou faire référence à une source externe, telle qu'un secret ou une entrée de base de données.

Les éléments valides de la liste sont :

Ce paramètre est facultatif.

Exemple app.yaml pour une application Streamlit

Le fichier app.yaml suivant montre comment configurer une application Streamlit. Il utilise une commande personnalisée pour start l'application avec streamlit run, et il définit des variables d'environnement pour l'ID du SQL Warehouse et un indicateur de suivi d'utilisation.

YAML
command: ['streamlit', 'run', 'app.py']
env:
- name: 'DATABRICKS_WAREHOUSE_ID'
value: 'quoz2bvjy8bl7skl'
- name: 'STREAMLIT_GATHER_USAGE_STATS'
value: 'false'

Utilisez une configuration comme celle-ci si votre application dépend d'une ressource de compute spécifique, telle qu'un SQL Warehouse, ou nécessite certaines variables d'environnement pour contrôler le comportement d'exécution.

Exemple app.yaml pour une application Flask

Cet exemple montre comment configurer une application Flask à l’aide du serveur Gunicorn. Le paramètre command spécifie les paramètres de Startup de Gunicorn, et la section env définit le chemin d'accès à un volume Unity Catalog en tant que variable d'environnement.

YAML
command:
- gunicorn
- app:app
- -w
- 4
env:
- name: 'VOLUME_URI'
value: '/Volumes/catalog-name/schema-name/dir-name'

Utilisez cette approche lorsque votre application a besoin d'un serveur WSGI prêt pour la production comme Gunicorn et lorsqu'elle dépend de données stockées dans un volume Unity Catalog ou un autre chemin d'accès spécifique à l'environnement.

Ressources supplémentaires