Databricks アセット バンドルで成果物の設定を動的に定義する
この記事では、Databricks アセット バンドル の成果物の設定をオーバーライドする方法について説明します。 「Databricks アセット バンドルとは」を参照してください
Azure Databricks バンドル構成ファイルでは、最上位レベルの artifacts
マッピングの成果物設定と targets
マッピングの成果物設定を結合できます (簡潔にするために、省略記号が省略されたコンテンツを示しています)。
# ...
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.
最上位レベルの artifacts
マッピングと、同じ成果物の targets
マッピングの両方で成果物の設定が定義されている場合、targets
マッピングの設定は最上位レベルの artifacts
マッピングの設定よりも優先されます。
例 1: 最上位レベルの成果物マッピングでのみ定義されている成果物の設定
この実際のしくみを示すために、path
が最上位レベルの artifacts
マッピングに定義されています。これにより、成果物のすべての設定が定義されます (簡潔にするために、省略記号が省略されたコンテンツを示しています)。
# ...
artifacts:
my-artifact:
type: whl
path: ./my_package
# ...
この例で databricks bundle validate
を実行すると、結果のグラフは次のようになります (簡潔にするために、省略記号が省略されたコンテンツを示しています)。
{
"...": "...",
"artifacts": {
"my-artifact": {
"type": "whl",
"path": "./my_package",
"...": "..."
}
},
"...": "..."
}
例 2: 複数の成果物マッピングで定義された成果物設定の競合
この例では、path
が、最上位レベルの artifacts
マッピングと targets
の artifacts
マッピングの両方に定義されています。 この例では、成果物の設定を定義するために、targets
の artifacts
マッピングの path
が最上位レベルの artifacts
マッピングの path
よりも優先されます (簡潔にするために、省略記号が省略されたコンテンツを示しています)。
# ...
artifacts:
my-artifact:
type: whl
path: ./my_package
targets:
dev:
artifacts:
my-artifact:
path: ./my_other_package
# ...
この例で databricks bundle validate
を実行すると、結果のグラフは次のようになります (簡潔にするために、省略記号が省略されたコンテンツを示しています)。
{
"...": "...",
"artifacts": {
"my-artifact": {
"type": "whl",
"path": "./my_other_package",
"...": "..."
}
},
"...": "..."
}