Поделиться через


Определение параметров артефакта в пакетах ресурсов Databricks

В этой статье описывается, как переопределить параметры артефактов в пакетах ресурсов Databricks. См. Что такое пакеты ресурсов Databricks?

В Azure Databricks , файл конфигурации пакета, можно переопределить параметры артефакта в сопоставлении artifacts верхнего уровня с параметрами артефакта в сопоставлении targets, например:

# ...
artifacts:
  <some-unique-programmatic-identifier-for-this-artifact>:
    # Artifact settings.

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    artifacts:
      <the-matching-programmatic-identifier-for-this-artifact>:
        # Any more artifact settings to join with the settings from the
        # matching top-level artifacts mapping.

Если какой-либо параметр артефакта определен как в сопоставлении artifacts верхнего уровня, так и в сопоставлении targets для одного артефакта, то параметр в сопоставлении targets имеет приоритет над параметром в сопоставлении artifacts верхнего уровня.

Пример 1 — Настройки артефактов, определённые только в сопоставлении артефактов верхнего уровня

Чтобы продемонстрировать, как это работает на практике, в следующем примере path определен в сопоставлении artifacts верхнего уровня, которое определяет все параметры артефакта (многоточия указывают на пропущенное содержимое для краткости):

# ...
artifacts:
  my-artifact:
    type: whl
    path: ./my_package
# ...

При запуске databricks bundle validate для этого примера результирующий граф будет следующим:

{
  "...": "...",
  "artifacts": {
    "my-artifact": {
      "type": "whl",
      "path": "./my_package",
      "...": "..."
    }
  },
  "...": "..."
}

Пример 2. Конфликтующие параметры артефакта, определенные в нескольких сопоставлениях артефактов

В этом примере path определён как в отображении artifacts верхнего уровня, так и в отображении artifacts в targets. В этом примере path в сопоставлении artifacts в targets имеет приоритет над path в сопоставлении artifacts верхнего уровня, чтобы определить параметры артефакта (многоточия указывают на пропущенное содержимое для краткости):

# ...
artifacts:
  my-artifact:
    type: whl
    path: ./my_package

targets:
  dev:
    artifacts:
      my-artifact:
        path: ./my_other_package
    # ...

При выполнении databricks bundle validate для этого примера полученный граф выглядит следующим образом (пропущенные части указаны многоточиями для краткости):

{
  "...": "...",
  "artifacts": {
    "my-artifact": {
      "type": "whl",
      "path": "./my_other_package",
      "...": "..."
    }
  },
  "...": "..."
}