Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Hinweis
Databricks Serverless Private Git befindet sich in der öffentlichen Vorschau. Rechen- und Netzwerkkosten gelten, wenn serverless Computing-Ressourcen eine Verbindung mit externen Ressourcen herstellen. Weitere Informationen zu Abrechnungsdetails finden Sie unter Verstehen der Serverlosen Netzwerkkosten für Databricks.
Mit Databricks Serverless Private Git können Sie einen Databricks-Arbeitsbereich mit einem privaten Git-Server verbinden, indem Sie serverlose Compute- und Azure Private Link verwenden. Ein Git-Server ist privat, wenn Internetbenutzer nicht darauf zugreifen können.
Das folgende Diagramm veranschaulicht die allgemeine Systemarchitektur:
Warum serverless Private Git verwenden?
Im Vergleich zum Git-Serverproxy bietet Serverless Private Git die folgenden Vorteile:
- Serverless Private Git erwirbt serverlose Berechnung nur, wenn sie eine Git-Anforderung empfängt, und sie kann inaktiv sein, wenn sie nicht verwendet wird. Im Gegensatz dazu erfordert der Git-Proxy, dass der Proxycluster aktiv ist, wenn der Benutzer eine Git-Anforderung sendet.
- Serverless Private Git verwendet Azure Private Link, um sicher eine Verbindung mit der privaten Git-Instanz herzustellen.
Anforderungen
- Aktivieren Sie serverlose Berechnung für den Arbeitsbereich.
- Platzieren Sie den privaten Git-Server in demselben Azure VNet wie der Standardlastenausgleich.
- Stellen Sie sicher, dass der private Git-Server über ein signiertes Zertifikat und einen gültigen vollqualifizierten HTTPS-Domänennamen (FQDN) verfügt.
- Konfigurieren Sie das VNet mit einem Standardlastenausgleich (Standard Load Balancer, SLB) für den Privaten Link-Dienst.
Einrichten von serverlosen privaten Git
- Führen Sie die Schritte zum Konfigurieren der privaten Konnektivität mit Ressourcen in Ihrem VNet aus. Auf diese Weise können Sie eine Azure Private Link-Verbindung von Serverless zu Back-Ends in Ihrem Netzwerk hinter einer SLB erstellen.
- Erstellen Sie eine Netzwerkkonnektivitätskonfiguration (Network Connectivity Configuration, NCC), um den Ausgang zu einem Standard-Load-Balancer zu konfigurieren.
- Sie können nur einen NCC pro Arbeitsbereich für private Git konfigurieren. Wenn der Arbeitsbereich eine Verbindung mit mehreren privaten Git-Servern herstellt, müssen sie alle denselben NCC verwenden.
- Informationen zu NCC-Einschränkungen, z. B. regionale Grenzwerte und Grenzwerte für Arbeitsbereichszuweisungen, finden Sie unter Anforderungen.
- Rufen Sie ein Konto-API-Token mithilfe eines Dienstprinzipals mit Zugriff auf Kontoebene ab.
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'
Die Antwort enthält ein Zugriffstoken:
{ "access_token": "...", "scope": "all-apis", "token_type": "Bearer", "expires_in": 3600 }
Alternativ können Sie ein Microsoft Entra ID-Zugriffstoken verwenden:
BEARER_TOKEN=$(az account get-access-token --resource \
2ff814a6-3304-4ab8-85cb-cd0e6f879c1d --query "accessToken" -o tsv)
- Fügen Sie eine private Endpunktregel hinzu, um die DNS-Logik mithilfe der API zu definieren.
Geben Sie im Beispiel Folgendes an:
- Konto-ID
- NCC-ID
- OAuth-Kontotoken
- Ressourcen-ID des Private-Link-Dienstes
- FQDN des Git Servers in der
domain_nameListe
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"]
}'
Die Antwort enthält die Details der privaten Endpunktregel:
{
"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"]
}
- Warten Sie einige Minuten, nachdem Sie die Regeln für private NCC-Endpunkte eingerichtet haben. Der NCC zeigt die private Endpunktregel mit einem ausstehenden Status an.
- Genehmigen Sie die ausstehende private Endpunktverbindung im privaten Linkdienst, den Sie in Schritt 1 konfiguriert haben.
- Kehren Sie innerhalb der Kontokonsole zur NCC zurück, und überprüfen Sie, ob sie eingerichtet wurde.
- Führen Sie einen Git-Vorgang im Arbeitsbereich aus. Ein UI-Indikator bestätigt, dass Serverless Private Git aktiv ist. Der Indikator kann möglicherweise einige Sekunden benötigen, um zu erscheinen, während das serverlose Rechnen startet.
Nachdem Sie es konfiguriert haben, hat Serverless Private Git Vorrang vor anderen Formen privater Git-Konnektivität, die Sie bereits bereitgestellt haben, z. B. klassischen Git-Proxy. Wenn ein klassischer Git-Proxy-Cluster ausgeführt wird, beenden Sie ihn nach dem Einrichten von Serverless Private Git.
Zusätzliche Konfigurationen
Passen Sie Git-Vorgänge mithilfe einer Konfigurationsdatei an.
- Erstellen Sie eine Konfigurationsdatei unter
/Workspace/.git_settings/config.jsongemäß der unten stehenden Spezifikation. - Erteilen Sie allen Git-Benutzern Ansichtsberechtigungen für die Konfigurationsdatei und alle CA-Zertifikatsdateien, die referenziert werden.
- Überprüfen Sie die Konnektivität mit der Git-Remote, indem Sie einen Git-Vorgang ausführen, z. B. das Klonen eines Git-Ordners.
- Es kann bis zu einer Minute dauern, bis das System die Konfigurationsdateiänderungen anwendet.
Konfigurationsdateistruktur der obersten Ebene
{
"default": { ... }, // Optional global settings
"remotes": [ ... ] // Optional list of per-remote settings
}
default Abschnitt (optional)
Globale Standardwerte gelten für alle Git-Vorgänge, es sei denn, ein bestimmter Remote setzt sie außer Kraft.
| Feld | Typ | Erforderlich | Standardwert | Description |
|---|---|---|---|---|
sslVerify |
boolean | Nein | Wahr | Gibt an, ob SSL-Zertifikate überprüft werden sollen. |
caCertPath |
Schnur | Nein | "" (leer) | Pfad zum Speicherort eines benutzerdefinierten CA-Zertifikats. |
httpProxy |
Schnur | Nein | "" (leer) | HTTP-Proxy zum Weiterleiten des Git-Verkehrs. |
customHttpPort |
Integer | Nein | Nicht angegeben. | Benutzerdefinierter HTTP-Port des Git-Servers. |
remotes Abschnitt (optional)
Eine Liste der Objekte, die Einstellungen für einzelne Remote-Git-Server definieren. Diese Einstellungen setzen den default Block für jede Remote-Sitzung individuell außer Kraft.
| Feld | Typ | Erforderlich | Standardwert | Description |
|---|---|---|---|---|
| urlPrefix | Schnur | Yes | — | Präfix, das mit Git-Remote-URLs übereinstimmt. |
| sslVerify | boolean | Nein | Wahr | Gibt an, ob SSL-Zertifikate überprüft werden sollen. |
| caCertPath | Schnur | Nein | "" (leer) | Arbeitsbereichspfad zu einem benutzerdefinierten Zertifizierungsstellenzertifikatpfad für diese Remoteverbindung. |
| httpProxy (Englisch) | Schnur | Nein | "" (leer) | HTTP-Proxy zum Weiterleiten des Git-Verkehrs. |
| customHttpPort | Integer | Nein | Nicht angegeben. | Benutzerdefinierter HTTP-Port des Git-Servers. |
Beispielkonfiguration ohne remote-spezifische Konfiguration
{
"default": {
"sslVerify": false
}
}
Vollständiges Konfigurationsbeispiel
{
"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
}
]
}
Hinweise
- Der
defaultAbschnitt muss mindestens teilweise vorhanden sein. - Der
remotes-Abschnitt ist optional. Wenn dieser Eintrag enthalten ist, muss jeder Eintrag einurlPrefixFeld enthalten. - Nicht angegebene Felder verwenden ihre Standardwerte.
- Unbekannte Felder werden ignoriert.
Einschränkungen
- Protokolle von serverlosen Proxys stehen nicht zur Verfügung.
- Serverless Private Git ist nur in Azure serverless regionen verfügbar.