Tryby wdrażania pakietu zasobów usługi Databricks
W tym artykule opisano składnię trybów wdrażania pakietu zasobów usługi Databricks. Pakiety umożliwiają programowe zarządzanie przepływami pracy usługi Azure Databricks. Zobacz Co to są pakiety zasobów usługi Databricks?
W przepływach pracy ciągłej integracji/ciągłego wdrażania deweloperzy zazwyczaj kodować, testować, wdrażać i uruchamiać rozwiązania w różnych fazach lub trybach. Na przykład najprostszy zestaw trybów obejmuje tryb programowania na potrzeby weryfikacji przedprodukcyjnej, a następnie tryb produkcyjny dla zweryfikowanych elementów dostarczanych. Pakiety zasobów usługi Databricks udostępnia opcjonalną kolekcję domyślnych zachowań odpowiadających każdemu z tych trybów. Wdrożenia pakietów mogą używać tych zachowań z deklaracją trybu jednowierszowego, zamiast ręcznie określać te domyślne zachowania w pliku konfiguracji pakietu i być może zapominając o dodaniu lub skonfigurowaniu jednego z bardziej zamierzonych zachowań po drodze.
Tryb programowania
Aby wdrożyć pakiet w trybie programowania, należy najpierw dodać mode
mapowanie ustawione na development
wartość , do zamierzonego celu. Na przykład ten element docelowy o nazwie dev
jest traktowany jako docelowy programistyczne:
targets:
dev:
mode: development
Wdrożenie elementu docelowego programowania przez uruchomienie databricks bundle deploy -t <target-name>
polecenia implementuje następujące zachowania:
- Poprzedza wszystkie zasoby, które nie są wdrażane jako pliki lub notesy z prefiksem
[dev ${workspace.current_user.userName}]
i tagiem każdego wdrożonego zadania i potoku za pomocądev
tagu usługi Azure Databricks. - Oznacza wszystkie powiązane potoki delty tabel na żywo jako
development: true
. Zobacz Używanie trybu programowania do uruchamiania aktualizacji potoku. - Umożliwia użycie
--compute-id <cluster-id>
polecenia w powiązanych wywołaniachbundle deploy
polecenia, które zastępuje wszystkie i wszystkie istniejące definicje klastra, które są już określone w powiązanym pliku konfiguracji pakietu. Zamiast używać--compute-id <cluster-id>
w powiązanych wywołaniachbundle deploy
polecenia, można ustawićcompute_id
mapowanie tutaj lub jako podrzędne mapowanie mapowaniabundle
na identyfikator klastra do użycia. - Wstrzymuje wszystkie harmonogramy i wyzwalacze dla wdrożonych zasobów, takich jak zadania lub monitory jakości. Usuń harmonogramy i wyzwalacze dla pojedynczego zadania, ustawiając wartość
schedule.pause_status
naUNPAUSED
. - Włącza współbieżne przebiegi we wszystkich wdrożonych zadaniach w celu szybszej iteracji. Wyłącz współbieżne uruchomienia dla pojedynczego zadania, ustawiając wartość
max_concurrent_runs
.1
- Wyłącza blokadę wdrożenia w celu szybszej iteracji. Ta blokada uniemożliwia konflikty wdrażania, które są mało prawdopodobne, aby wystąpiły w trybie deweloperskim. Włącz ponownie blokadę, ustawiając wartość
bundle.deployment.lock.enabled
true
.
Tryb produkcyjny
Aby wdrożyć pakiet w trybie produkcyjnym, należy najpierw dodać mode
mapowanie ustawione na production
, do zamierzonego celu. Na przykład ten obiekt docelowy o nazwie prod
jest traktowany jako docelowy produkt produkcyjny:
targets:
prod:
mode: production
Wdrożenie docelowego środowiska produkcyjnego przez uruchomienie databricks bundle deploy -t <target-name>
polecenia implementuje następujące zachowania:
Sprawdza, czy wszystkie powiązane potoki tabel delty na żywo są oznaczone jako
development: false
.Sprawdza, czy bieżąca gałąź Git jest równa gałęzi Git określonej w elemencie docelowym. Określenie gałęzi Git w obiekcie docelowym jest opcjonalne i można wykonać z dodatkową
git
właściwością w następujący sposób:git: branch: main
Tę walidację można zastąpić, określając
--force
podczas wdrażania.Usługa Databricks zaleca używanie jednostek usługi do wdrożeń produkcyjnych. Możesz to wymusić, ustawiając wartość
run_as
jednostki usługi. Zobacz Zarządzanie jednostkami usługi i Określanie tożsamości przebiegu dla przepływu pracy pakietów zasobów usługi Databricks. Jeśli nie używasz jednostek usługi, zwróć uwagę na następujące dodatkowe zachowania:- Sprawdza, czy
artifact_path
mapowania ,file_path
,root_path
lubstate_path
nie są zastępowane przez określonego użytkownika. - Sprawdza, czy
run_as
określono mapowania ipermissions
w celu wyjaśnienia, które tożsamości mają określone uprawnienia do wdrożeń.
- Sprawdza, czy
W przeciwieństwie do poprzedniego zachowania podczas ustawiania
mode
mapowania nadevelopment
wartość , ustawieniemode
mapowaniaproduction
na nie zezwala na zastępowanie istniejących definicji klastra określonych w powiązanym pliku konfiguracji pakietu, na przykład przy użyciu--compute-id <cluster-id>
opcji lubcompute_id
mapowania.