Développer des Declarative Automation Bundles
Cet article décrit le développement et le cycle de vie des Declarative Automation Bundles. Pour des informations générales sur les bundles, consultez Que sont les Declarative Automation Bundles ?.
Cycle de vie d'un bundle
Pour comprendre comment utiliser efficacement les bundles, vous devez comprendre le cycle de vie de base d'un bundle :
- Le squelette du bundle est créé basé sur un projet.
- Le projet du bundle est développé localement. Un bundle contient des fichiers de configuration qui définissent l'infrastructure et les paramètres du Workspace, tels que les cibles de déploiement, les paramètres pour les ressources Databricks comme les Jobs et les pipelines, ainsi que les fichiers source et autres artefacts.
- Le projet de bundle est validé. La validation vérifie les paramètres et les définitions de Ressources dans la configuration du bundle par rapport aux schémas d'objet correspondants afin de garantir que le bundle est déployable sur Databricks.
- Le bundle est déployé dans un Workspace cible. Le plus souvent, un bundle est d'abord déployé dans le workspace de développement personnel d'un utilisateur pour des tests. Une fois les tests du bundle terminés, le bundle peut être déployé en staging, puis sur les cibles de production.
- Les ressources de workflow définies dans le bundle déployé peuvent être exécutées. Par exemple, vous pouvez exécuter un job.
- Si le bundle n'est plus utilisé, il peut être définitivement détruit.
Vous utilisez les commandes de bundle Databricks CLI pour créer, valider, déployer, exécuter et détruire des bundles, comme décrit dans les sections suivantes.
Étape 1 : créer un bundle
Il existe trois façons de commencer à créer un bundle :
- Utilisez le Template de bundle par default.
- Utilisez un Template de bundle personnalisé.
- Créer un bundle manuellement.
Utiliser un default bundle Template
Pour utiliser un template de bundle Databricks default afin de créer un bundle de démarrage que vous pourrez ensuite personnaliser davantage, utilisez la Databricks CLI version 0.218.0 ou supérieure pour exécuter la commande bundle init, ce qui vous permettra de choisir parmi une liste de templates disponibles. Consulter databricks bundle init.
databricks bundle init
Vous pouvez afficher la source des templates de bundle default dans les databricks/cli et databricks/mlops-stacks repositories publics GitHub.
Passez à l'étape 2 : Renseigner les fichiers de configuration du bundle.
Utiliser un Template de bundle personnalisé
Pour utiliser un template de bundle autre que le template de bundle Databricks default, vous devez connaître le chemin local ou l'URL de l'emplacement du template de bundle distant. Utilisez la version 0.218.0 ou supérieure de la CLI Databricks pour exécuter la commande bundle init comme suit :
databricks bundle init <project-template-local-path-or-url>
Pour plus d'information sur cette commande, consultez les Templates de projet Declarative Automation Bundles. Pour plus d'information sur un Template de bundle spécifique, consultez la documentation du fournisseur du Template de bundle.
Passez à l'étape 2 : Renseigner les fichiers de configuration du bundle.
Créer un bundle manuellement
Pour créer un bundle manuellement au lieu d'utiliser un Template de bundle, créez un répertoire de projet sur votre machine locale, ou un repository vide avec un fournisseur Git tiers.
Dans votre répertoire ou repository, créez un ou plusieurs fichiers de configuration de bundle en entrée. Ces fichiers sont exprimés au format YAML. Il doit y avoir au minimum un (et un seul) fichier de configuration de bundle nommé databricks.yml. Les fichiers de configuration de bundle supplémentaires doivent être référencés dans le mappage include du fichier databricks.yml.
Pour créer plus facilement et plus rapidement des fichiers YAML conformes à la syntaxe de configuration des bundles, vous pouvez utiliser un outil tel que Visual Studio Code, PyCharm Professional ou IntelliJ IDEA Ultimate qui prend en charge les fichiers YAML et les fichiers de schéma JSON, comme suit :
- Visual Studio Code
- PyCharm Professional
- IntelliJ IDEA Ultimate
-
Ajoutez la prise en charge du serveur de langage YAML à Visual Studio Code, par exemple en installant l'extension YAML depuis le Visual Studio Code Marketplace.
-
Générez le fichier de schéma JSON de configuration du bundle à l'aide de Databricks CLI version 0.218.0 ou supérieure pour exécuter la commande
bundle schemaet rediriger la sortie vers un fichier JSON. Par exemple, générez un fichier nommébundle_config_schema.jsondans le répertoire actuel, comme suit :Bashdatabricks bundle schema > bundle_config_schema.json -
Utilisez Visual Studio Code pour créer ou ouvrir un fichier de configuration de bundle dans le répertoire actuel. Ce fichier doit être nommé
databricks.yml. -
Ajoutez le commentaire suivant au début du fichier de configuration de votre bundle :
YAML# yaml-language-server: $schema=bundle_config_schema.json
Dans le commentaire précédent, si votre fichier de schéma JSON de configuration de bundle se trouve dans un chemin différent, remplacez bundle_config_schema.json par le chemin complet de votre fichier de schéma.
- Utilisez les fonctionnalités du serveur de langage YAML que vous avez ajoutées précédemment. Pour plus d'informations, consultez la documentation de votre serveur de langage YAML.
-
Générez le fichier de schéma JSON de configuration du bundle en utilisant Databricks CLI version 0.218.0 ou supérieure pour exécuter la commande
bundle schemaet rediriger la sortie vers un fichier JSON. Par exemple, générez un fichier nommébundle_config_schema.jsondans le répertoire actuel, comme suit :Bashdatabricks bundle schema > bundle_config_schema.json -
Configurez PyCharm pour qu'il reconnaisse le fichier de schéma JSON de configuration de bundle, puis complétez le mappage de schéma JSON, en suivant les instructions de Configurer un schéma JSON personnalisé.
-
Utiliser PyCharm pour créer ou ouvrir un fichier de configuration de bundle. Ce fichier doit être nommé
databricks.yml. Au fur et à mesure que vous tapez, PyCharm vérifie la syntaxe et le formatage du schéma JSON et fournit des suggestions de complétion de code.
-
Générez le fichier de schéma JSON de configuration du bundle en utilisant Databricks CLI version 0.218.0 ou supérieure pour exécuter la commande
bundle schemaet rediriger la sortie vers un fichier JSON. Par exemple, générez un fichier nommébundle_config_schema.jsondans le répertoire actuel, comme suit :Bashdatabricks bundle schema > bundle_config_schema.json -
Configurez IntelliJ IDEA pour reconnaître le fichier de schéma JSON de configuration de bundle, puis complétez le mappage de schéma JSON, en suivant les instructions de Configurer un schéma JSON personnalisé.
-
Utilisez IntelliJ IDEA pour créer ou ouvrir un fichier de configuration de bundle. Ce fichier doit être nommé
databricks.yml. Lorsque vous tapez, IntelliJ IDEA vérifie la syntaxe et le formatage du schéma JSON et fournit des suggestions de saisie semi-automatique du code.
Étape 2 : Remplir les fichiers de configuration du bundle
Les fichiers de configuration de bundle définissent vos workflows Databricks en spécifiant des paramètres tels que les détails du workspace, les noms d’artefacts, les emplacements de fichiers, les détails des jobs et les détails des pipelines. Généralement, la configuration du bundle contient également des cibles de déploiement de développement, de préproduction et de production. Pour une référence complète de la configuration de bundle, consultez la référence de configuration.
Vous pouvez utiliser la commande bundle generate pour générer automatiquement la configuration du bundle pour une ressource existante dans le Workspace, puis utiliser bundle deployment bind pour Link la configuration du bundle à la ressource dans le Workspace afin de les synchroniser. Consultez databricks bundle generate et databricks bundle deployment bind.
Étape 3 : Valider les fichiers de configuration du bundle
Avant de déployer des artefacts ou d'exécuter un Job ou un pipeline, vous devez vérifier que les définitions de vos fichiers de configuration de bundle sont valides. Pour ce faire, exécutez la commande bundle validate à partir du répertoire racine du projet de bundle. Consultez databricks bundle validate.
databricks bundle validate
Si la validation est réussie, un résumé de l'identité de l'ensemble et un message de confirmation sont renvoyés. Pour afficher le schéma, utilisez la commande databricks bundle schema. Consultez le schéma d'ensemble Databricks.
Étape 4 : déployez le bundle
Avant de déployer le bundle, assurez-vous que le workspace distant a les fichiers du workspace activés. Consultez Qu'est-ce qu'un fichier de workspace ?.
Pour déployer un bundle dans un workspace distant, exécutez la commande bundle deploy à partir de la racine du bundle, comme décrit dans databricks bundle deploy. La Databricks CLI se déploie sur le workspace cible qui est déclaré dans les fichiers de configuration du bundle. Voir les cibles.
databricks bundle deploy
L'identité unique d'un bundle est définie par son nom, sa cible et l'identité du déployeur. Si ces attributs sont identiques dans différents bundles, le déploiement de ces bundles interférera les uns avec les autres. Consultez databricks bundle deploy pour plus de détails.
Vous pouvez exécuter databricks bundle commandes en dehors de la racine du bundle en définissant la variable d’environnement BUNDLE_ROOT. Si cette variable d’environnement n’est pas définie, les commandes databricks bundle tentent de trouver la racine du bundle en recherchant dans le répertoire de travail actuel.
Étape 5 : Exécutez le bundle
Pour exécuter un job ou un pipeline spécifique, exécutez la commande bundle run depuis la racine du bundle, en spécifiant la clé du job ou du pipeline déclarée dans les fichiers de configuration du bundle, comme décrit dans databricks bundle run. La clé de ressource est l'élément de niveau supérieur du bloc YAML de la ressource. Si vous ne spécifiez pas de clé de Job ou de pipeline, vous êtes invité à sélectionner une Ressource à exécuter dans une liste de Ressources disponibles. Si l'option -t n'est pas spécifiée, la cible default telle que déclarée dans les fichiers de configuration du bundle est utilisée. Par exemple, pour exécuter un job avec la clé hello_job dans le contexte de la cible default :
databricks bundle run hello_job
Pour exécuter un job avec une clé hello_job dans le contexte d'une cible déclarée avec le nom dev:
databricks bundle run -t dev hello_job
Étape 6 : détruire le bundle
La destruction d'un bundle supprime définitivement les jobs, pipelines et artefacts précédemment déployés d'un bundle. Cette action ne peut pas être annulée.
Si vous avez terminé votre bundle et que vous souhaitez supprimer les Jobs, les pipelines et les artéfacts précédemment déployés, exécutez la commande bundle destroy à partir de la racine du bundle. Cette commande supprime tous les Jobs, pipelines et artéfacts précédemment déployés qui sont définis dans les fichiers de configuration du bundle. Voir destruction du bundle Databricks.
databricks bundle destroy
By default, il vous est demandé de confirmer la suppression permanente des jobs, pipelines et artefacts précédemment déployés. Pour ignorer ces invites et effectuer une suppression permanente automatique, ajoutez l'option --auto-approve à la commande bundle destroy.