Référence de configuration
Cette page fournit des références pour les clés prises en charge par la configuration (YAML) des Declarative Automation Bundles (anciennement connus sous le nom de Databricks Asset Bundles). Consultez Que sont les Declarative Automation Bundles ?
Pour des exemples complets de bundles, consultez les exemples de configurations de bundles et le repository GitHub d'exemples de bundles.
Artefacts
Type: Map
Spécifie les artefacts à créer automatiquement lors des déploiements de bundles, qui peuvent être utilisés ultérieurement lors des exécutions de bundles. Chaque clé est le nom de l'artefact, et la valeur est une carte qui définit les paramètres de création de l'artefact.
Vous pouvez définir, combiner et remplacer les paramètres des artefacts dans les bundles, comme décrit dans Remplacer par les paramètres cibles.
artifacts:
<artifact-name>:
<artifact-field-name>: <artifact-field-value>
Clé | Type | Description |
|---|---|---|
| Chaîne | Un ensemble facultatif de commandes de build à exécuter localement avant le déploiement. Pour les builds Python wheel, le Databricks CLI suppose qu'il peut trouver une installation locale du package Python |
| Booléen | Indique s'il convient de patcher la version de la wheel de manière dynamique en fonction du Timestamp du fichier .whl. Si cette option est définie sur Ajouté dans la version 0.245.0 de Databricks CLI. |
| Chaîne | Le type exécutable. Les valeurs possibles sont |
| Séquence | Le chemin relatif ou absolu vers les fichiers d’artefacts créés. Voir artifacts. name .files. |
| Chaîne | Le chemin local du répertoire pour l'artefact. Les chemins sont relatifs à l'emplacement du fichier de configuration du bundle. Pour les builds Python wheel, il s'agit du chemin d'accès au fichier |
| Chaîne | Requis si l'artefact est un Python wheel. Le type de l'artefact. Les valeurs valides sont |
Exemples
La configuration suivante crée un Python wheel en utilisant Poetry :
artifacts:
default:
type: whl
build: poetry build
path: .
La configuration suivante exécute des tests et construit un wheel. Pour un tutoriel complet sur les bundles qui utilise artifacts pour construire un Python wheel, consultez Créer un fichier Python wheel à l'aide de Declarative Automation Bundles.
artifacts:
default:
type: whl
build: |-
# run tests
python -m pytest tests/ -v
# build the actual artifact
python setup.py bdist_wheel
path: .
Pour une configuration exemple qui construit un JAR et l'importe dans Unity Catalog, consultez Bundle qui upload un fichier JAR dans Unity Catalog.
artifacts. name .fichiers
Type: Sequence
Le chemin relatif ou absolu vers les fichiers d’artefacts créés. Utilisez source pour spécifier les artefacts créés. Les chemins sont relatifs à l'emplacement du fichier de configuration du bundle.
Clé | Type | Description |
|---|---|---|
| Chaîne | Obligatoire. Le fichier source de l'artefact. |
bundle
Type: Map
Les attributs du bundle lors du déploiement vers cette cible.
Un fichier de configuration de bundle doit contenir un seul mappage bundle de niveau supérieur.
Ce mappage bundle doit contenir un mappage name qui spécifie un nom programmatique (ou logique) pour l'ensemble. L'exemple suivant déclare un bundle avec le nom programmatique (ou logique) hello-bundle.
bundle:
name: hello-bundle
Un mappage bundle peut également être un enfant d'une ou plusieurs des cibles dans le mappage cibles de niveau supérieur. Chacun de ces mappages enfants bundle spécifie tout remplacement non-default au niveau de la cible.
Clé | Type | Description |
|---|---|---|
| Chaîne | L'ID d'un cluster à utiliser pour exécuter le bundle. Cette clé vous permet de spécifier l'ID d'un cluster à utiliser comme remplacement pour les clusters définis ailleurs dans le fichier de configuration du bundle. Pour des informations sur la manière de récupérer l'ID d'un cluster, consultez URL et ID de ressource de compute. Le remplacement |
| Chaîne | Obsolète. L'ID du compute à utiliser pour exécuter le bundle. |
| Chaîne | La version de l'interface de ligne de commande Databricks à utiliser pour le bundle. Voir bundle.databricks_cli_version. |
| Carte | La définition du déploiement du bundle. Pour les attributs pris en charge, consultez Modes de déploiement des Declarative Automation Bundles. Consultez bundle.deployment. |
| Chaîne | Le moteur de déploiement à utiliser. Les valeurs valides sont Ajouté dans la version 0.295.0 de Databricks CLI. |
| Carte | Les détails du contrôle de version Git qui sont associés à votre offre groupée. Pour les attributs pris en charge, consultez Git. |
| Chaîne | Le nom du bundle. |
| Chaîne | Réservé. Un identifiant unique universel (UUID) pour le bundle qui identifie de manière unique le bundle dans les systèmes internes de Databricks. Ceci est généré lorsqu'un projet de bundle est initialisé à l'aide d'un Template Databricks (en utilisant la commande Ajouté dans la version 0.236.0 de la CLI Databricks |
bundle.databricks_cli_version
Le mappage bundle peut contenir un mappage databricks_cli_version qui contraint la version de Databricks CLI requise par le bundle. Cela peut éviter les problèmes causés par l'utilisation de mappages non pris en charge dans une certaine version de Databricks CLI.
La version de Databricks CLI est conforme à la gestion sémantique des versions et le mappage databricks_cli_version prend en charge la spécification de contraintes de version. Si la valeur actuelle de databricks --version ne se trouve pas dans les limites spécifiées dans le mappage databricks_cli_version du bundle, une erreur se produit lorsque databricks bundle validate est exécuté sur le bundle. Les exemples suivants présentent quelques syntaxes courantes de contraintes de version :
bundle:
name: hello-bundle
databricks_cli_version: '0.218.0' # require Databricks CLI 0.218.0
bundle:
name: hello-bundle
databricks_cli_version: '0.218.*' # allow all patch versions of Databricks CLI 0.218
bundle:
name: my-bundle
databricks_cli_version: '>= 0.218.0' # allow any version of Databricks CLI 0.218.0 or higher
bundle:
name: my-bundle
databricks_cli_version: '>= 0.218.0, <= 1.0.0' # allow any Databricks CLI version between 0.218.0 and 1.0.0, inclusive
bundle.deployment
Type: Map
La définition du déploiement du bundle
Clé | Type | Description |
|---|---|---|
| Booléen | Échec des exécutions actives. Si cette option est définie sur vrai, un déploiement en cours d'exécution peut être interrompu. |
| Carte | Les attributs de verrouillage de déploiement. Consultez bundle.deployment.lock. |
bundle.deployment.lock
Type: Map
Les attributs du verrou de déploiement.
Clé | Type | Description |
|---|---|---|
| Booléen | Si ce verrou est activé. |
| Booléen | Faut-il forcer ce verrou s'il est activé ? |
Expérimental
Type: Map
Définit les attributs pour les fonctionnalités expérimentales.
Clé | Type | Description |
|---|---|---|
| Carte | Obsolète. Utilisez la correspondance python de niveau supérieur à la place. Ajouté dans la version 0.238.0 de Databricks CLI. |
| Booléen | Faut-il utiliser un encapsuleur Python wheel. |
| Booléen | Enregistrer l'historique de déploiement du bundle. |
| Carte | Les commandes à exécuter. |
| Booléen | Détermine s'il faut ignorer la suppression du dossier Ajouté dans la version 0.254.0 de Databricks CLI |
| Booléen | Ignorer l'ajout du préfixe (défini dans Ajouté dans la version 0.255.0 de Databricks CLI. |
| Booléen | S’il faut utiliser l’ancien comportement d’exécution. |
inclure
Type: Sequence
Spécifie une liste de globs de chemins qui contiennent les fichiers de configuration à inclure dans le bundle. Ces globs de chemins sont relatifs à l’emplacement du fichier de configuration de bundle dans lequel les globs de chemins sont spécifiés. Hormis databricks.yml, vous devez utiliser le tableau include pour spécifier tous les fichiers de configuration à inclure dans le bundle.
Pour inclure ou exclure d'autres fichiers dans le paquet, utilisez les options inclure et exclure.
Ce tableau include ne peut apparaître que comme un mappage de niveau supérieur.
L'exemple de configuration suivant inclut trois fichiers de configuration. Ces fichiers se trouvent dans le même dossier que le fichier de configuration du bundle :
include:
- 'bundle.artifacts.yml'
- 'bundle.resources.yml'
- 'bundle.targets.yml'
La configuration d'exemple suivante inclut tous les fichiers dont les noms de fichier commencent par bundle et se terminent par .yml. Ces fichiers se trouvent dans le même dossier que le fichier de configuration du bundle :
include:
- 'bundle*.yml'
autorisations
Type: Sequence
Définit les autorisations à appliquer aux ressources définies dans le bundle, où chaque élément de la séquence est une autorisation pour une entité spécifique. Consultez Définir les autorisations pour les ressources dans les Declarative Automation Bundles.
Les niveaux d'autorisation de haut niveau autorisés sont CAN_VIEW, CAN_MANAGE et CAN_RUN.
Si vous souhaitez appliquer des autorisations à une ressource spécifique, consultez Définir des autorisations pour une ressource spécifique.
Clé | Type | Description |
|---|---|---|
| Chaîne | Le nom du groupe qui dispose de l'ensemble d'autorisations défini à ce niveau. |
| Chaîne | L'autorisation accordée pour l'utilisateur, le groupe, le Service Principal définie pour cette autorisation. Les valeurs valides pour cette clé sont différentes selon que les autorisations sont définies au niveau supérieur du bundle ou pour une ressource spécifique. Consultez Définir les autorisations pour les ressources dans Declarative Automation Bundles. |
| Chaîne | Le nom du Service Principal qui a l'autorisation définie dans le niveau. |
| Chaîne | Le nom de l'utilisateur qui a l'ensemble d'autorisations défini au niveau. |
Exemple
La configuration d'exemple suivante définit les niveaux d'autorisation pour un utilisateur, un groupe et un Service Principal, qui sont appliqués à toutes les Ressources définies dans resources dans le bundle :
permissions:
- level: CAN_VIEW
group_name: test-group
- level: CAN_MANAGE
user_name: someone@example.com
- level: CAN_RUN
service_principal_name: 123456-abcdef
Préréglages
Type: Map
Définit les préréglages de déploiement de bundle. Pour plus d'information, consultez Préréglages personnalisés.
À moins qu'une exception ne soit spécifiée pour un préréglage, si mode et presets sont définis, les préréglages remplacent le comportement du mode par default, et les paramètres des ressources individuelles remplacent les préréglages.
Préréglage | Description |
|---|---|
| Indique s'il faut mettre à jour dynamiquement la version des artefacts Ajouté dans la version 0.256.0 de Databricks CLI |
| Le nombre maximal d'exécutions simultanées autorisées pour les Jobs. |
| La chaîne de préfixe à ajouter en préfixe aux noms de ressources. |
| Si les déploiements de pipeline doivent être verrouillés en mode développement. Les valeurs valides sont |
| Si les ressources créées lors du déploiement pointent vers des fichiers source dans le workspace au lieu de leurs copies de workspace. Ajouté dans la version 0.236.0 de la CLI Databricks |
| Un ensemble de clés tags qui s'appliquent à toutes les ressources qui prennent en charge les tags, ce qui inclut les jobs et les expérimentations. Les Declarative Automation Bundles ne prennent pas en charge les tags pour la ressource |
| Un statut de pause à appliquer à tous les Trigger et plannings. Les valeurs valides sont Si |
Python
Type: Map
Configure le chargement du code Python défini avec le package databricks-bundles. Pour plus d'informations, consultez Configuration de bundle en Python.
Déplacé de experimental dans la version 0.275.0 de la CLI Databricks
Clé | Type | Description |
|---|---|---|
| Séquence | Les mutateurs contiennent une liste de chemins de fonctions entièrement qualifiés vers les fonctions mutateur, tels que Ajouté dans la version 0.238.0 de Databricks CLI. |
| Séquence | Ressources contient une liste de chemins de fonctions entièrement qualifiés pour charger les ressources définies dans le code Python, tels que Ajouté dans la version 0.238.0 de Databricks CLI. |
| Chaîne | Le chemin vers l'environnement virtuel. Si activé, le code Python s'exécute dans cet environnement. Si désactivé, il utilise par default l'interpréteur Python disponible dans le Shell actuel. Ajouté dans la version 0.238.0 de Databricks CLI. |
Ressources
Type: Map
Définit les ressources du bundle, où chaque clé est le nom de la ressource, et la valeur est une carte qui définit la ressource. Pour plus d'informations sur les ressources prises en charge par les Declarative Automation Bundles et la référence de définition des ressources, consultez Ressources des Declarative Automation Bundles.
Le mappage resources peut apparaître comme un mappage de niveau supérieur, ou il peut être un enfant d'une ou plusieurs des cibles dans le mappage cibles de niveau supérieur, et inclut zéro ou un des types de ressources pris en charge. Chaque mappage de type de ressource comprend une ou plusieurs déclarations de ressources individuelles, chacune devant avoir un nom unique. Ces déclarations de Ressources individuelles utilisent la charge utile de requête de l'Opération de création de l'objet correspondant, exprimée en YAML, pour définir la Ressource. Les propriétés prises en charge pour une Ressource sont les champs pris en charge de l'objet correspondant.
Les charges utiles des requêtes d’opération de création sont documentées dans la Référence de l'API REST Databricks, et la commande databricks bundle schema affiche tous les schémas d'objets pris en charge. De plus, la commande databricks bundle validate renvoie des avertissements si des propriétés de ressource inconnues sont trouvées dans les fichiers de configuration du bundle.
Pour plus d'informations sur les ressources prises en charge dans les bundles, ainsi que sur la configuration courante et des exemples, consultez les Ressources sur les bundles d'automatisation déclarative et les Exemples de configuration de bundles.
resources:
<resource-type>:
<resource-name>:
<resource-field-name>: <resource-field-value>
Clé | Type | Description |
|---|---|---|
| Carte | Les définitions d'alerte (v2) pour le lot, où chaque clé est le nom de l'alerte. Voir alerte. Ajouté dans la version 0,279.0 de Databricks CLI |
| Carte | Les définitions d'applications Databricks pour le bundle, où chaque clé est le nom de l'application. Consultez l'application. Ajouté dans la version 0.239.0 de Databricks CLI |
| Carte | Les définitions de catalogue (Unity Catalog) pour le bundle, où chaque clé est le nom d'un catalogue. Voir les catalogues. Ajouté dans la version 0.287.0 de la CLI Databricks |
| Carte | Les définitions de cluster pour le bundle, où chaque clé est le nom d'un cluster. See clusters. |
| Carte | Les définitions de tableau de bord pour le bundle, où chaque clé est le nom du tableau de bord. Voir le tableau de bord. Ajouté dans la version 0.232.0 de la CLI Databricks |
| Carte | Les définitions du catalogue de bases de données pour le bundle, où chaque clé est le nom du catalogue de bases de données. Voir database_catalog. Ajouté dans la version 0.265.0 de Databricks CLI |
| Carte | Les définitions d'instances de base de données pour le bundle, où chaque clé est le nom de l'instance de base de données. Voir l'instance de base de données. Ajouté dans la version 0.265.0 de Databricks CLI |
| Carte | Les définitions d'expérience pour le bundle, où chaque clé est le nom de l'expérience. See Experimentation. |
| Carte | Les définitions d'emplacement externe pour le bundle, où chaque clé est le nom de l'emplacement. Voir external_location (Unity Catalog). Ajouté dans la CLI Databricks version 0.289.0 |
| Carte | Les définitions d'agent Genie pour le bundle, où chaque clé est le nom de l'agent Genie. Voir espace_genie. Ajouté à la version 1,3,0 de Databricks CLI |
| Carte | Les définitions du job pour le bundle, où chaque clé est le nom du job. See Job. |
| Carte | Les définitions d'Endpoint de service de modèle pour le bundle, où chaque clé est le nom de l'Endpoint de service de modèle. Voir endpoint de service de modèle. |
| Carte | Les définitions de modèle pour le bundle, où chaque clé est le nom du modèle. Consultez modèle (hérité). |
| Carte | Les définitions de pipeline pour le bundle, où chaque clé est le nom du pipeline. See pipeline. |
| Carte | Les définitions de Branch Postgres pour le bundle, où chaque clé est le nom de la Branch Lakebase. Voir branche Postgres. Ajouté dans la version 0.287.0 de la CLI Databricks |
| Carte | Les définitions de catalogue Postgres pour le bundle, où chaque clé est le nom du catalogue. Voir postgres_catalog. Ajouté dans la version 1.0.0 de Databricks CLI |
| Carte | Les définitions de base de données Postgres pour le bundle, où chaque clé est le nom de la base de données. Voir postgres_database. Ajouté dans la version 1.4.0 de Databricks CLI |
| Carte | Les définitions d'Endpoint Postgres pour le bundle, où chaque clé est le nom de l'Endpoint compute Lakebase. Voir postgres_endpoint. Ajouté dans la version 0.287.0 de la CLI Databricks |
| Carte | Les définitions de projet Postgres pour le bundle, où chaque clé est le nom du projet Lakebase. Voir postgres_project. Ajouté dans la version 0.287.0 de la CLI Databricks |
| Carte | Les définitions de rôle Postgres pour le bundle, où chaque clé est le nom du rôle. Consultez postgres_role. Ajouté dans la version 1.4.0 de Databricks CLI |
| Carte | Les définitions de table synchronisée Postgres pour le bundle, où chaque clé est le nom de la table synchronisée. Voir postgres_synced_table. Ajouté dans la version 1.0.0 de Databricks CLI |
| Carte | Les définitions des moniteurs de qualité pour le bundle, où chaque clé est le nom du moniteur de qualité. Consultez quality_monitor (Unity Catalog). |
| Carte | Les définitions de modèle enregistré pour le bundle, où chaque clé est le nom du modèle enregistré dans Unity Catalog. Consultez registered_model (Unity Catalog). |
| Carte | Les définitions de schéma pour le package, où chaque clé est le nom du schéma. Consultez le schéma (Unity Catalog). |
| Carte | Les définitions de Secret Scope pour le bundle, où chaque clé est le nom du Secret Scope. Voir secret_scope. Ajouté dans la version 0.252.0 de la CLI Databricks |
| Carte | Les définitions de SQL Warehouse pour le bundle, où chaque clé est le nom du SQL Warehouse. Voir sql_warehouse. Ajouté dans la CLI Databricks version 0.260.0 |
| Carte | Les définitions des tables de base de données synchronisées pour le bundle, où chaque clé est le nom de la table de base de données. Voir synced_database_table. Ajouté dans Databricks CLI version 0,266.0 |
| Carte | Les définitions d'endpoint de recherche IA pour le bundle, où chaque clé est le nom de l'endpoint de recherche IA. Voir vector_search_endpoint. Ajouté dans Databricks CLI version 0.298.0 |
| Carte | Les définitions d’index de recherche vectorielle du bundle, où chaque clé est le nom de l’index de recherche vectorielle. Voir vector_search_index. Ajouté dans la version 1.1.0 de la CLI Databricks. |
| Carte | Les définitions de volume pour le bundle, où chaque clé est le nom du volume. Consulter le volume (Unity Catalog). Ajouté dans la version 0.236.0 de la CLI Databricks |
Exemple
La configuration d'exemple suivante définit une ressource de Job :
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 1234-567890-abcde123
notebook_task:
notebook_path: ./hello.py
run_as
Type: Map
L'identité (user_name ou service_principal_name) à utiliser pour exécuter les ressources Declarative Automation Bundles. Il offre la possibilité de séparer l'identité utilisée pour déployer un bundle job ou un pipeline de celle utilisée pour exécuter le job ou le pipeline. Consultez Spécifier une identité d'exécution pour un flux de travail Declarative Automation Bundles.
Clé | Type | Description |
|---|---|---|
| Chaîne | L'ID d'application d'un Service Principal actif. La configuration de ce champ nécessite le rôle |
| Chaîne | L'e-mail d'un utilisateur de Workspace actif. Les utilisateurs non-administrateurs peuvent uniquement définir ce champ sur leur propre e-mail. |
scripts
Type: Map
Les scripts qui peuvent être exécutés à l'aide de bundle run. Chaque script nommé dans le mappage scripts contient du contenu avec des commandes. Voir Exécuter les scripts.
Ajouté dans la version 0.259.0 de la CLI Databricks
scripts:
<script-name>:
<script-field-name>: <script-field-value>
Clé | Type | Description |
|---|---|---|
| Chaîne | Les commandes à exécuter Ajouté dans la version 0.259.0 de la CLI Databricks |
Exemples
scripts:
my_script:
content: uv run pytest -m dev
synchroniser
Type: Map
Les fichiers et chemins d'accès aux fichiers à inclure ou à exclure dans le bundle.
Clé | Type | Description |
|---|---|---|
| Séquence | Une liste de fichiers ou de dossiers à exclure du bundle. Voir inclure et exclure. |
| Séquence | Une liste de fichiers ou de dossiers à inclure dans le bundle. Voir inclure et exclure. |
| Séquence | Les chemins des dossiers locaux, qui peuvent se trouver en dehors de la racine du bundle, à synchroniser avec le workspace lorsque le bundle est déployé. Voir sync.paths. |
inclure et exclure
Les mappages include et exclude dans le mappage sync spécifient une liste de fichiers ou de dossiers à inclure ou à exclure des déploiements de bundles, en fonction des règles suivantes :
- Selon toute liste de fichiers et de chemins de type glob dans un fichier
.gitignoreà la racine du bundle, le mappageincludepeut contenir une liste de fichiers de type glob, de chemins de type glob ou les deux, par rapport à la racine du bundle, à inclure explicitement. - En fonction de toute liste de fichiers et de chemins d'accès globaux dans un fichier
.gitignoreà la racine du bundle, plus la liste de fichiers et de chemins d'accès globaux dans le mappageinclude, le mappageexcludepeut contenir une liste de fichiers globaux, de chemins d'accès globaux, ou les deux, par rapport à la racine du bundle, à exclure explicitement.
Tous les chemins vers les fichiers et dossiers spécifiés sont relatifs à l'emplacement du fichier de configuration du bundle dans lequel ils sont spécifiés.
La syntaxe des modèles de fichiers et de chemins include et exclude suit la syntaxe de modèle standard .gitignore. Voir format de modèle gitignore.
Par exemple, si le fichier .gitignore suivant contient les entrées suivantes :
.databricks
my_package/dist
Et le fichier de configuration du bundle contient le mappage include suivant :
sync:
include:
- my_package/dist/*.whl
Ensuite, tous les fichiers du dossier my_package/dist avec une extension de fichier *.whl sont inclus. Tous les autres fichiers du dossier my_package/dist ne sont pas inclus.
Toutefois, si le fichier de configuration du bundle contient également le mappage exclude suivant :
sync:
include:
- my_package/dist/*.whl
exclude:
- my_package/dist/delete-me.whl
Ensuite, tous les fichiers du dossier my_package/dist avec une extension de fichier *.whl, à l'exception du fichier nommé delete-me.whl, sont inclus. Tout autre fichier dans le dossier my_package/dist n'est pas non plus inclus.
Le mappage sync peut également être déclaré dans le mappage targets pour une cible spécifique. Tout mappage sync déclaré dans une cible est fusionné avec toutes les déclarations de mappage sync de niveau supérieur. Par exemple, en continuant avec l'exemple précédent, le mappage include au niveau targets fusionne avec le mappage include dans le mappage sync de niveau supérieur :
targets:
dev:
sync:
include:
- my_package/dist/delete-me.whl
Les modèles include et exclude filtrent uniquement les fichiers trouvés dans les dossiers listés dans sync.paths. Il n'est pas possible d'ajouter des fichiers à partir d'un dossier qu'aucun chemin de synchronisation ne couvre. Parce que paths est par default la racine du bundle (.), include et exclude s'appliquent à l'ensemble de la racine du bundle à moins que vous ne restreigniez paths.
sync.paths
Le mappage sync peut contenir un mappage paths qui spécifie les chemins locaux à synchroniser avec le workspace. Le mappage paths vous permet de partager des fichiers courants entre les bundles et peut être utilisé pour synchroniser des fichiers situés en dehors de la racine du bundle. (La racine du bundle est l'emplacement du fichier databricks.yml.) Ceci est particulièrement utile lorsque vous avez un seul repository qui héberge plusieurs bundles et que vous souhaitez partager des bibliothèques, des fichiers de code ou la configuration.
Les chemins spécifiés doivent être relatifs aux fichiers et aux répertoires ancrés dans le dossier où le mappage paths est défini. Si une ou plusieurs valeurs de chemin remontent dans l'arborescence jusqu'à un ancêtre de la racine du bundle, le chemin racine est déterminé dynamiquement pour garantir que la structure du dossier reste intacte. Par exemple, si le dossier racine du bundle est nommé my_bundle, alors cette configuration dans databricks.yml synchronise le dossier common situé un niveau au-dessus de la racine du bundle et la racine du bundle elle-même :
sync:
paths:
- ../common
- .
Un déploiement de ce bundle entraîne la structure de dossiers suivante dans le Workspace :
common/
common_file.txt
my_bundle/
databricks.yml
src/
...
Combinaison de chemins avec inclusion et exclusion
Les mappages paths, include et exclude sont appliqués dans l'ordre : paths sélectionne les dossiers à synchroniser, puis include et exclude filtrent les fichiers trouvés dans ces dossiers. Écrivez les globs include et exclude par rapport à la racine du bundle (l'emplacement du fichier databricks.yml), de la même manière que lorsque paths n'est pas défini. Lorsqu'une valeur paths traverse la racine du bundle et que la racine de synchronisation s'étend à un ancêtre commun, la CLI Databricks ré-ancre automatiquement vos globs include et exclude à la nouvelle racine de synchronisation, de sorte que vous n'avez pas besoin de les ajuster.
L'exemple suivant synchronise à la fois le dossier ../common et la racine du bundle, inclut tous les fichiers .whl que .gitignore exclurait autrement, et exclut un seul fichier :
sync:
paths:
- ../common
- .
include:
- my_package/dist/*.whl
exclude:
- my_package/dist/delete-me.whl
cibles
Type: Map
Définit les contextes de cible de déploiement pour le bundle. Chaque target est une collection unique d'artefacts, de paramètres du Workspace Databricks et parfois de détails de ressources spécifiques à la cible.
Le mappage targets se compose d'un ou de plusieurs mappages cibles, chacun devant avoir un nom programmatique (ou logique) unique. Ce mappage est facultatif mais fortement recommandé.
Les paramètres de la correspondance targets prévalent sur les paramètres spécifiés dans les correspondances Workspace, artefacts et Ressources de niveau supérieur.
Une cible peut également remplacer les valeurs de toutes les variables de niveau supérieur.
targets:
<target-name>:
<target-field-name>: <target-field-value>
Clé | Type | Description |
|---|---|---|
| Carte | Les artefacts à inclure dans le déploiement cible. Voir les artefacts. |
| Carte | Les attributs du bundle lors du déploiement vers cette cible. Voir bundle. |
| Chaîne | L'identifiant du cluster à utiliser pour cette cible. |
| Chaîne | Obsolète. L'ID du compute à utiliser pour cette cible. |
| Booléen | Que cette cible soit la cible default. Voir targets. name .default. |
| Carte | Les paramètres de contrôle de version Git pour la cible. Voir Git. |
| Chaîne | Le mode de déploiement pour la cible. Les valeurs valides sont |
| Séquence | Les autorisations pour le déploiement et l'exécution du bundle dans la cible. Afficher les autorisations. |
| Carte | Les préréglages de déploiement pour la cible. Voir targets. name .presets. |
| Carte | Les définitions de ressources pour la cible. See Ressources. |
| Carte | L'identité à utiliser pour exécuter le bundle. Voir run_as et Spécifier une identité d'exécution pour un workflow Declarative Automation Bundles. |
| Carte | Les chemins locaux à synchroniser avec le Workspace cible lorsqu'un bundle est exécuté ou déployé. Voir synchronisation. |
| Carte | Les définitions des variables personnalisées pour la cible. Consultez les variables. |
| Carte | Le Databricks Workspace pour la cible. See Workspace. |
targets. name .« default »
Pour spécifier une default cible pour les commandes de bundle, définissez le mappage default sur true. Par exemple, cette cible nommée dev est la default :
targets:
dev:
default: true
Si un target default n'est pas configuré, ou si vous souhaitez valider, déployer et exécuter des Job ou des pipeline au sein d'un target spécifique, utilisez l'option -t des commandes de bundle.
Les commandes suivantes valident, déploient et exécutent my_job dans les cibles dev et prod :
databricks bundle validate
databricks bundle deploy -t dev
databricks bundle run -t dev my_job
databricks bundle validate
databricks bundle deploy -t prod
databricks bundle run -t prod my_job
L'exemple suivant déclare deux cibles. La première cible porte le nom dev et est la cible default utilisée lorsqu'aucune cible n'est spécifiée pour les commandes de bundle. La deuxième cible porte le nom prod et n'est utilisée que lorsque cette cible est spécifiée pour les commandes de bundle.
targets:
dev:
default: true
prod:
workspace:
host: https://<production-workspace-url>
targets. name .mode
Pour faciliter le développement et les meilleures pratiques CI/CD, Declarative Automation Bundles propose des modes de déploiement pour les cibles qui définissent des comportements par default pour les flux de travail de pré-production et de production. Certains comportements sont également configurables à l'aide de targets. name .presets.
Pour plus de détails, consultez les modes de déploiement des Declarative Automation Bundles.
Pour définir des identités d’exécution pour les bundles, vous pouvez spécifier run_as pour chaque cible, comme décrit dans Spécifier une identité d’exécution pour un workflow de bundles d’automatisation déclarative.
Pour spécifier qu'une cible est traitée comme une cible de développement, ajoutez l'ensemble de mappage mode à development. Pour spécifier qu'une cible est traitée comme une cible de production, ajoutez l'ensemble de mappage mode à production. Par exemple, cette cible nommée prod est traitée comme une cible de production :
targets:
prod:
mode: production
targets. name .presets
Vous pouvez personnaliser certains des comportements de déploiement cible mode à l'aide du mappage presets.
Pour une liste des préréglages disponibles, consultez Préréglages personnalisés.
L'exemple suivant montre une cible de production personnalisée qui préfixe et taggue toutes les ressources de production :
targets:
prod:
mode: production
presets:
name_prefix: 'production_' # prefix all resource names with production_
tags:
prod: true
variables
Type: Map
Définit une variable personnalisée pour le bundle. Pour chaque variable, définissez une description facultative, une valeur default, si la variable personnalisée est un type complexe ou une recherche pour récupérer une valeur d'ID, en utilisant le format suivant :
variables:
<variable-name>:
description: <variable-description>
default: <optional-default-value>
type: <optional-type-value> # "complex" is the only valid value
lookup:
<optional-object-type>: <optional-object-name>
Les variables sont supposées être de type string, sauf si type est défini sur complex. Consultez Définir une variable complexe.
Pour référencer une variable personnalisée dans la configuration du bundle, utilisez la substitution ${var.<variable_name>}.
Pour plus d'informations sur les variables personnalisées et les substitutions, consultez Substitutions et variables dans les Bundles d'automatisation déclaratifs.
Clé | Type | Description |
|---|---|---|
| Tout | La valeur par default de la variable. |
| Chaîne | La description de la variable. |
| Carte | Le nom de l'objet |
| Chaîne | Le type de la variable, simple ou complexe. Ne définissez cette clé que si la variable est complexe. Valeurs valides : |
variables. name .lookup
Type: Map
Le nom de l'objet alert, cluster_policy, cluster, dashboard, instance_pool, Job, metastore, pipeline, query, Service Principal ou warehouse pour lequel récupérer un ID. Pour information sur l'utilisation de la recherche, consultez Récupérer la valeur d'ID d'un objet.
Clé | Type | Description |
|---|---|---|
| Chaîne | Le nom de l'alerte pour laquelle récupérer un ID. |
| Chaîne | Le nom du cluster pour lequel récupérer un ID. |
| Chaîne | Le nom de la cluster_policy pour laquelle récupérer un ID. |
| Chaîne | Le nom du tableau de bord pour lequel récupérer un ID. |
| Chaîne | Le nom du pool d'instances pour lequel récupérer un ID. |
| Chaîne | Le nom du Job pour lequel récupérer un ID. |
| Chaîne | Le nom du metastore pour lequel récupérer un ID. |
| Chaîne | Le nom de la notification_destination pour laquelle récupérer un ID. Ajouté dans la version 0.236.0 de la CLI Databricks |
| Chaîne | Le nom du pipeline pour lequel récupérer un ID. |
| Chaîne | Le nom de la query pour laquelle récupérer un ID. |
| Chaîne | Le nom du Service Principal pour lequel récupérer un ID. |
| Chaîne | Le nom du warehouse pour lequel récupérer un ID. |
Workspace
Type: Map
Définit le Workspace Databricks pour le bundle. Le fichier de configuration du bundle peut contenir une seule cartographie de niveau supérieur workspace pour spécifier les paramètres de Workspace Databricks non par défaut à utiliser.
Les chemins d’accès valides au workspace Databricks commencent soit par /Workspace, soit, pour les artefacts, /Volumesest également pris en charge. Les chemins d’accès personnalisés au workspace sont automatiquement préfixés par /Workspace; par conséquent, si vous utilisez une substitution de chemin d’accès au workspace dans votre chemin d’accès personnalisé, par exemple ${workspace.file_path}, vous n’avez pas besoin de préfixer le chemin d’accès par /Workspace.
Clé | Type | Description |
|---|---|---|
| Chaîne | L’ID de compte Databricks. Ajouté à la version 0,296.0 de Databricks CLI |
| Chaîne | Le chemin d'artefact à utiliser dans le workspace pour les déploiements et les exécutions de job. |
| Chaîne | Type d’authentification à utiliser, particulièrement important dans les cas où l’interface CLI Databricks déduit un type d’authentification inattendu. Consultez Autoriser l’accès aux ressources Databricks. |
| Chaîne | L'ID du client Azure. Consultez Workspace Authentication. |
| Chaîne | L'environnement Azure. Consultez Workspace Authentication. |
| Chaîne | L'ID de l'application de connexion Azure. Consultez Workspace Authentication. |
| Chaîne | L'ID du tenant Azure. Consultez Workspace Authentication. |
| Booléen | Utilisation de MSI pour Azure. Consultez Workspace Authentication. |
| Chaîne | L'ID de ressource du Workspace Azure. Consultez Workspace Authentication. |
| Chaîne | L'ID du client pour le workspace. Consultez Workspace Authentication. |
| Chaîne | Le chemin du fichier à utiliser dans le Workspace pour les déploiements et les exécutions de Job. Voir Workspace.file_path. |
| Chaîne | Le nom du compte de service Google. Consultez Workspace Authentication. |
| Chaîne | L'URL d'hôte du workspace Databricks. Consultez Noms, URL et ID d’instance du Workspace. La définition du mappage |
| Chaîne | Le nom de profil du Workspace Databricks. Consultez workspace.profile. |
| Chaîne | Le chemin des ressources du Workspace. Ajouté dans la version 0.230.0 de Databricks CLI |
| Chaîne | Le chemin racine du Workspace Databricks. Consultez workspace.root_path. |
| Chaîne | Le chemin d'état du Workspace. Cette clé correspond par default au chemin par default de |
| Entier | L’ID du Workspace Databricks. Ajouté dans la version 0.285.0 de Databricks CLI |
Authentification du Workspace
Le mappage de workspace peut également contenir des mappages pour spécifier le mécanisme d'authentification Databricks à utiliser. S'ils ne sont pas spécifiés dans le mappage de workspace de niveau supérieur, ils doivent être spécifiés dans un mappage de workspace en tant qu'enfant d'une ou plusieurs des cibles dans le mappage de cibles de niveau supérieur.
- Pour l'authentification OAuth machine-to-machine (M2M), le mapping
client_idest utilisé. Vous pouvez également définir cette valeur dans la variable d'environnement localeDATABRICKS_CLIENT_ID. Ou vous pouvez créer un profil de configuration avec la valeurclient_id, puis spécifier le nom du profil avec le mappageprofile(ou en utilisant les options--profileou-plors de l'exécution des commandes validate, deploy, run et destroy du bundle avec le Databricks CLI). Voir Autoriser l’accès du Service Principal à Databricks avec OAuth.
Vous ne pouvez pas spécifier de valeur de secret client dans le fichier de configuration du bundle. Au lieu de cela, définissez la variable d'environnement locale DATABRICKS_CLIENT_SECRET. Ou vous pouvez ajouter la valeur client_secret à un profil de configuration, puis spécifier le nom du profil avec le mappage profile (ou en utilisant les options --profile ou -p lors de l'exécution des commandes de validation, de déploiement, d'exécution et de destruction du bundle avec la CLI Databricks).
workspace.root_path
Ce mappage workspace peut contenir un mappage root_path pour spécifier un chemin racine non-default à utiliser dans le Workspace pour les déploiements et les exécutions de workflow, par exemple :
workspace:
root_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}
Par default, pour root_path, le CLI Databricks utilise le chemin par default de /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/${bundle.target}, qui utilise des substitutions.
N'utilisez pas un chemin /Shared (tel que /Shared/.bundle/prod/...) comme root_path de production. Le dossier /Shared est accessible en écriture par tous les utilisateurs du workspace, ce qui signifie que n'importe qui pourrait modifier votre code de production déployé, les définitions de job et les bibliothèques. Déployez plutôt dans un dossier dont l'accès en écriture est contrôlé par les ACL de dossier, et n'accordez l'accès en écriture qu'à l'identité qui déploie le bundle.
Databricks recommande de déployer des bundles de production à l'aide d'un Service Principal et de restreindre l'accès en écriture à la production root_path à ce Service Principal.
workspace.artifact_path
Ce mappage workspace peut également contenir un mappage artifact_path pour spécifier un chemin d'artefact non default à utiliser dans le Workspace pour les déploiements et les exécutions de jobs, par exemple :
workspace:
artifact_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}/artifacts
Par default, pour artifact_path, le CLI Databricks utilise le chemin par default de ${workspace.root}/artifacts, qui utilise des substitutions.
Le mappage artifact_path ne prend pas en charge les chemins Databricks File System (DBFS).
workspace.file_path
Ce mappage workspace peut également contenir un mappage file_path pour spécifier un chemin de fichier non default à utiliser dans le Workspace pour les déploiements et les exécutions de job, par exemple :
workspace:
file_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}/files
Par default, pour file_path, le CLI Databricks utilise le chemin par default de ${workspace.root}/files, qui utilise des substitutions.
Vous ne pouvez pas spécifier de variables personnalisées pour ces valeurs d’authentification en utilisant la syntaxe ${var.*}.
Workspace.profil
Databricks vous recommande d'utiliser le mappage host (ou les options --profile ou -p lorsque vous exécutez les commandes de validation, de déploiement, d'exécution et de suppression du bundle avec la CLI Databricks) au lieu du mappage profile, car cela rend vos fichiers de configuration de bundle plus portables.
Le mappage profile spécifie le nom d'un profil de configuration à utiliser pour s'authentifier sur ce Workspace Databricks. Ce profil de configuration correspond à celui que vous avez créé lorsque vous avez configuré la CLI Databricks.
Objets courants
git
Type: Map
Définit les détails du contrôle de version git. Ceci est utile pour propager les métadonnées de déploiement qui peuvent être utilisées ultérieurement pour identifier les Ressources. Par exemple, vous pouvez tracer l'origine du repository d'un Job déployé par CI/CD.
Chaque fois que vous exécutez une commande bundle telle que validate, deploy ou run, la commande bundle renseigne l'arborescence de configuration de la commande avec les paramètres default suivants :
Pour récupérer ou remplacer les paramètres Git, votre bundle doit se trouver dans un répertoire associé à un repository Git, par exemple un répertoire local initialisé en exécutant la commande git clone. Si le répertoire n'est pas associé à un repository Git, ces paramètres Git sont vides.
Clé | Type | Description |
|---|---|---|
| Chaîne | Le nom de la Branch Git actuelle. C'est la même valeur que vous obtiendriez si vous exécutiez la commande |
| Chaîne | L'URL d'origine du repository. C'est la même valeur que vous obtiendriez si vous exécutiez la commande |
Exemples
Vous pouvez remplacer les paramètres origin_url et branch dans le mappage git de votre mappage bundle de niveau supérieur si nécessaire :
bundle:
git:
origin_url: <some-non-default-origin-url>
branch: <some-non-current-branch-name>