次の方法で共有


Databricks サーバーレス プライベート Git の構成

Databricks サーバーレス プライベート Git は パブリック プレビュー段階です。 コンピューティングとネットワークのコストは、サーバーレス コンピューティング リソースが外部リソースに接続するときに適用されます。 課金の詳細については、「 Databricks のサーバーレス ネットワーク コストについて」 を参照してください。

Databricks サーバーレス プライベート Git を使用すると、サーバーレス コンピューティングと Azure Private Link を使用して、Databricks ワークスペースをプライベート Git サーバーに接続できます。 インターネット ユーザーがアクセスできない場合、Git サーバーはプライベートです。

次の図は、システム アーキテクチャ全体を示しています。

Databricks サーバーレスプライベート Git アーキテクチャ

サーバーレス プライベート Git を使用する理由

Git サーバー プロキシと比較すると、サーバーレス プライベート Git には次の利点があります。

  • サーバーレス プライベート Git は、Git 要求を受信した場合にのみサーバーレス コンピューティングを取得し、使用されていない場合は非アクティブにすることができます。 これに対し、Git プロキシでは、ユーザーが Git 要求を送信するときにプロキシ クラスターをアクティブにする必要があります。
  • サーバーレス プライベート Git では、Azure Private Link を使用してプライベート Git インスタンスに安全に接続します。

Requirements

  • ワークスペースのサーバーレス コンピューティングを有効にします。
  • プライベート Git サーバーを Standard Load Balancer と同じ Azure VNet に配置します。
  • プライベート Git サーバーに署名された証明書と有効な HTTPS 完全修飾ドメイン名 (FQDN) があることを確認します。
  • Private Link サービス用に Standard Load Balancer (SLB) を使用して VNet を構成します。

サーバーレス プライベート Git を設定する

  1. 手順に従って 、VNet 内のリソースへのプライベート接続を構成します。 これにより、SLB の背後にあるネットワーク内のサーバーレスからバックエンドへの Azure Private Link 接続を作成できます。
  2. 標準ロード バランサーへのエグレスを構成するネットワーク接続構成 (NCC) を作成します。
    • プライベート Git 用にワークスペースごとに構成できる NCC は 1 つだけです。 ワークスペースが複数のプライベート Git サーバーに接続する場合は、すべて同じ NCC を使用する必要があります。
    • 地域の制限やワークスペースの添付ファイルの制限など、NCC の制限については、「 要件」を参照してください。

Azure ネットワーク接続の構成

  1. アカウント レベルのアクセス権を 持つサービス プリンシパルを使用して、アカウント API トークンを取得します。
curl --location 'https://accounts.azuredatabricks.net/oidc/accounts/{accountid}/v1/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'client_id=SP_CLIENT_ID_HERE' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default' \
  --data-urlencode 'client_secret=SP_CLIENT_SECRET_HERE'

応答には、アクセス トークンが含まれています。

{ "access_token": "...", "scope": "all-apis", "token_type": "Bearer", "expires_in": 3600 }

または、Microsoft Entra ID アクセス トークンを使用することもできます。

BEARER_TOKEN=$(az account get-access-token --resource \
  2ff814a6-3304-4ab8-85cb-cd0e6f879c1d --query "accessToken" -o tsv)
  1. API を使用して DNS ロジックを定義するプライベート エンドポイントルールを追加します。

この例では、次のように指定します。

  • アカウント識別子
  • NCC ID(NCC識別子)
  • アカウント OAuth トークン
  • Private Link サービスの fesource ID
  • domain_name一覧の Git サーバーの FQDN
curl --location 'https://accounts.azuredatabricks.net/api/2.0/accounts/{accountid}/network-connectivity-configs/{nccid}/private-endpoint-rules' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer BEARER_TOKEN' \
  --data '{
    "resource_id": "/subscriptions/3f262328b/resourceGroups/rg/providers/Microsoft.Network/privateLinkServices/example",
    "domain_names": ["git-server.contoso.com"]
  }'

応答には、プライベート エンドポイント ルールの詳細が含まれています。

{
  "rule_id": "843ba2e5-bbbb-bbbb-bbbb-7f0d55555215",
  "network_connectivity_config_id": "5a9bdc5f-c43d-41cd-9a6d-1b653e20c7d2",
  "resource_id": "/subscriptions/3f262328b/resourceGroups/rg/providers/Microsoft.Network/privateLinkServices/example",
  "endpoint_name": "databricks-5a9bdc5f-c43d-41cd-9a6d-1b653e20c7d2-pe-99cbbac3",
  "connection_state": "PENDING",
  "creation_time": 1740000647980,
  "updated_time": 1740000647949,
  "domain_names": ["git-server.contoso.com"]
}
  1. NCC プライベート エンドポイント ルールを設定してから数分待ちます。 NCC は、保留中の状態のプライベート エンドポイント規則を表示します。
  2. 手順 1 で構成した Private Link サービスで、保留中のプライベート エンドポイント接続を承認します。

プライベート エンドポイント接続

  1. アカウント コンソール内の NCC に戻り、確立されたことを確認します。
  2. ワークスペースで Git 操作を実行します。 UI インジケーターは、サーバーレス プライベート Git がアクティブであることを確認します。 サーバーレス コンピューティングの開始時にインジケーターが表示されるまでに数秒かかる場合があります。

構成後、サーバーレス プライベート Git は、クラシック Git プロキシなど、既にプロビジョニングした他の形式のプライベート Git 接続よりも優先されます。 クラシック Git プロキシ クラスターを実行している場合は、サーバーレス プライベート Git を設定した後で終了します。

追加の構成

構成ファイルを使用して Git 操作をカスタマイズします。

  1. 次の仕様に従って、 /Workspace/.git_settings/config.json に構成ファイルを作成します。
  2. すべての Git ユーザーに、構成ファイルと参照する CA 証明書ファイルに対するアクセス許可を表示します。
  3. Git フォルダーの複製などの Git 操作を実行して、Git リモートへの接続を検証します。
  4. 構成ファイルの変更を適用するには、最大で 1 分かかる場合があります。

最上位の構成ファイルの構造

{
  "default": { ... },  // Optional global settings
  "remotes": [ ... ]   // Optional list of per-remote settings
}

default セクション(省略可能)

グローバルな既定値は、特定のリモートによってオーバーライドされない限り、すべての Git 操作に適用されます。

フィールド タイプ 必須 デフォルト値 Description
sslVerify ブーリアン いいえ true SSL 証明書を検証するかどうか。
caCertPath 文字列 いいえ "" (空) カスタム CA 証明書へのワークスペース パス。
httpProxy 文字列 いいえ "" (空) Git トラフィックをルーティングする HTTP プロキシ。
customHttpPort 整数 いいえ 指定されていません。 Git サーバーのカスタム HTTP ポート。

remotes セクション (省略可能)

個々のリモート Git サーバーの設定を定義するオブジェクトの一覧。 これらの設定は、リモートごとに default ブロックをオーバーライドします。

フィールド タイプ 必須 デフォルト値 Description
urlPrefix 文字列 イエス Git リモート URL に一致するプレフィックス。
sslVerify ブーリアン いいえ true SSL 証明書を検証するかどうか。
caCertPath 文字列 いいえ "" (空) このリモートのカスタム CA 証明書パスへのワークスペース パス。
httpProxy 文字列 いいえ "" (空) Git トラフィックをルーティングする HTTP プロキシ。
customHttpPort 整数 いいえ 指定されていません。 Git サーバーのカスタム HTTP ポート。

リモート固有の構成がない構成例

{
  "default": {
    "sslVerify": false
  }
}

完全な構成の例

{
  "default": {
    "sslVerify": true,
    "caCertPath": "/Workspace/my_ca_cert.pem",
    "httpProxy": "https://git-proxy-server.company.com",
    "customHttpPort": "8080"
  },
  "remotes": [
    {
      "urlPrefix": "https://my-private-git.company.com/",
      "caCertPath": "/Workspace/my_ca_cert_2.pem"
    },
    {
      "urlPrefix": "https://another-git-server.com/project.git",
      "sslVerify": false
    }
  ]
}

注記

  • defaultセクションは、少なくとも部分的に存在する必要があります。
  • remotes セクションは省略可能です。 含まれている場合は、各エントリに urlPrefix フィールドを含める必要があります。
  • 指定されていないフィールドでは、既定値が使用されます。
  • 不明なフィールドは無視されます。

制限事項

  • サーバーレス プロキシ ログは使用できません。
  • サーバーレス プライベート Git は、Azure サーバーレス リージョンでのみ使用できます。