Mengonfigurasi Git Privat Tanpa Server Databricks

Nota

Git Privat Tanpa Server Databricks sedang dalam Pratinjau Umum. Biaya komputasi dan jaringan berlaku saat sumber daya komputasi tanpa server tersambung ke sumber daya eksternal. Lihat Memahami biaya jaringan tanpa server Databricks untuk detail penagihan.

Databricks Serverless Private Git memungkinkan Anda menyambungkan ruang kerja Databricks ke server Git privat menggunakan komputasi tanpa server dan Azure Private Link. Server Git bersifat pribadi jika pengguna internet tidak dapat mengaksesnya.

Diagram berikut mengilustrasikan arsitektur sistem keseluruhan:

Arsitektur Git privat tanpa server Databricks

Mengapa menggunakan Git Privat Tanpa Server?

Dibandingkan dengan proksi server Git, Git Privat Tanpa Server menawarkan keuntungan berikut:

  • Git Privat Tanpa Server memperoleh komputasi tanpa server hanya ketika menerima permintaan Git, dan dapat tidak aktif saat tidak digunakan. Sebaliknya, proksi Git mengharuskan kluster proksi aktif saat pengguna mengirimkan permintaan Git.
  • Git Privat Tanpa Server menggunakan Azure Private Link untuk terhubung dengan aman ke instans Git privat.

Persyaratan

  • Aktifkan komputasi tanpa server untuk ruang kerja.
  • Tempatkan server Git privat di Azure VNet yang sama dengan Load Balancer Standar.
  • Pastikan server Git privat memiliki sertifikat yang ditandatangani dan nama domain yang sepenuhnya memenuhi syarat (FQDN) HTTPS yang valid.
  • Konfigurasikan VNet dengan Load Balancer Standar (SLB) untuk layanan Private Link.

Menyiapkan Git Privat Tanpa Server

  1. Ikuti langkah-langkah untuk Mengonfigurasi konektivitas privat ke sumber daya di VNet Anda. Ini memungkinkan Anda membuat koneksi Azure Private Link dari Serverless ke backend pada jaringan Anda di belakang SLB.
  2. Buat konfigurasi konektivitas jaringan (NCC) untuk mengatur lalu lintas keluar ke penyeimbang beban standar.
    • Anda hanya dapat mengonfigurasi satu NCC per ruang kerja untuk Git privat. Jika ruang kerja terhubung ke beberapa server Git privat, semuanya harus menggunakan NCC yang sama.
    • Untuk batasan NCC, seperti batas wilayah dan batas lampiran ruang kerja, lihat Persyaratan.

Konfigurasi konektivitas jaringan Azure

  1. Dapatkan token API akun menggunakan service principal dengan akses tingkat akun.
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'

Respons berisi token akses:

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

Atau, Anda dapat menggunakan token akses ID Microsoft Entra:

BEARER_TOKEN=$(az account get-access-token --resource \
  2ff814a6-3304-4ab8-85cb-cd0e6f879c1d --query "accessToken" -o tsv)
  1. Tambahkan aturan titik akhir privat untuk menentukan logika DNS menggunakan API.

Dalam contoh, tentukan hal berikut:

  • ID Pengguna Akun
  • NCC ID
  • Token OAuth Akun
  • ID sumber daya layanan Private Link
  • FQDN server Git dalam daftar domain_name
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"]
  }'

Respons berisi detail aturan titik akhir privat:

{
  "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. Tunggu beberapa menit setelah menyiapkan aturan titik akhir privat NCC. NCC menampilkan aturan titik akhir privat dengan status tertunda.
  2. Setujui koneksi titik akhir privat yang tertunda di layanan Private Link yang Anda konfigurasi di Langkah 1.

Koneksi titik akhir privat

  1. Kembali ke NCC di dalam konsol akun dan periksa apakah hal tersebut telah didirikan.
  2. Lakukan operasi Git di ruang kerja. Indikator UI mengonfirmasi bahwa Git Privat Tanpa Server aktif. Indikator mungkin membutuhkan waktu beberapa detik untuk muncul saat komputasi tanpa server dimulai.

Setelah Anda mengonfigurasinya, Git Privat Tanpa Server lebih diutamakan daripada bentuk konektivitas Git privat lain yang sudah Anda provisikan, seperti proksi Git klasik. Jika Anda memiliki kluster proksi Git klasik yang berjalan, hentikan setelah menyiapkan Git Privat Tanpa Server.

Konfigurasi tambahan

Kustomisasi operasi Git menggunakan file konfigurasi.

  1. Buat file konfigurasi dengan mengikuti spesifikasi di /Workspace/.git_settings/config.json bawah ini.
  2. Berikan semua pengguna Git Izin tampilan ke file konfigurasi dan file sertifikat CA apa pun yang dirujuknya.
  3. Validasi konektivitas ke server Git dengan melakukan operasi Git, seperti menggandakan folder Git.
  4. Sistem dapat memakan waktu hingga satu menit untuk menerapkan perubahan file konfigurasi.

Struktur file konfigurasi tingkat atas

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

default bagian (opsional)

Default global berlaku untuk semua operasi Git kecuali jika jarak jauh tertentu mengambil alihnya.

Bidang Tipe Diperlukan Nilai Bawaan Description
sslVerify Boolean Tidak. true Apakah akan memverifikasi sertifikat SSL.
caCertPath string Tidak. "" (kosong) Jalur ruang kerja ke sertifikat CA kustom.
httpProxy string Tidak. "" (kosong) Proksi HTTP untuk merutekan lalu lintas Git.
customHttpPort bilangan bulat Tidak. Tidak disebutkan Port HTTP kustom Git server.

remotes bagian (opsional)

Daftar objek yang menentukan pengaturan untuk server Git jarak jauh individual. Pengaturan ini menggantikan blok default untuk setiap konfigurasi jarak jauh.

Bidang Tipe Diperlukan Nilai Bawaan Description
urlPrefix string Yes Awalan agar sesuai dengan URL remote Git.
sslVerify Boolean Tidak. true Apakah akan memverifikasi sertifikat SSL.
caCertPath string Tidak. "" (kosong) Jalur ruang kerja menuju jalur sertifikat CA kustom untuk koneksi jarak jauh ini.
httpProxy string Tidak. "" (kosong) Proksi HTTP untuk merutekan lalu lintas Git.
kustomHttpPort bilangan bulat Tidak. Tidak disebutkan Port HTTP kustom Git server.

Contoh konfigurasi tanpa konfigurasi khusus jarak jauh

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

Contoh konfigurasi lengkap

{
  "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
    }
  ]
}

Catatan

  • Bagian default harus ada setidaknya sebagian.
  • Bagian remotes ini bersifat opsional. Jika disertakan, setiap entri harus menyertakan urlPrefix kolom.
  • Bidang yang tidak ditentukan menggunakan nilai defaultnya.
  • Bidang yang tidak diketahui diabaikan.

Keterbatasan

  • Log proxy tanpa server tidak tersedia.
  • Git Privat Tanpa Server hanya tersedia di wilayah tanpa server Azure.