Delen via


Serverloze privé-Git van Databricks configureren

Opmerking

Databricks Serverless Private Git bevindt zich in openbare preview. Reken- en netwerkkosten zijn van toepassing wanneer serverloze rekenresources verbinding maken met externe resources. Zie Begrijp serverloze Databricks-netwerkkosten voor factureringsgegevens.

Met Databricks Serverless Private Git kunt u een Databricks-werkruimte verbinden met een persoonlijke Git-server met behulp van serverloze compute en Azure Private Link. Een Git-server is privé als internetgebruikers er geen toegang toe hebben.

In het volgende diagram ziet u de algehele systeemarchitectuur:

Serverloze privé-Git-architectuur van Databricks

Waarom serverloze privé-Git gebruiken?

In vergelijking met de Git-serverproxy biedt serverloze privé-Git de volgende voordelen:

  • Serverloze privé-Git verkrijgt alleen serverloze berekeningen wanneer deze een Git-aanvraag ontvangt en kan inactief zijn wanneer deze niet in gebruik is. Daarentegen vereist de Git-proxy dat het proxycluster actief is wanneer de gebruiker een Git-aanvraag indient.
  • Serverloze privé-Git maakt gebruik van Azure Private Link om veilig verbinding te maken met het privé-Git-exemplaar.

Requirements

  • Schakel serverloze berekeningen in voor de werkruimte.
  • Plaats de persoonlijke Git-server in hetzelfde Azure-VNet als de Standard Load Balancer.
  • Zorg ervoor dat de persoonlijke Git-server een ondertekend certificaat en een geldige FQDN (Fully Qualified Domain Name) van HTTPS heeft.
  • Configureer het VNet met een Standard Load Balancer (SLB) voor de Private Link-service.

Serverloze privé-Git instellen

  1. Volg de stappen voor het configureren van privéconnectiviteit met resources in uw VNet. Hiermee kunt u een Azure Private Link-verbinding maken van serverloos naar back-ends in uw netwerk achter een SLB.
  2. Maak een netwerkconnectiviteitsconfiguratie (NCC) om uitgaande verbindingen naar een standaard load balancer te configureren.
    • U kunt slechts één NCC per werkruimte configureren voor privé-Git. Als de werkruimte verbinding maakt met meerdere privé-Git-servers, moeten ze allemaal dezelfde NCC gebruiken.
    • Zie Vereisten voor NCC-beperkingen, zoals regionale limieten en limieten voor werkruimtebijlagen.

Configuratie van Azure-netwerkconnectiviteit

  1. Een account-API-token verkrijgen met behulp van een service-principal met toegang op accountniveau.
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'

Het antwoord bevat een toegangstoken:

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

U kunt ook een Microsoft Entra ID-toegangstoken gebruiken:

BEARER_TOKEN=$(az account get-access-token --resource \
  2ff814a6-3304-4ab8-85cb-cd0e6f879c1d --query "accessToken" -o tsv)
  1. Voeg een privé-eindpuntregel toe om DNS-logica te definiëren met behulp van de API.

Geef in het voorbeeld het volgende op:

  • Account-ID
  • NCC-id
  • OAuth-token voor account
  • Fesource-id van Private Link-service
  • FQDN van Git-server in de domain_name lijst
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"]
  }'

Het antwoord bevat de details van de regel voor privé-eindpunten:

{
  "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. Wacht enkele minuten nadat u de NCC-regels voor privé-eindpunten hebt ingesteld. De NCC geeft de regel voor het privé-eindpunt weer met de status In behandeling.
  2. Keur de in behandeling zijnde privé-eindpuntverbinding goed in de Private Link-service die u in stap 1 hebt geconfigureerd.

Privé-eindpuntverbindingen

  1. Ga terug naar de NCC in de accountconsole en controleer of deze tot stand is gebracht.
  2. Voer een Git-bewerking uit in de werkruimte. Een UI-indicator bevestigt dat Serverless Private Git actief is. Het kan enkele seconden duren voordat de indicator wordt weergegeven terwijl serverloze berekeningen worden gestart.

Nadat u deze hebt geconfigureerd, heeft serverloze privé-Git voorrang op andere vormen van persoonlijke Git-connectiviteit die u al hebt ingericht, zoals de klassieke Git-proxy. Als u een klassiek Git-proxycluster hebt uitgevoerd, beëindigt u het nadat u serverloze privé-Git hebt ingesteld.

Aanvullende configuraties

Git-bewerkingen aanpassen met behulp van een configuratiebestand.

  1. Maak een configuratiebestand op /Workspace/.git_settings/config.json volgens de onderstaande specificatie.
  2. Alle Git-gebruikers Bekijkmachtigingen verlenen voor het configuratiebestand en eventuele CA-certificaatbestanden waarnaar het verwijst.
  3. Valideer de connectiviteit met de externe Git door een Git-bewerking uit te voeren, zoals het klonen van een Git-map.
  4. Het kan tot één minuut duren voordat het systeem wijzigingen in het configuratiebestand toepast.

Configuratiebestandsstructuur op het hoogste niveau

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

default sectie (optioneel)

Algemene standaardinstellingen zijn van toepassing op alle Git-bewerkingen, tenzij een specifieke externe repository deze overschrijft.

Veld Typologie Verplicht Standaardwaarde Description
sslVerify booleaan Nee. true Of ssl-certificaten moeten worden geverifieerd.
caCertPath touw Nee. "" (leeg) Werkruimtepad naar een aangepast CA-certificaat.
httpProxy touw Nee. "" (leeg) HTTP-proxy om Git-verkeer door te sturen.
customHttpPort integer Nee. Onbepaald Aangepaste HTTP-poort van de Git-server.

remotes sectie (optioneel)

Een lijst met objecten die instellingen definiëren voor afzonderlijke externe Git-servers. Deze instellingen overschrijven het default blok per externe basis.

Veld Typologie Verplicht Standaardwaarde Description
urlPrefix touw Yes Voorvoegsel dat overeenkomt met externe Git-URL's.
sslVerify booleaan Nee. true Of ssl-certificaten moeten worden geverifieerd.
caCertPath touw Nee. "" (leeg) Werkruimtepad naar het aangepaste CA-certificaatpad voor deze externe locatie.
httpProxy (Engelstalig) touw Nee. "" (leeg) HTTP-proxy om Git-verkeer door te sturen.
customHttpPort integer Nee. Onbepaald Aangepaste HTTP-poort van de Git-server.

Voorbeeldconfiguratie zonder apparaat- of toepassingen-specifieke externe configuratie

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

Voorbeeld van volledige configuratie

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

Opmerkingen

  • De default sectie moet ten minste gedeeltelijk aanwezig zijn.
  • De sectie remotes is optioneel. Indien opgenomen, moet elke vermelding een urlPrefix veld bevatten.
  • Niet-opgegeven velden gebruiken hun standaardwaarden.
  • Onbekende velden worden genegeerd.

Beperkingen

  • Serverloze proxylogboeken zijn niet beschikbaar.
  • Serverloze privé-Git is alleen beschikbaar in serverloze Azure-regio's.