共用方式為


Databricks Asset Bundles 部署模式

本文說明 Databricks 資產組合部署模式的語法。 套件組合可讓您以程式設計方式管理 Azure Databricks 工作流程。 請參閱什麼是 Databricks Asset Bundles?

在 CI/CD 工作流程中,開發人員通常會以各種階段或 模式撰寫程式代碼、測試、部署及執行解決方案。 例如,最簡單的模式集包含 生產前驗證的開發 模式,後面接著 已驗證交付專案的生產 模式。 Databricks 資產套件組合會提供預設行為的選擇性集合,這些行為會對應至每個模式。 若要針對特定目標使用這些行為,請在組態對應中targets設定modepresets設定目標。 如需 的相關信息 targets,請參閱 配套組態目標對應

開發模式

若要在開發模式中部署套件組合,您必須先將 mode 對應設定為 ,設定 development為 預定的目標。 例如,這個名為 dev 的目標會被視為開發目標:

targets:
  dev:
    mode: development

藉由執行 databricks bundle deploy -t <target-name> 命令以開發模式部署目標,會實作下列行為,其可使用預設值來自定義

  • 在未部署為檔案或筆記本的所有資源前面加上前置詞 [dev ${workspace.current_user.short_name}] 和標記,每個已部署的作業和管線都有 dev Azure Databricks 標籤。
  • 將所有相關已部署的 Delta Live Tables 管線標示為 development: true。 請參閱 使用開發模式執行管線更新
  • --compute-id <cluster-id>可讓您在命令的相關呼叫bundle deploy中使用 ,這會覆寫相關套件組合組態檔中已指定的任何和所有現有叢集定義。 您可以在這裡將對應設定為對應,而不是在 --compute-id <cluster-id> 命令的相關呼叫 bundle deploy 中使用,或將對應設定 compute_id 為對應子系對應 bundle 至要使用的叢集標識符。
  • 暫停已部署資源的所有排程和觸發程式,例如作業或品質監視器。 將 設定 schedule.pause_statusUNPAUSED,取消個別作業的排程和觸發程式。
  • 在所有已部署的作業上啟用並行執行,以加快反覆專案的速度。 將 設定 max_concurrent_runs1,以停用個別作業的並行執行。
  • 停用部署鎖定以加快反覆運算速度。 此鎖定可防止部署衝突不太可能在開發模式中發生。 將設定 bundle.deployment.lock.enabledtrue以重新啟用鎖定。

生產模式

若要在生產模式中部署套件組合,您必須先將 mode 對應設定為 production,設定為 預定的目標。 例如,這個名為 prod 的目標會被視為生產目標:

targets:
  prod:
    mode: production

執行 databricks bundle deploy -t <target-name> 命令以生產模式部署目標會實作下列行為:

  • 驗證所有相關已部署的 Delta Live Tables 管線是否標示為 development: false

  • 驗證目前的 Git 分支是否等於目標中指定的 Git 分支。 在目標中指定 Git 分支是選擇性的,而且可以使用其他 git 屬性來完成,如下所示:

    git:
      branch: main
    

    藉由在部署時指定 --force ,即可覆寫此驗證。

  • Databricks 建議您使用服務主體進行生產部署。 您可以將 設定 run_as 為服務主體,以強制執行此動作。 請參閱 管理服務主體指定 Databricks 資產套件組合工作流程的執行身分識別。 如果您不使用服務主體,請記下下列其他行為:

    • 驗證 artifact_pathfile_pathroot_pathstate_path 對應未覆寫給特定使用者。
    • 驗證 已 run_as 指定 和 permissions 對應,以釐清哪些身分識別具有部署的特定許可權。
  • 不同於上述將對應設定為 development的行為,將對應production設定modemode為 不允許覆寫相關套件組合組態檔中指定的任何現有叢集定義,例如,使用 --compute-id <cluster-id> 選項或compute_id對應。

自訂預設

Databricks 資產組合支援可設定的目標預設值,可讓您自定義目標的行為。 下表列出可用的預設值:

預先設定 描述
name_prefix 要前面加上資源名稱的前置詞字串。
pipelines_development 管線是否處於開發模式。 有效值為 truefalse
trigger_pause_status 要套用至所有觸發程式和排程的暫停狀態。 有效值為 PAUSEDUNPAUSED
jobs_max_concurrent_runs 作業允許的並行執行數目上限。
tags 一組 key:value 標記,適用於支持標籤的所有資源,其中包括作業和實驗。 Databricks 資產套件組合不支持資源的標籤 schema

注意

如果 和 presetsmode已設定,預設會覆寫預設模式行為,而個別資源的設定會覆寫預設值。 例如,如果排程設定為 UNPAUSED,但 trigger_pause_status 預設設定 PAUSED為 ,則會取消排程。

下列範例顯示名為 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