Databricks アセット バンドルのデプロイ モード
この記事では、Databricks アセット バンドルのデプロイ モードの構文について説明します。 バンドルを使用すると、Azure Databricks ワークフローをプログラムで管理できます。 「Databricks アセット バンドルとは」を参照してください
CI/CD ワークフローでは、開発者は通常、さまざまなフェーズまたは "モード" でソリューションをコーディング、テスト、デプロイ、実行します。 一連のモードのもっとも単純な例としては、運用前の検証のための "開発" モードに検証後の成果物のための "運用" モードが続くというものがあります。 Databricks アセット バンドルには、これらの各モードに対応する既定の動作のオプション コレクションが用意されています。 バンドルデプロイでは、バンドル構成ファイルでこれらの既定の動作を手動で指定する代わりに、これらの動作を 1 行モードの宣言で使用できます。また、途中で意図した動作の 1 つを追加または構成するのを忘れる可能性があります。
開発モード
開発モードでバンドルをデプロイするには、まず、development
に設定された mode
マッピングを目的のターゲットに追加する必要があります。 たとえば、dev
という名前のこのターゲットは開発ターゲットとして扱われます。
targets:
dev:
mode: development
databricks bundle deploy -t <target-name>
コマンドを実行して開発ターゲットをデプロイすると、次の動作が実装されます。
- ファイルまたはノートブックとしてデプロイされていないすべてのリソースの前にプレフィックス
[dev ${workspace.current_user.userName}]
が付き、デプロイされたそれぞれのジョブとパイプラインにdev
Azure Databricks タグが付きます。 - すべての関連するデプロイされた Delta Live Tables パイプラインを
development: true
としてマークします。 「開発モードを使用してパイプラインの更新を実行する」を参照してください。 bundle deploy
コマンドの関連する呼び出しで--compute-id <cluster-id>
を使用できるようにします。これにより、関連するバンドル構成ファイルで既に指定されているすべての既存のクラスター定義がオーバーライドされます。bundle deploy
コマンドの関連する呼び出しで--compute-id <cluster-id>
を使用する代わりに、ここでcompute_id
マッピングを設定するか、bundle
マッピングの子マッピングとして、使用するクラスターの ID に設定できます。- 関連するデプロイされたジョブのすべてのスケジュールとトリガーを一時停止します。
- すべての関連するデプロイされたジョブで同時実行を有効にします。
運用モード
運用モードでバンドルをデプロイするには、まず、production
に設定された mode
マッピングを目的のターゲットに追加する必要があります。 たとえば、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 アセット バンドル ワークフローの実行 ID を指定する」を参照してください。 サービス プリンシパルを使用しない場合、次の追加動作に注意してください。artifact_path
、file_path
、root_path
、state_path
マッピングは特定のユーザーにマッピングされないことを検証します。run_as
マッピングとpermissions
マッピングを指定し、デプロイに対する特定のアクセス許可を持つ ID を明確にしていることを検証します。
mode
マッピングをdevelopment
に設定する上記の動作とは異なり、mode
マッピングをproduction
に設定しても、たとえば、--compute-id <cluster-id>
オプションまたはcompute_id
マッピングを使用して、関連するバンドル構成ファイルで既に指定されている既存のクラスター定義を上書きすることはできません。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示