Définir de manière dynamique les paramètres d’artefact dans les bundles de ressources Databricks
Cet article explique comment remplacer les paramètres d’artefact dans les bundles de ressources Databricks. Consultez Que sont les packs de ressources Databricks ?
Dans les fichiers de configuration de packs Azure Databricks, vous pouvez joindre les paramètres d’artefact d’un mappage de artifacts
de premier niveau aux paramètres d’artefact d’un mappage de targets
, par exemple (les points de suspension indiquent du contenu omis, par souci de concision) :
# ...
artifacts:
<some-unique-programmatic-identifier-for-this-artifact>:
# Artifact settings.
targets:
<some-unique-programmatic-identifier-for-this-target>:
resources:
artifacts:
<the-matching-programmatic-identifier-for-this-artifact>:
# Any more artifact settings to join with the settings from the
# matching top-level artifacts mapping.
Si un paramètre d’artefact est défini à la fois dans le mappage de artifacts
de premier niveau et le mappage de targets
pour le même artefact, le paramètre du mappage de targets
est prioritaire sur celui du mappage de artifacts
de premier niveau.
Exemple 1 : Paramètres d’artefact définis uniquement dans le mappage d’artefacts de premier niveau
Pour montrer comment cela fonctionne dans la pratique, dans l’exemple suivant, path
est défini dans le mappage de artifacts
de premier niveau, qui définit tous les paramètres de l’artefact (les points de suspension indiquent du contenu omis, par souci de concision) :
# ...
artifacts:
my-artifact:
type: whl
path: ./my_package
# ...
Quand vous exécutez databricks bundle validate
pour cet exemple, le graphe résultant est (les points de suspension indiquent du contenu omis, par souci de concision) :
{
"...": "...",
"artifacts": {
"my-artifact": {
"type": "whl",
"path": "./my_package",
"...": "..."
}
},
"...": "..."
}
Exemple 2 : Paramètres d’artefact en conflit définis dans plusieurs mappages d’artefacts
Dans cet exemple, path
est défini à la fois dans le mappage de artifacts
de premier niveau ainsi que dans le mappage de artifacts
dans targets
. Dans cet exemple, path
dans le mappage de artifacts
dans targets
est prioritaire sur path
dans le mappage de artifacts
de premier niveau, pour définir les paramètres de l’artefact (les points de suspension indiquent du contenu omis, par souci de concision) :
# ...
artifacts:
my-artifact:
type: whl
path: ./my_package
targets:
dev:
artifacts:
my-artifact:
path: ./my_other_package
# ...
Quand vous exécutez databricks bundle validate
pour cet exemple, le graphe résultant est (les points de suspension indiquent du contenu omis, par souci de concision) :
{
"...": "...",
"artifacts": {
"my-artifact": {
"type": "whl",
"path": "./my_other_package",
"...": "..."
}
},
"...": "..."
}