Nasazení režimů deklarativních balíčků automatizace

Tato stránka popisuje syntaxi pro režimy nasazení deklarativní automatizace. Sady prostředků umožňují programovou správu pracovních postupů Azure Databricks. Podívejte se na to, co jsou deklarativní balíčky automatizace.

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. Deklarativní balíčky automatizace poskytují volitelnou kolekci výchozích chování, která odpovídají jednotlivým těmto režimům.

Režimy nasazení jsou volitelné. Sady můžete nasadit bez nastavení mode nebo konfigurace presets. Režimy nasazení jsou pohodlné pro použití skupiny běžně používaných nastavení najednou.

Režim vývoje

Pokud chcete sadu nasadit ve vývojovém režimu, přidejte mode mapování nastavené na development na zamýšlený cíl. Viz mapování cílů konfigurace balíčku. 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é kanály Lakeflow 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. Pro obnovení pozastavení jednotlivé úlohy nastavte the pause_status to UNPAUSED pro mapování, které definuje, jak běží. Například schedule.pause_status pro plánovanou práci nebo continuous.pause_status pro kontinuální práci. Podívejte se na úlohu.
  • 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

Pokud chcete nasadit sadu v produkčním režimu, přidejte mode mapování nastavené na productionzamýšlený cíl. Viz mapování cílů konfigurace balíčku. 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 jsou všechny související nasazené kanály Lakeflow 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 Principály služby a Určení identity spuštění pro pracovní postup deklarativních balíčků automatizace. 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.

Tip

Pokud chcete zaručit, aby nasazené prostředky nemohli upravovat uživatelé bez oprávnění administrátora a aby běžící úlohy nebyly ovlivněny probíhajícími nasazeními, nasaďte svůj balíček do neměnné složky pouze pro čtení. Viz immutable_folder.

Vlastní předvolby

Deklarativní balíčky automation podporují konfigurovatelné předvolby cílů, které umožňují přizpůsobit chování cílů. Dostupné předvolby najdete v referenčních informacích ke konfiguraci.

Poznámka:

Pokud není uvedena výjimka pro předvolbu a jsou nastaveny obě mode a presets, předvolby přepíší výchozí režim chování a nastavení jednotlivých prostředků přepíší předvolby. Například:

  • Pokud je max_concurrent_runs pro úlohu nastaveno na 10, ale předvolba jobs_max_concurrent_runs je nastavena na 20, maximální počet souběžných spuštění úlohy je 10.
  • Pokud je plán nastavený na UNPAUSED, ale předvolba trigger_pause_status je nastavena na PAUSED, plán bude obnoven.

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