エアギャップ環境で動作するように Databricks Asset Bundle を設定する

Databricks アセット バンドルは、適切に機能するために外部のライブラリとツールに依存します。 これらの依存関係の場所 (URL) にアクセスできる必要があり、アクセスできないとバンドルの初期化が失敗します。 このため、インターネットにアクセスできないエアギャップ ネットワーク環境で Databricks アセット バンドルを使用する前に、Databricks CLI によって提供される Docker コンテナー イメージをダウンロードし、Docker を通じて Databricks アセット バンドルを管理する必要があります。

Dockerコンテナイメージをダウンロードする

Databricks CLI Docker コンテナー イメージは、ARM64 および AMD64 CPU アーキテクチャをサポートしており、 Databricks CLI GitHub リポジトリで入手できます。 次のコマンドを実行すると、利用可能な最新のイメージをダウンロードできます。

docker pull ghcr.io/databricks/cli:latest

特定の Databricks CLI バージョンに関連付けられたイメージをダウンロードする場合は、以下のようにバージョンを指定します。

docker pull ghcr.io/databricks/cli:v0.218.0

Docker を通じて Databricks アセットバンドルを管理する

適切な Docker コンテナをダウンロードしたら、Docker CLI を使用してdatabricks bundleコマンドを直接または対話的に実行できます。

直接実行

bundleコマンドを直接実行するには、 docker runを使用します。 たとえば、次のコマンドは、 /my-bundleにあるバンドルをデプロイします。

docker run -v /my-bundle:/my-bundle -e DATABRICKS_HOST=... -e DATABRICKS_TOKEN=... --workdir /my-bundle ghcr.io/databricks/cli:latest bundle deploy

上記の例では、 -v /my-bundle:/my-bundle同じバンドル名を使用してmy-bundle Docker コンテナーのファイル システムにマウントし、 -e DATABRICKS_HOST=... -e DATABRICKS_TOKEN=...ホストと資格情報を環境変数として渡すことで Databricks CLI を認証し、 --workdir /my-bundle ghcr.io/databricks/cli:latest現在の作業ディレクトリを/my-bundleに設定します。 追加のdocker runコマンド オプションについては、Docker ドキュメントを参照してください。

対話式実行

bundleコマンドを対話的に実行するには、まずdocker run-itおよび--entrypointオプションとともに使用して、以下に示すように、コンテナーに接続された統合shターミナル セッションを起動します。

docker run -v /my-bundle:/my-bundle -e DATABRICKS_HOST=... -e DATABRICKS_TOKEN=... -it --entrypoint /bin/sh --workdir /my-bundle ghcr.io/databricks/cli:latest

Docker ターミナル セッションが開始すると、ターミナルで直接bundleコマンドを実行できます。 次に、 my-bundleという名前のバンドルを展開する例を示します。

/my-bundle # databricks bundle deploy

ボリュームマウントは双方向に同期されるため、バンドルをローカルで変更し、この Docker ターミナルセッションを使用してbundleコマンドを実行できます。 この場合、 docker run を再度実行する必要はありません。