Sdílet prostřednictvím


Režimy nasazení balíku prostředků Databricks

Tento článek popisuje syntaxi pro režimy nasazení balíku prostředků Databricks. Sady prostředků umožňují programovou správu pracovních postupů Azure Databricks. Zjistěte , co jsou sady prostředků Databricks?

V pracovních postupech CI/CD vývojáři obvykle kódují, testují, nasazují a spouštějí řešení v různých fázích nebo režimech. Nejjednodušší sada režimů například zahrnuje vývojový režim pro předprodukční ověřování, po kterém následuje produkční režim pro ověřené dodávky. Sady prostředků Databricks poskytují volitelnou kolekci výchozích chování, která odpovídají jednotlivým režimům. Pokud chcete toto chování použít pro konkrétní cíl, nastavte mode nebo nakonfigurujte presets pro cíl v mapování konfigurace targets. Pro informace o mapování cílů konfigurace balíčku se podívejte na .

Režim vývoje

Pokud chcete balíček nasadit ve vývojovém režimu, musíte nejprve přidat mapování mode, které je nastavené na development, do zamýšleného cíle. Například tento cíl s názvem dev je považován za vývojový cíl.

targets:
  dev:
    mode: development

Nasazení cíle v režimu vývoje spuštěním databricks bundle deploy -t <target-name> příkazu implementuje následující chování, které lze přizpůsobit pomocí předvoleb:

  • Předřadí všechny prostředky, které nejsou nasazené jako soubory nebo poznámkové bloky, s předponou [dev ${workspace.current_user.short_name}] a označí každou nasazenou úlohu a kanál značkou dev Azure Databricks.
  • Označí všechny související nasazené deklarativní datové toky Lakeflow Spark jako development: true.
  • Povolí použití --cluster-id <cluster-id> v souvisejících voláních příkazu bundle deploy, kterým přepíše veškeré existující definice clusteru, které jsou již zadány v souvisejícím konfiguračním souboru balíčku. Místo použití --cluster-id <cluster-id> v souvisejících voláních příkazu bundle deploy můžete zde nastavit mapování pomocí cluster_id nebo jako podřízené mapování k mapování bundle na ID clusteru, který chcete použít.
  • Pozastaví všechny plány a triggery na nasazených prostředcích, jako jsou úlohy nebo monitorování kvality. Zrušte pozastavení plánů a aktivačních událostí pro jednotlivé úlohy nastavením schedule.pause_status na UNPAUSED.
  • Umožňuje souběžná spuštění na všech nasazených úlohách pro rychlejší iteraci. Zakažte souběžná spuštění pro jednotlivé úlohy nastavením max_concurrent_runs na 1.
  • Zakáže zámek nasazení pro rychlejší iteraci. Tento zámek zabraňuje konfliktům nasazení, ke kterým v režimu vývoje pravděpodobně nedojde. Znovu povolte zámek nastavením bundle.deployment.lock.enabled na true.

Produkční režim

Pro nasazení sady v produkčním režimu musíte nejprve přidat mapování mode, které je nastaveno na production, do zamýšleného cíle. Tento název cíle prod se například považuje za produkční cíl:

targets:
  prod:
    mode: production

Nasazení cíle v produkčním režimu spuštěním databricks bundle deploy -t <target-name> příkazu implementuje následující chování:

  • Ověří, že všechny související nasazené deklarativní pipeliny Lakeflow Spark jsou označené jako development: false.

  • Ověří, že aktuální větev Gitu je rovna větvi Gitu, která je zadaná v cíli. Zadání větve Git v cíli je volitelné a dá se provést s další git vlastností následujícím způsobem:

    git:
      branch: main
    

    Toto ověření lze přepsat zadáním --force při nasazování.

  • Databricks doporučuje používat služební principály pro produkční nasazení. Nastavením run_as na principál služby můžete toto vynutit. Viz služební vlastníci a Stanovení identity spuštění pro pracovní postup Databricks Asset Bundles. Pokud nepoužíváte aplikační identity, poznamenejte si následující chování:

    • Ověří, že mapování artifact_path, file_path, root_path nebo state_path nejsou přepsána konkrétnímu uživateli.
    • Ověří, že mapování run_as a permissions jsou zadána, aby bylo jasné, které identity mají specifická oprávnění pro nasazení.
  • Na rozdíl od předchozího chování pro nastavení mapování mode na development, nastavení mapování mode na production neumožňuje přepsání existujících definic clusteru, které jsou zadány v souvisejícím konfiguračním souboru sady, například pomocí možnosti --compute-id <cluster-id> nebo mapování compute_id.

Vlastní předvolby

Sady prostředků Databricks podporují konfigurovatelné předvolby cílů, které umožňují přizpůsobit chování cílů. Dostupné předvolby jsou uvedeny v následující tabulce:

Poznámka:

Pokud není v tabulce níže uvedena výjimka, a jsou-li nastaveny jak mode, tak presets, pak přednastavení přebírají kontrolu nad výchozím chováním režimu a nastavení jednotlivých prostředků mají přednost před přednastavením. Pokud je například max_concurrent_runs pro úlohu 10, ale předvolba jobs_max_concurrent_runs je nastavená na 20, maximální počet souběžných spuštění úlohy je 10.

Předvolba Popis
artifacts_dynamic_version Určuje, jestli se má dynamicky aktualizovat verze whl artefaktů během nasazování. Platné hodnoty jsou true nebo false. Pokud je zadané nastavení konfigurace nejvyšší úrovně artifacts.dynamic_version, přepíše tuto předvolbu.
jobs_max_concurrent_runs Počet maximálních povolených souběžných spuštění pro úlohy
name_prefix Řetězec předpony, který se přidá před názvy zdrojů.
pipelines_development Určuje, jestli je potrubí ve vývojovém režimu. Platné hodnoty jsou true nebo false.
source_linked_deployment Určuje, jestli prostředky vytvořené během nasazení odkazují na zdrojové soubory v pracovním prostoru místo jejich kopií v pracovním prostoru.
tags Sada tagů ve formátu key:value, které se vztahují na všechny zdroje podporující tagy, včetně úloh a experimentů. Sady prostředků Databricks nepodporují tagy pro prostředek schema.
trigger_pause_status Stav pozastavení, který se použije pro všechny triggery a plány. Platné hodnoty jsou PAUSED nebo UNPAUSED.
Je-li mode nastavena na development, trigger_pause_status je vždy PAUSED.

Následující příklad ukazuje vlastní konfiguraci předvoleb pro cíl s názvem dev:

targets:
  dev:
    presets:
      name_prefix: 'testing_' # prefix all resource names with testing_
      pipelines_development: true # set development to true for pipelines
      trigger_pause_status: PAUSED # set pause_status to PAUSED for all triggers and schedules
      jobs_max_concurrent_runs: 10 # set max_concurrent runs to 10 for all jobs
      tags:
        department: finance