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


Динамическое определение параметров артефакта в пакетах ресурсов 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",
      "...": "..."
    }
  },
  "...": "..."
}