Definir configurações de artefato dinamicamente em Databricks ativo Bundles

Este artigo descreve como substituir as configurações de artefatos em Databricks ativo Bundles. Consulte O que são pacotes Databricks ativos?

Nos arquivos de configuração do pacote do Databricks, você pode join as configurações do artefato em um mapeamento artifacts de nível superior com as configurações do artefato em um mapeamento targets, por exemplo (reticências indicam conteúdo omitido, por questões de brevidade):

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

Se qualquer configuração de artefato for definida no mapeamento artifacts de nível superior e no mapeamento targets para o mesmo artefato, a configuração no mapeamento targets terá precedência sobre a configuração no mapeamento artifacts de nível superior .

Exemplo 1: Configurações de artefato definidas apenas no mapeamento de artefatos de nível superior

Para demonstrar como isso funciona na prática, no exemplo a seguir, path é definido no mapeamento artifacts de nível superior, que define todas as configurações do artefato (reticências indicam conteúdo omitido, por questões de brevidade):

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

Quando você executa databricks bundle validate para este exemplo, o gráfico resultante é (reticências indicam conteúdo omitido, por questões de brevidade):

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

Exemplo 2: Configurações de artefato conflitantes definidas em vários mapeamentos de artefatos

Neste exemplo, path é definido no mapeamento artifacts de nível superior e no mapeamento artifacts em targets. Neste exemplo, path no mapeamento artifacts em targets tem precedência sobre path no mapeamento artifacts de nível superior, para definir as configurações do artefato (reticências indicam conteúdo omitido, por questões de brevidade):

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

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

Quando você executa databricks bundle validate para este exemplo, o gráfico resultante é (reticências indicam conteúdo omitido, por questões de brevidade):

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