Partager via


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",
      "...": "..."
    }
  },
  "...": "..."
}