Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dowiedz się, jak skonfigurować potoki usługi Azure DevOps w celu zapewnienia uwierzytelniania dla poleceń interfejsu wiersza polecenia usługi Databricks i wywołań interfejsu API w ramach automatyzacji.
Uwierzytelnianie usługi Azure DevOps
Zarządzanie uwierzytelnianiem (pierwszej i trzeciej strony) w usłudze Azure DevOps odbywa się za pomocą połączeń usługi. W portalu Usługi Azure DevOps możesz uzyskać dostęp do połączeń usług na dowolnej stronie projektu w obszarze Ustawienia projektu.
Aby uwierzytelnić i autoryzować dostęp CLI do Azure Databricks z zasobów Azure DevOps, użyj typu połączenia z usługą Azure Resource Manager. Dla tego typu wybierz jedną z następujących metod uwierzytelniania:
- Federacja tożsamości obciążeń w Microsoft Entra
- Używa protokołu OpenID Connect (OIDC) do uzyskiwania tokenów w imieniu jednostki usługi.
- Wymaga skonfigurowania problemów generowanych przez usługę Azure DevOps i identyfikatora podmiotu z jednostką usługi, której zamierzasz użyć.
- Odpowiedni mechanizm uwierzytelniania: Azure CLI.
- Jednostka usługi Microsoft Entra
- Używa identyfikatora klienta i klucza tajnego klienta MS Entra w celu wygenerowania krótkotrwałego tokenu OAuth.
- Wymaga wygenerowania wpisu tajnego dla jednostki usługi, która ma być używana na potrzeby połączenia z usługą.
- Odpowiednie mechanizmy uwierzytelniania: Azure CLI, tajemnice klienta firmy Microsoft Entra.
- Tożsamość zarządzana Microsoft Entra ID
- Używa tożsamości przypisanej do zasobu (takiego jak obliczenia), na którym jest wykonywany interfejs wiersza polecenia. W kontekście usługi Azure DevOps jest to istotne tylko wtedy, gdy używasz własnych modułów uruchamiaczy. Zobacz Tworzenie połączenia usługi Azure Resource Manager z maszyną wirtualną korzystającą z tożsamości zarządzanej.
- Odpowiednie mechanizmy uwierzytelniania: Azure CLI, tożsamości zarządzane przez Microsoft Entra (dawniej MSI).
Po wybraniu mechanizmu uwierzytelniania, który najlepiej odpowiada potrzebom projektu, należy skonfigurować go w definicji pipeline'u usługi Azure DevOps (pipeline.yml), aby działać z CLI usługi Azure Databricks.
Skonfiguruj potok Azure DevOps, aby używać Azure CLI do uwierzytelniania.
Domyślnie CLI usługi Azure Databricks będzie używać CLI Azure jako mechanizmu uwierzytelniania w usłudze Azure Databricks.
Należy pamiętać, że użycie interfejsu wiersza polecenia platformy Azure do uwierzytelniania wymaga wykonania wszystkich wywołań interfejsu wiersza polecenia usługi Azure Databricks w elemecie AzureCLI@2 task, co oznacza, że nie ma możliwości udostępniania uwierzytelnionej sesji w kolejnych zadaniach. Każde zadanie uwierzytelnia się niezależnie, co powoduje opóźnienie podczas ich uruchamiania.
Poniższa przykładowa konfiguracja usługi Azure Pipelines używa Azure CLI do uwierzytelniania i uruchamiania polecenia interfejsu wiersza polecenia usługi Azure Databricks bundle deploy:
- task: AzureCLI@2
inputs:
azureSubscription: {your-azure-subscription-id-here}
useGlobalConfig: true
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
export DATABRICKS_HOST=https://adb...
databricks bundle deploy
Podczas konfigurowania potoku Azure DevOps w celu użycia interfejsu wiersza polecenia Azure do uruchamiania poleceń interfejsu wiersza polecenia Azure Databricks, wykonaj następujące czynności:
- Użyj
azureSubscription, aby skonfigurować połączenie usługi, którego chcesz użyć. - Skonfiguruj
useGlobalConfigdo używania wartości domyślnejAZURE_CONFIG_FILE, ponieważdatabricks bundlepolecenia używają filtrowania zmiennych środowiskowych dla podprocesów. Jeśli ta wartość nie zostanie ustawiona, te podprocesy nie będą mogły znaleźć szczegółów uwierzytelnionej sesji. - Jeśli nie został on już wyeksportowany (na przykład w poprzednim kroku lub w konfiguracji pakietu), wyeksportuj zmienną
DATABRICKS_HOSTśrodowiskową.
Skonfiguruj potok Azure DevOps do używania sekreta klienta Microsoft Entra do uwierzytelniania
Jeśli nie chcesz używać interfejsu wiersza polecenia platformy Azure do uwierzytelniania, ponieważ dodaje zbyt duże opóźnienie lub dlatego, że musisz użyć interfejsu wiersza polecenia platformy Azure w innym typie zadania, użyj wpisu tajnego klienta Firmy Microsoft Entra. Szczegóły uwierzytelniania należy pobrać z połączenia z usługą, dlatego należy użyć AzureCLI@2 zadania w konfiguracji przepływu.
AzureCLI@2 Użyj zadania , aby pobrać identyfikator klienta i klucz tajny klienta z połączenia usługi, a następnie wyeksportować je jako zmienne środowiskowe. Kolejne zadania mogą używać ich bezpośrednio. Przykład można znaleźć w temacie Use a Microsoft Entra service principal to manage Databricks Git folders (Używanie jednostki usługi Microsoft Entra do zarządzania folderami Git usługi Databricks).
Poniższa przykładowa konfiguracja usługi Azure Pipelines używa tajnego klucza klienta Microsoft Entra do uwierzytelniania i uruchamiania polecenia interfejsu wiersza polecenia Azure Databricks bundle deploy.
- task: AzureCLI@2
inputs:
azureSubscription: {your-azure-subscription-id-here}
addSpnToEnvironment: true
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
echo "##vso[task.setvariable variable=ARM_CLIENT_ID]${servicePrincipalId}"
echo "##vso[task.setvariable variable=ARM_CLIENT_SECRET]${servicePrincipalKey}"
echo "##vso[task.setvariable variable=ARM_TENANT_ID]${tenantId}"
- script: |
export DATABRICKS_HOST=https://adb...
databricks bundle deploy
Konfigurując potok Azure DevOps do używania tajemnic klienta Microsoft Entra do uruchamiania poleceń CLI Azure Databricks, wykonaj następujące kroki:
- Skonfiguruj
addSpnToEnvironment, aby wyeksportować odpowiednie zmienne środowiskowe do skryptu wbudowanego. - Skrypt wbudowany eksportuje zmienne środowiskowe zakresu zadania jako zmienne środowiskowe zakresu pracy pod nazwami, które CLI Azure Databricks automatycznie wykrywa.
- Jeśli nie został on już wyeksportowany (na przykład w poprzednim kroku lub w konfiguracji pakietu), wyeksportuj zmienną
DATABRICKS_HOSTśrodowiskową. - Jeśli oznaczysz zmienną
ARM_CLIENT_SECRETśrodowiskowąissecret=trueza pomocą polecenia , musisz jawnie dodać ją do każdego kolejnego kroku, który go potrzebuje.- Jeśli tego nie zrobisz, zmienna
ARM_CLIENT_SECRETśrodowiskowa będzie dostępna dla każdego kolejnego kroku. - Zmienna
ARM_CLIENT_SECRETśrodowiskowa jest maskowana w danych wyjściowych niezależnie od ustawienia.
- Jeśli tego nie zrobisz, zmienna
Konfiguruj potok Azure DevOps do korzystania z tożsamości zarządzanej firmy Microsoft do uwierzytelniania.
Ponieważ uwierzytelnianie tożsamości zarządzanej platformy Azure zależy od konfiguracji maszyny wirtualnej lub kontenera w celu zagwarantowania, że interfejs wiersza polecenia usługi Azure Databricks jest wykonywany w odpowiedniej tożsamości, konfiguracja potoku usługi Azure DevOps nie wymaga określenia AzureCLI@2 zadania.
Poniższa przykładowa konfiguracja usługi Azure Pipelines używa tożsamości zarządzanej Microsoft Entra do uwierzytelnienia i uruchomienia polecenia CLI bundle deploy usługi Azure Databricks:
- script: |
export DATABRICKS_AZURE_RESOURCE_ID=/subscriptions/<id>/resourceGroups/<name>/providers/Microsoft.Databricks/workspaces/<name>
export ARM_CLIENT_ID=eda1f2c4-07cb-4c2c-a126-60b9bafee6d0
export ARM_USE_MSI=true
export DATABRICKS_HOST=https://adb...
databricks current-user me --log-level trace
Podczas konfigurowania potoku usługi Azure DevOps w celu używania zarządzanych tożsamości Microsoft Entra do uruchamiania poleceń CLI narzędzia Azure Databricks, wykonaj następujące czynności:
- Tożsamość zarządzana firmy Microsoft Entra musi mieć przypisaną rolę "Współautor" w obszarze roboczym usługi Databricks, do którego będzie uzyskiwany dostęp.
- Wartość zmiennej środowiskowej
DATABRICKS_AZURE_RESOURCE_IDznajduje się w obszarze Właściwości wystąpienia usługi Azure Databricks w witrynie Azure Portal. - Wartość zmiennej środowiskowej
ARM_CLIENT_IDto identyfikator klienta tożsamości zarządzanej.
Uwaga / Notatka
Jeśli zmienna DATABRICKS_HOST środowiskowa nie jest określona w tej konfiguracji, wartość zostanie wywnioskowana z .DATABRICKS_AZURE_RESOURCE_ID
Zainstaluj interfejs wiersza polecenia Azure Databricks przy użyciu potoku Azure Pipelines.
Po skonfigurowaniu preferowanych mechanizmów uwierzytelniania należy zainstalować interfejs wiersza polecenia usługi Azure Databricks na hoście lub agencie, który uruchomi polecenia interfejsu wiersza polecenia usługi Azure Databricks.
# Install Databricks CLI
- script: |
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
displayName: 'Install Databricks CLI'
Wskazówka
- Jeśli nie chcesz automatycznie instalować najnowszej wersji interfejsu wiersza polecenia usługi Azure Databricks, zastąp ciąg
mainw adresie URL instalatora określoną wersją (na przykładv0.224.0).
Najlepsze rozwiązania
Usługa Databricks zaleca używanie federacji tożsamości obciążeń w ramach Microsoft Entra jako preferowanej metody uwierzytelniania. Nie korzysta ona z wpisów tajnych i jest bezpieczniejsza niż inne metody uwierzytelniania. Działa automatycznie z zadaniem
AzureCLI@2bez konieczności ręcznej konfiguracji.Aby uzyskać więcej informacji, zobacz Tworzenie połączenia usługi Azure Resource Manager korzystającego z federacji tożsamości obciążenia.