Динамическое определение параметров артефакта в пакетах ресурсов 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>:
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.
Если какой-либо параметр артефакта определен как в сопоставлении верхнего уровня 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. Конфликтующие параметры артефакта, определенные в нескольких сопоставлениях артефактов
В этом примере определяется как в сопоставлении верхнего уровняartifacts
, path
так и в сопоставленииartifacts
.targets
В этом примере path
в artifacts
сопоставлении имеет приоритет path
в сопоставлении targets
верхнего уровня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",
"...": "..."
}
},
"...": "..."
}