Databricks アセット バンドルのデプロイ モード
この記事では、 Databricks アセット バンドル のデプロイ モードの構文について説明します。 バンドルを使用すると、Databricks ワークフローをプログラムで管理できます。 「Databricks アセット バンドルとは」を参照してください。
CI/CD ワークフローでは、開発者は通常、さまざまなフェーズまたは モードでソリューションをコーディング、テスト、デプロイ、実行します。 たとえば、最も単純なモードのセットには、本番運用前の検証のための 開発 モードと、検証済みの成果物のための 本番運用 モードが含まれます。 Databricks アセット バンドルには、これらの各モードに対応する既定の動作のオプションのコレクションが用意されています。 バンドル・デプロイメントでは、バンドル構成ファイルでこれらのデフォルト動作を手動で指定したり、途中で意図した動作の 1 つを追加または構成し忘れたりする代わりに、1 行モード宣言でこれらの動作を使用できます。
開発モード
開発モードでバンドルをデプロイするには、まず mode
マッピング ( development
) を目的のターゲットに追加する必要があります。 たとえば、 dev
という名前の次のターゲットは、開発ターゲットとして扱われます。
targets:
dev:
mode: development
databricks bundle deploy -t <target-name>
コマンドを実行して開発ターゲットをデプロイすると、次の動作が実装されます。
ファイルまたはノートブックとしてデプロイされていないすべてのリソースの先頭にプレフィックス
[dev ${workspace.current_user.userName}]
を付け、デプロイされた各ジョブとパイプラインにdev
Databricks タグを付けます。関連するすべてのデプロイ済み Delta Live Tables パイプラインを
development: true
としてマークします。 「 開発モードを使用してパイプラインの更新を実行する」を参照してください。bundle deploy
コマンドの関連する呼び出しで--compute-id <cluster-id>
を使用できるようにし、関連するバンドル構成ファイルで既に指定されている既存のクラスター定義をすべてオーバーライドします。bundle deploy
コマンドの関連する呼び出しで--compute-id <cluster-id>
を使用する代わりに、ここでcompute_id
マッピングを設定するか、bundle
マッピングの子マッピングとして、使用するクラスターの ID に設定できます。関連するデプロイされたジョブのすべてのスケジュールとトリガーを停止します。
デプロイされたすべての関連ジョブで並列実行を有効にします。
本番運用 mode
本番運用モードでバンドルをデプロイするには、まず 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 Asset Bundles ワークフローの実行 ID の指定」を参照してください。 サービスプリンシパルを使用しない場合は、次の追加の動作に注意してください。artifact_path
、file_path
、root_path
、またはstate_path
マッピングが特定のユーザーに対してオーバーライドされていないことを検証します。run_as
マッピングとpermissions
マッピングが指定されていることを検証して、展開に対して特定のアクセス許可を持つ ID を明確にします。
mode
マッピングをdevelopment
に設定する前述の動作とは異なり、mode
マッピングをproduction
に設定すると、関連するバンドル構成ファイルで指定されている既存のクラスター定義(たとえば、--compute-id <cluster-id>
オプションまたはcompute_id
マッピングの使用)をオーバーライドすることはできません。