Dela via


Kom igång med Azure Databricks Serverless Private Git

Anmärkning

Azure Databricks Serverless Private Git finns i offentlig förhandsversion. Kostnader för beräkning och nätverk gäller när serverlösa beräkningsresurser ansluter till externa resurser. Mer information om fakturering finns i Förstå databricks serverlösa nätverkskostnader .

Med Azure Databricks Serverless Private Git kan du ansluta en Databricks-arbetsyta till en privat Git-server med hjälp av serverlös beräkning och Azure Private Link. En Git-server är privat om den inte kan nås från Internet.

Följande diagram illustrerar den övergripande systemarkitekturen:

Arkitektur för databricks-serverlösa privata lagringsplatser

Varför ska jag använda serverlös privat Git?

Jämfört med Git-proxyn erbjuder serverlös privat Git följande fördelar:

  • Serverlös privat Git hämtar endast serverlös beräkning när den tar emot en Git-begäran och den kan vara inaktiv när den inte används. Git-proxyn kräver däremot att proxyklustret är aktivt när användaren skickar en Git-begäran.

  • Serverlös privat Git använder Azure Private Link för att ansluta på ett säkert sätt till den privata Git-instansen.

Kravspecifikation

  • Arbetsytor måste vara aktiverade för Serverless.
  • Den privata Git-servern måste finnas i samma virtuella Azure-nätverk som Standard Load Balancer.
  • Privat Git Server måste ha ett signerat certifikat/giltigt HTTPS FQDN.
  • Det virtuella nätverket har konfigurerats för standardlastbalanseraren (SLB) som används för Private Link-tjänsten.

Installera serverlös privat Git

  1. Följ stegen för att konfigurera Private Link för din privata Git-server. På så sätt kan du skapa en Azure Private Link-anslutning från Serverless till backends i nätverket bakom en SLB.
  2. Skapa en nätverksanslutningskonfiguration (NCC) för att konfigurera utgående trafik till en standardlastbalanserare. Överväganden för det här steget:
    • Endast en NCC kan konfigureras för en arbetsyta för privat Git. Om arbetsytan behöver ansluta till flera privata Git-servrar kontrollerar du att de kan anslutas med samma NCC.
    • Begränsningar som antalet NCC:er som stöds i en region och antalet arbetsytor som kan kopplas till en NCC dokumenteras i Krav.

Konfiguration av Azure-nätverksanslutning

  1. Hämta en api-token för kontot med hjälp av ett tjänsthuvudnamn med åtkomst på kontonivå.
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}
  • Alternativt sätt att hämta konto-API-token:
    • Åtkomsttoken för autentisering: Om du vill anropa Rest-API:et för Databricks-kontot måste du utföra autentisering och hämta en åtkomsttoken.
    • Använd en Microsoft Entra ID-åtkomsttoken.
BEARER_TOKEN = `az account get-access-token --resource
2ff814a6-3304-4ab8-85cb-cd0e6f879c1d --query "accessToken" -o tsv
  1. Lägg till en privat slutpunktsregel för att definiera DNS-logik med hjälp av API:et.

I exemplet anger du följande:

  • Konto-ID
  • NCC-ID
  • OAuth-kontotoken
  • Resurs-ID för Private Link-tjänsten
  • Git Servers FQDN i listan över domännamn
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"
]
}
'

Svar

{"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. Vänta några minuter efter att du har konfigurerat reglerna för den privata NCC-slutpunkten. Regeln för privat slutpunkt visas i NCC utan en angiven underresurs med statusen väntande.
  2. Private Link-tjänsten som konfigurerades i steg 1 har också en väntande privat slutpunktsanslutning redo för godkännande. Godkänn den här anslutningen.

Privata slutpunktsanslutningar

  1. Gå tillbaka till NCC i kontokonsolen och kontrollera att den har skapats.
  2. Gå till arbetsytan och prova en Git-åtgärd. Du bör se en UI-indikator för serverlös privat Git. Den här sidan kan ta några sekunder att läsa in, medan den serverlösa beräkningstjänsten för Git-proxyn startar.

När du har konfigurerat den har serverlös privat Git företräde framför andra former av privat Git-anslutning som du redan har etablerat, till exempel klassisk Git-proxy. Om du har ett klassiskt Git-proxykluster som körs avslutar du det när du har konfigurerat serverlös privat Git.

Ytterligare konfigurationer

Anpassa dina git-åtgärder med hjälp av filen config.json.

  1. Skapa en konfigurationsfil på /Workspace/.git_settings/config.json, enligt specifikationen nedan.
  2. Ge alla Git-användare visa behörigheter till konfigurationsfilen och eventuella CA-certifikatfiler som den refererar till.
  3. Interagera med Git för att verifiera anslutningen till Git-fjärren, till exempel kloning av en Git-mapp för en fjärrlagringsplats på servern.
  4. Det kan ta upp till 1 minut att tillämpa ändringar i konfigurationsfilen.

Konfigurationsfilstruktur på toppnivå

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

default avsnitt (valfritt)

Globala standardvärden tillämpas på alla Git-åtgärder om de inte åsidosätts av en specifik fjärranslutning.

Fält Typ Krävs Standardvärde Description
sslVerify booleskt Nej true Om du vill verifiera SSL-certifikat.
caCertPath snöre Nej "" (tom) Sökväg till arbetsyta för ett anpassat CA-certifikat.
httpProxy (på engelska) snöre Nej "" (tom) HTTP-proxy för att dirigera Git-trafik.
customHttpPort integer Nej Ospecificerad Anpassad HTTP-port för Git-servern.

remotes avsnitt (valfritt)

En lista över objekt som definierar inställningar för enskilda fjärranslutna Git-servrar. De här inställningarna åsidosätter default blocket för varje fjärranslutning.

Fält Typ Krävs Standardvärde Description
urlPrefix snöre Yes Prefix för att matcha Git-fjärr-URL:er.
sslVerify booleskt Nej true Om du vill verifiera SSL-certifikat.
caCertPath snöre Nej "" (tom) Arbetsytans sökväg till en anpassad sökväg för CA-certifikat för denna fjärrplats.
httpProxy (på engelska) snöre Nej "" (tom) HTTP-proxy för att dirigera Git-trafik.
customHttpPort integer Nej Ospecificerad Anpassad HTTP-port för Git-servern.

Exempelkonfiguration utan fjärrspecifik konfiguration

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

Fullständigt konfigurationsexempel

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

Noteringar

  • Avsnittet default måste finnas, även om det bara är delvis.
  • Listan remotes är valfri och kan utelämnas helt.
  • Varje fjärrinmatning måste innehålla minst urlPrefix.
  • Om du inte anger något värde för ett fält används standardvärdet.
  • Okända fält ignoreras.

Begränsningar

  • Serverlös proxylogg är för närvarande inte tillgänglig.
  • Endast tillgängligt i Azure Serverless-regioner.