共用方式為


bundle 命令群組

注意

此資訊適用於 Databricks CLI 0.218.0 版和更新版本。 若要尋找 Databricks CLI 版本請執行 databricks -v

bundle Databricks CLI 內的命令群組可讓您以程式設計方式驗證、部署和執行 Azure Databricks 工作流程,例如 Azure Databricks 作業、Delta Live Tables 管線MLOps Stack。 請參閱 什麼是 Databricks 資產套件組合?

重要

若要安裝 Databricks CLI,請參閱 安裝或更新 Databricks CLI。 若要設定 Databricks CLI 的驗證,請參閱 Databricks CLI 的驗證。

bundle您可以將命令附加至 來執行databricks bundle命令。 若要顯示命令的說明 bundle ,請執行 databricks bundle -h

從專案範本建立套件組合

若要使用適用於 Python 的預設 Databricks Asset Bundle 範本來建立 Databricks 資產套件組合, bundle init 請執行下列命令,然後回答螢幕上的提示:

databricks bundle init

若要使用非預設 Databricks Asset Bundle 範本建立 Databricks 資產組合,請執行 bundle init 命令,如下所示:

databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"

另請參閱:

顯示套件組合元件架構

若要顯示 Databricks 資產組合組態架構,請執行 bundle schema 命令,如下所示:

databricks bundle schema

若要將 Databricks Asset Bundle 組態架構輸出為 JSON 檔案,請執行 bundle schema 命令並將輸出重新導向至 JSON 檔案。 例如,您可以在目前目錄中產生名為 bundle_config_schema.json 的檔案,如下所示:

databricks bundle schema > bundle_config_schema.json

驗證套件組合

若要驗證您的套件組合組態檔語法正確,請從套件組合專案根目錄執行 bundle validate 命令,如下所示:

databricks bundle validate

根據預設,此命令會傳回套件組合身分識別的摘要:

Name: MyBundle
Target: dev
Workspace:
  Host: https://my-host.cloud.databricks.com
  User: someone@example.com
  Path: /Users/someone@example.com/.bundle/MyBundle/dev

Validation OK!

注意

如果資源屬性是在對應物件架構中找不到的套件組合組態檔中定義,則 bundle validate 命令會輸出警告。

將套件組合的樹狀結構同步至工作區

bundle sync使用 命令,對本機檔系統目錄內的套件組合檔案變更進行單向同步處理,到遠端 Azure Databricks 工作區內的目錄。

注意

bundle sync 命令無法同步處理遠端 Azure Databricks 工作區內目錄的檔案變更,回到本機文件系統內的目錄。

databricks bundle sync 命令的運作方式與 databricks sync 命令相同,並以生產力便利的方式提供。 如需命令使用方式資訊,請參閱 同步處理命令群組

產生套件組合組態檔

您可以使用 bundle generate 命令,為 Databricks 工作區中已存在的作業或管線產生資源組態。 此命令會在 *.yml 套件組合專案的資料夾中產生作業或管線 resources 的檔案,並下載作業或管線組態中參考的任何筆記本。 目前,此命令僅支援具有筆記本工作的工作。

重要

命令 bundle generate 是為了方便自動產生資源設定而提供。 不過,當此組態包含在套件組合中並部署時,它會建立新的資源,而且除非 bundle deployment bind 第一次用於資源,否則不會更新現有的資源。

bundle generate執行命令,如下所示:

databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]

例如,下列命令會在套件組合專案資料夾中產生包含下列 YAML 的新 hello_job.yml 檔案 resources ,並將 下載 simple_notebook.pysrc 項目資料夾。

databricks bundle generate job --existing-job-id 6565621249
# This is the contents of the resulting hello_job.yml file.
resources:
  jobs:
    6565621249:
      name: Hello Job
      format: MULTI_TASK
      tasks:
        - task_key: run_notebook
          existing_cluster_id: 0704-xxxxxx-yyyyyyy
          notebook_task:
            notebook_path: ./src/simple_notebook.py
            source: WORKSPACE
          run_if: ALL_SUCCESS
      max_concurrent_runs: 1

系結套件組合資源

bundle deployment bind命令可讓您將套件組合定義的作業和管線連結至 Azure Databricks 工作區中的現有作業和管線,讓它們由 Databricks 資產組合管理。 如果您系結資源,工作區中現有的 Azure Databricks 資源會根據下一個 bundle deploy之後所系結的套件組合中所定義的組態來更新。

提示

在執行系結之前,最好先確認套件組合工作區。

databricks bundle deployment bind [resource-key] [resource-id]

例如,下列命令會將資源 hello_job 系結至工作區中的遠端對應專案。 命令會輸出差異,並可讓您拒絕資源系結,但如果已確認,套件組合中作業定義的任何更新會在下次部署套件組合時套用至對應的遠端作業。

databricks bundle deployment bind hello_job 6565621249

如果您要移除套件組合中作業或管線與其工作區中遠端對應項目之間的連結,請使用 bundle deployment unbind

databricks bundle deployment unbind [resource-key]

部署套件組合

若要將套件組合部署至遠端工作區,請從套件組合專案根目錄執行 bundle deploy 命令。 如果未指定任何命令選項,則會使用套件組合組態檔內宣告的默認目標。

databricks bundle deploy

若要將套件組合部署至特定目標,請將 [或--target] 選項以及目標的名稱設定-t為套件組合組態檔內宣告。 例如,針對以名稱 dev宣告的目標:

databricks bundle deploy -t dev

套件組合可以部署到多個工作區,例如開發、預備和生產工作區。 基本上, root_path 屬性是決定套件組合的唯一身分識別,預設為 ~/.bundle/${bundle.name}/${bundle.target}。 因此,根據預設,套件組合的身分識別是由部署者的身分識別、套件組合的名稱和套件組合的目標名稱所組成。 如果這些套件組合在不同套件組合中完全相同,則這些套件組合的部署將會互相干擾。

此外,套件組合部署會追蹤其標識元在其目標工作區中建立的資源,做為儲存在工作區文件系統中的狀態。 資源名稱不會用來在套件組合部署與資源實例之間相互關聯,因此:

  • 如果套件組合組態中的資源不存在於目標工作區中,則會建立資源。
  • 如果套件組合組態中的資源存在於目標工作區中,則會在工作區中更新。
  • 如果資源已從套件組合組態中移除,則先前部署的資源會從目標工作區中移除。
  • 如果您變更套件組合名稱、套件組合目標或工作區,則只能忘記資源與套件組合的關聯。 您可以執行 bundle validate 以輸出包含這些值的摘要。

執行套件組合

若要執行特定作業或管線,請使用 bundle run 命令。 您必須指定套件組合組態檔內宣告之作業或管線的資源索引鍵。 根據預設,會使用套件組合組態檔內宣告的環境。 例如,若要在預設環境中執行作業 hello_job ,請執行下列命令:

databricks bundle run hello_job

若要在以名稱dev宣告的目標內容中使用索引鍵hello_job執行作業:

databricks bundle run -t dev hello_job

如果您要執行 管線驗證 執行,請使用 --validate-only 選項,如下列範例所示:

databricks bundle run --validate-only my_pipeline

若要傳遞 作業參數,請使用 --params 選項,後面接著逗號分隔的索引鍵/值組,其中索引鍵是參數名稱。 例如,下列命令會將 參數設定為 作業hello_job的名稱messageHelloWorld

databricks bundle run --params message=HelloWorld hello_job

注意

您可以使用 作業工作選項將參數傳遞至作業 工作,但 --params 此選項是傳遞作業參數的建議方法。 如果為未定義作業參數的作業指定作業參數,或為已定義作業參數的工作指定工作參數,就會發生錯誤。

若要取消並重新啟動現有的作業執行或管線更新,請使用 --restart 選項:

databricks bundle run --restart hello_job

終結套件組合

若要刪除先前部署的作業、管線和成品,請執行 bundle destroy 命令。 下列命令會刪除套件組合組態檔中定義的所有先前部署作業、管線和成品:

databricks bundle destroy

注意

套件組合的身分識別是由套件組合名稱、套件組合目標和工作區所組成。 如果您已變更上述任何一項,然後在部署之前嘗試終結套件組合,就會發生錯誤。

根據預設,系統會提示您確認永久刪除先前部署的作業、管線和成品。 若要略過這些提示並執行自動永久刪除,請將 選項新增 --auto-approvebundle destroy 命令。