Udostępnij za pośrednictwem


Dynamiczne definiowanie ustawień artefaktu w pakietach zasobów usługi Databricks

W tym artykule opisano sposób zastępowania ustawień artefaktów w pakietach zasobów usługi Databricks. Zobacz Co to są pakiety zasobów usługi Databricks?

W plikach konfiguracji pakietu usługi Azure Databricks można dołączyć ustawienia artefaktów w mapowaniu najwyższego targets poziomu artifacts z ustawieniami artefaktu w mapowaniu, na przykład (wielokropek wskazuje pominiętą zawartość w celu zwięzłości):

# ...
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.

Jeśli dowolne ustawienie artefaktu jest zdefiniowane zarówno w mapowaniu najwyższego poziomu artifacts , jak i targets mapowaniu dla tego samego artefaktu, ustawienie w targets mapowaniu ma pierwszeństwo przed ustawieniem w mapowaniu najwyższego poziomu artifacts .

Przykład 1: Ustawienia artefaktów zdefiniowane tylko w mapowaniu artefaktów najwyższego poziomu

Aby zademonstrować, jak to działa w praktyce, path w poniższym przykładzie zdefiniowano w mapowaniu najwyższego poziomu artifacts , które definiuje wszystkie ustawienia artefaktu (wielokropek wskazuje pominiętą zawartość w celu zwięzłości):

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

Po uruchomieniu databricks bundle validate tego przykładu wynikowy wykres to (wielokropek wskazuje pominiętą zawartość w celu zwięzłości):

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

Przykład 2. Ustawienia artefaktu powodujące konflikt zdefiniowane w wielu mapowaniach artefaktów

W tym przykładzie path zdefiniowano zarówno mapowanie najwyższego poziomuartifacts, jak i w mapowaniu w targetspliku artifacts . W tym przykładzie pathartifacts w mapowaniu w targets obiekcie pierwszeństwo path przed mapowaniem najwyższego poziomu artifacts , aby zdefiniować ustawienia artefaktu (wielokropek wskazuje pominiętą zawartość dla zwięzłości):

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

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

Po uruchomieniu databricks bundle validate tego przykładu wynikowy wykres to (wielokropek wskazuje pominiętą zawartość w celu zwięzłości):

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