次の方法で共有


Azure Databricks サーバーレス プライベート Git を始める方法

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

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

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

Databricks サーバーレス プライベート リポジトリのアーキテクチャ

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

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

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

  • サーバーレス プライベート Git では、Azure Private Link を使用してプライベート Git インスタンスに安全に接続します。

Requirements

  • サーバーレスに対してワークスペースを有効にする必要があります。
  • プライベート Git サーバーは、Standard Load Balancer と同じ Azure VNet に存在する必要があります。
  • プライベート Git サーバーには、署名された証明書/有効な HTTPS FQDN が必要です。
  • VNet は、Private Link サービスに使用される Standard Load Balancer (SLB) 用に構成されます。

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

  1. 手順に従って 、プライベート Git サーバーの Private Link を設定します。 これにより、SLB の背後にあるネットワーク内のサーバーレスからバックエンドへの Azure Private Link 接続を作成できます。
  2. 標準ロード バランサーへのエグレスを構成するネットワーク接続構成 (NCC) を作成します。 この手順に関する考慮事項:
    • プライベート Git 用にワークスペース用に構成できる NCC は 1 つだけです。 ワークスペースが複数のプライベート Git サーバーに接続する必要がある場合は、同じ NCC を使用して接続できることを確認します。
    • リージョンでサポートされている 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'
Response

{"access_token":"...","scope":"all-apis","token_type":"Bearer","expires_in":3600}
  • アカウント API トークンを取得する別の方法:

    • 認証用のアクセス トークン: Databricks アカウント REST API を呼び出すには、認証を実行し、アクセス トークンを取得する必要があります。
    • 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 サービスのリソース ID
  • domain_name のリストにある Git Server の 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 操作を試します。 サーバーレス プライベート Git の UI インジケーターが表示されます。 Git プロキシのサーバーレス コンピューティングが起動している間、このページが数秒間読み込まれる可能性があります。

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

追加の構成

config.json ファイルを使用して 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 section (任意)

グローバルな既定値は、特定のリモートによってオーバーライドされない限り、すべての 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が含まれている必要があります。
  • フィールドの値を指定しない場合は、既定値が使用されます。
  • 不明なフィールドは無視されます。

制限事項

  • サーバーレス プロキシ ログは現在使用できません。
  • Azure サーバーレス リージョンでのみ使用できます。