Compartilhar via


Definir as configurações de artefato dinamicamente nos Pacotes de Ativos do Databricks

Este artigo descreve como substituir as configurações de artefatos em Pacotes de Ativos do Databricks. Confira O que são Pacotes de Ativos do Databricks?

Nos arquivos de configuração do pacote do Azure Databricks, você pode unir as configurações de artefato em um mapeamento de nível artifacts superior com as configurações de artefato em um mapeamento targets, por exemplo (reticências indicam conteúdo omitido, para 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 de nível superior artifacts e no mapeamento targets para o mesmo artefato, a configuração no mapeamento targets terá precedência sobre a configuração no mapeamento de nível superior artifacts.

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 de nível superior artifacts, que define todas as configurações do artefato (reticências indicam conteúdo omitido, para resumir):

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

Quando você executa databricks bundle validate para este exemplo, o grafo resultante é (reticências indicam conteúdo omitido, para resumir):

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

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

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

# ...
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 grafo resultante é (reticências indicam conteúdo omitido, para resumir):

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