비고
Databricks 서버리스 프라이빗 Git은 공개 미리 보기로 제공됩니다. 컴퓨팅 및 네트워킹 비용은 서버리스 컴퓨팅 리소스가 외부 리소스에 연결할 때 적용됩니다. 청구 세부 정보는 Databricks 서버리스 네트워킹 비용 이해 를 참조하세요.
Databricks 서버리스 프라이빗 Git을 사용하면 서버리스 컴퓨팅 및 Azure Private Link를 사용하여 Databricks 작업 영역을 프라이빗 Git 서버에 연결할 수 있습니다. 인터넷 사용자가 액세스할 수 없는 경우 Git 서버는 프라이빗 서버입니다.
다음 다이어그램에서는 전체 시스템 아키텍처를 보여 줍니다.
서버리스 프라이빗 Git을 사용하는 이유는 무엇인가요?
Git 서버 프록시에 비해 서버리스 프라이빗 Git은 다음과 같은 이점을 제공합니다.
- 서버리스 Private Git은 Git 요청을 받을 때만 서버리스 컴퓨팅을 획득하며 사용하지 않을 때는 비활성 상태일 수 있습니다. 반면, Git 프록시는 사용자가 Git 요청을 제출할 때 프록시 클러스터가 활성화되어야 합니다.
- 서버리스 프라이빗 Git은 Azure Private Link를 사용하여 프라이빗 Git 인스턴스에 안전하게 연결합니다.
요구 사항
- 작업 영역에 대해 서버리스 컴퓨팅을 사용하도록 설정합니다.
- 프라이빗 Git 서버를 표준 Load Balancer와 동일한 Azure VNet에 배치합니다.
- 프라이빗 Git 서버에 서명된 인증서와 유효한 HTTPS FQDN(정규화된 도메인 이름)이 있는지 확인합니다.
- Private Link 서비스에 대한 SLB(표준 Load Balancer)를 사용하여 VNet을 구성합니다.
서버리스 프라이빗 Git 구성
- 단계에 따라 VNet의 리소스에 대한 프라이빗 연결을 구성합니다. 이렇게 하면 서버리스에서 SLB 뒤에 있는 네트워크의 백 엔드로 Azure Private Link 연결을 만들 수 있습니다.
- NCC(네트워크 연결 구성)를 만들어 표준 부하 분산 장치에 송신을 구성합니다.
- 프라이빗 Git에 대해 작업 영역당 하나의 NCC만 구성할 수 있습니다. 작업 영역이 여러 개인 Git 서버에 연결하는 경우 모두 동일한 NCC를 사용해야 합니다.
- 지역 제한 및 작업 영역 첨부 파일 제한과 같은 NCC 제한 사항은 요구 사항을 참조하세요.
- 계정 수준 액세스 권한이 있는 서비스 주체를 사용하여 계정 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'
응답에는 액세스 토큰이 포함됩니다.
{ "access_token": "...", "scope": "all-apis", "token_type": "Bearer", "expires_in": 3600 }
또는 Microsoft Entra ID 액세스 토큰을 사용할 수 있습니다.
BEARER_TOKEN=$(az account get-access-token --resource \
2ff814a6-3304-4ab8-85cb-cd0e6f879c1d --query "accessToken" -o tsv)
- API를 사용하여 DNS 논리를 정의하는 프라이빗 엔드포인트 규칙을 추가합니다.
예제에서 다음을 지정합니다.
- 계정 ID
- NCC ID
- 계정 OAuth 토큰
- Private Link 서비스 리소스 ID
-
domain_name목록에 있는 Git 서버의 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"]
}
- NCC 프라이빗 엔드포인트 규칙을 설정한 후 몇 분 정도 기다립니다. NCC는 보류 중인 상태의 프라이빗 엔드포인트 규칙을 표시합니다.
- 1단계에서 구성한 Private Link 서비스에서 보류 중인 프라이빗 엔드포인트 연결을 승인합니다.
- 계정 콘솔 내의 NCC로 돌아가서 설정되었는지 확인합니다.
- 작업 영역에서 Git 작업을 수행합니다. UI 표시기는 서버리스 프라이빗 Git이 활성 상태임을 확인합니다. 서버리스 컴퓨팅이 시작되는 동안 표시기가 표시되는 데 몇 초 정도 걸릴 수 있습니다.
구성한 후 서버리스 프라이빗 Git은 클래식 Git 프록시와 같이 이미 프로비전한 다른 형태의 프라이빗 Git 연결보다 우선합니다. 클래식 Git 프록시 클러스터가 실행 중인 경우 서버리스 프라이빗 Git을 설정한 후 종료합니다.
추가 구성
구성 파일을 사용하여 Git 작업을 사용자 지정합니다.
- 아래 사양에
/Workspace/.git_settings/config.json따라 구성 파일을 만듭니다. - 모든 Git 사용자에게 구성 파일 및 해당 사용자가 참조하는 CA 인증서 파일에 대한 보기 권한을 부여합니다.
- Git 폴더 복제와 같은 Git 작업을 수행하여 Git 원격에 대한 연결의 유효성을 검사합니다.
- 시스템에서 구성 파일 변경 내용을 적용하는 데 최대 1분이 걸릴 수 있습니다.
최상위 구성 파일 구조
{
"default": { ... }, // Optional global settings
"remotes": [ ... ] // Optional list of per-remote settings
}
default 섹션(선택 사항)
전역 기본값은 특정 원격에서 재정의하지 않는 한 모든 Git 작업에 적용됩니다.
| 분야 | 유형 | 필수 | 기본값 | Description |
|---|---|---|---|---|
sslVerify |
불리언 | 아니오 | true | SSL 인증서를 확인할지 여부입니다. |
caCertPath |
문자열 | 아니오 | ""(비어 있음) | 사용자 지정 CA 인증서에 대한 작업 영역 경로입니다. |
httpProxy |
문자열 | 아니오 | ""(비어 있음) | Git 트래픽을 라우팅하는 HTTP 프록시입니다. |
customHttpPort |
integer | 아니오 | 지정되지 않음 | Git 서버의 사용자 지정 HTTP 포트입니다. |
remotes 섹션(선택 사항)
개별 원격 Git 서버에 대한 설정을 정의하는 개체 목록입니다. 이러한 설정은 default 블록을 원격별로 재정의합니다.
| 분야 | 유형 | 필수 | 기본값 | Description |
|---|---|---|---|---|
| urlPrefix | 문자열 | Yes | — | Git 원격 URL과 일치하는 접두사입니다. |
| sslVerify | 불리언 | 아니오 | true | SSL 인증서를 확인할지 여부입니다. |
| caCertPath | 문자열 | 아니오 | ""(비어 있음) | 이 원격에 대한 사용자 지정 CA 인증서 경로에 대한 작업 영역 경로입니다. |
| http프록시 | 문자열 | 아니오 | ""(비어 있음) | Git 트래픽을 라우팅하는 HTTP 프록시입니다. |
| 사용자 정의 HTTP 포트 | integer | 아니오 | 지정되지 않음 | 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포함되어야 합니다. - 지정되지 않은 필드는 기본값을 사용합니다.
- 알 수 없는 필드는 무시됩니다.
제한점
- 서버리스 프록시 로그를 사용할 수 없습니다.
- 서버리스 프라이빗 Git은 Azure 서버리스 지역에서만 사용할 수 있습니다.