Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
HashiCorp Terraform je oblíbený opensourcový nástroj pro vytváření bezpečné a předvídatelné cloudové infrastruktury napříč několika poskytovateli cloudu. Pomocí poskytovatele Databricks Terraform můžete spravovat pracovní prostory Azure Databricks a přidruženou cloudovou infrastrukturu pomocí flexibilního výkonného nástroje. Cílem poskytovatele Databricks Terraform je podporovat všechna rozhraní REST API Databricks, která podporují automatizaci nejkomplikovanějších aspektů nasazení a správy datových platforem. Zákazníci Databricks používají poskytovatele Databricks Terraform k nasazení a správě clusterů a úloh a ke konfiguraci přístupu k datům. Zřiďte pracovní prostory Azure Databricks pomocí poskytovatele Azure .
Začínáme
V této části nainstalujete a nakonfigurujete požadavky na použití Terraformu a poskytovatele Databricks Terraformu na místním vývojovém počítači. Pak nakonfigurujete ověřování Terraformu. Po této části tento článek poskytuje ukázkovou konfiguraci, se kterou můžete experimentovat při zřizování poznámkového bloku, clusteru a úlohy k běhu poznámkového bloku na clusteru v existujícím pracovním prostoru Azure Databricks.
Požadavky
Musíte mít rozhraní příkazového řádku Terraformu. Viz Stažení Terraformu na webu Terraformu .
Musíte mít projekt Terraformu. V terminálu vytvořte prázdný adresář a přepněte na něj. (Každá samostatná sada konfiguračních souborů Terraformu musí být ve vlastním adresáři, který se nazývá Projekt Terraform .) Příklad:
mkdir terraform_demo && cd terraform_demo.mkdir terraform_demo && cd terraform_demoVložte konfigurace Terraformu do jednoho nebo více konfiguračních souborů ve vašem projektu Terraformu. Informace o syntaxi konfiguračního souboru najdete v dokumentaci k jazyku Terraform na webu Terraform.
Do svého projektu Terraform musíte přidat závislost na poskytovateli Databricks Terraform. Přidejte následující soubory do jednoho z konfiguračních souborů v projektu Terraform:
terraform { required_providers { databricks = { source = "databricks/databricks" } } }Musíte nakonfigurovat ověřování pro projekt Terraformu. Viz Ověřování v dokumentaci zprostředkovatele Databricks Terraform.
Vzorová konfigurace
Tato část obsahuje ukázkovou konfiguraci, se kterou můžete experimentovat se zřízením poznámkového bloku Azure Databricks, clusteru a úlohy pro spuštění poznámkového bloku v clusteru v existujícím pracovním prostoru Azure Databricks. Předpokládá se, že jste již nastavili požadavky a také vytvořili projekt Terraformu a nakonfigurovali projekt pomocí ověřování Terraformu, jak je popsáno v předchozí části.
Vytvořte soubor s názvem
me.tfv projektu Terraform a přidejte následující kód. Tento soubor získá informace o aktuálním uživateli (vy):# Retrieve information about the current user. data "databricks_current_user" "me" {}Vytvořte další soubor s názvem
notebook.tfa přidejte následující kód. Tento soubor představuje poznámkový blok.variable "notebook_subdirectory" { description = "A name for the subdirectory to store the notebook." type = string default = "Terraform" } variable "notebook_filename" { description = "The notebook's filename." type = string } variable "notebook_language" { description = "The language of the notebook." type = string } resource "databricks_notebook" "this" { path = "${data.databricks_current_user.me.home}/${var.notebook_subdirectory}/${var.notebook_filename}" language = var.notebook_language source = "./${var.notebook_filename}" } output "notebook_url" { value = databricks_notebook.this.url }Vytvořte další soubor s názvem
notebook.auto.tfvarsa přidejte následující kód. Tento soubor určuje vlastnosti poznámkového bloku.notebook_subdirectory = "Terraform" notebook_filename = "notebook-getting-started.py" notebook_language = "PYTHON"Vytvořte další soubor s názvem
notebook-getting-started.pya přidejte následující kód. Tento soubor představuje obsah poznámkového bloku.display(spark.range(10))Vytvořte další soubor s názvem
cluster.tfa přidejte následující kód. Tento soubor představuje cluster.variable "cluster_name" { description = "A name for the cluster." type = string default = "My Cluster" } variable "cluster_autotermination_minutes" { description = "How many minutes before automatically terminating due to inactivity." type = number default = 60 } variable "cluster_num_workers" { description = "The number of workers." type = number default = 1 } # Create the cluster with the "smallest" amount # of resources allowed. data "databricks_node_type" "smallest" { local_disk = true } # Use the latest Databricks Runtime # Long Term Support (LTS) version. data "databricks_spark_version" "latest_lts" { long_term_support = true } resource "databricks_cluster" "this" { cluster_name = var.cluster_name node_type_id = data.databricks_node_type.smallest.id spark_version = data.databricks_spark_version.latest_lts.id autotermination_minutes = var.cluster_autotermination_minutes num_workers = var.cluster_num_workers } output "cluster_url" { value = databricks_cluster.this.url }Vytvořte další soubor s názvem
cluster.auto.tfvarsa přidejte následující kód. Tento soubor určuje vlastnosti clusteru.cluster_name = "My Cluster" cluster_autotermination_minutes = 60 cluster_num_workers = 1Vytvořte další soubor s názvem
job.tfa přidejte následující kód. Tento soubor představuje úlohu, která spouští poznámkový blok v clusteru.variable "job_name" { description = "A name for the job." type = string default = "My Job" } variable "task_key" { description = "A name for the task." type = string default = "my_task" } resource "databricks_job" "this" { name = var.job_name task { task_key = var.task_key existing_cluster_id = databricks_cluster.this.cluster_id notebook_task { notebook_path = databricks_notebook.this.path } } email_notifications { on_success = [ data.databricks_current_user.me.user_name ] on_failure = [ data.databricks_current_user.me.user_name ] } } output "job_url" { value = databricks_job.this.url }Vytvořte další soubor s názvem
job.auto.tfvarsa přidejte následující kód. Tento soubor určuje vlastnosti úloh.job_name = "My Job" task_key = "my_task"Spusťte
terraform plan. Pokud dojde k nějakým chybám, opravte je a spusťte příkaz znovu.Spusťte
terraform apply.Ověřte, že se vytvořil poznámkový blok, cluster a úloha: ve výstupu
terraform applypříkazu vyhledejte adresy URL pronotebook_url,cluster_urlajob_urlpřejděte na ně.Spusťte úlohu: Na stránce Úlohy klikněte na Spustit. Po dokončení úlohy zkontrolujte doručenou poštu e-mailu.
Až budete s touto ukázkou hotovi, odstraňte poznámkový blok, cluster a úlohu z pracovního prostoru Azure Databricks spuštěním
terraform destroypříkazu .Poznámka:
Pro více informací o příkazech
terraform plan,terraform applyaterraform destroyse podívejte na Dokumentaci Terraform CLI v dokumentaci Terraform.Ověřte, že byly odstraněny poznámkový blok, cluster a úloha: aktualizujte stránky poznámkového bloku, clusteru a úloh, aby se zobrazila zpráva, že prostředek nebyl nalezen.
Testování
Otestujte konfigurace Terraformu před nasazením nebo po jejich nasazení. Testy můžete spustit podobně jako testování jednotek před nasazením prostředků. Po nasazení prostředků můžete také spouštět testy podobné integračnímu testování. Viz Testy v dokumentaci k Terraformu.
Pomocí tohoto procesu spusťte testy analogické k integračním testům s ukázkovou konfigurací tohoto článku:
Vytvořte soubor s názvem
cluster.tftest.hcla přidejte následující kód. Tento soubor testuje, jestli má nasazený cluster očekávaný název clusteru.# Filename: cluster.tftest.hcl run "cluster_name_test" { command = apply assert { condition = databricks_cluster.this.cluster_name == var.cluster_name error_message = "Cluster name did not match expected name" } }Vytvořte soubor s názvem
job.tftest.hcla přidejte následující kód. Tento soubor testuje, jestli má nasazená úloha očekávaný název úlohy.run "job_name_test" { command = apply assert { condition = databricks_job.this.name == var.job_name error_message = "Job name did not match expected name" } }Vytvořte soubor s názvem
notebook.tftest.hcla přidejte následující kód. Tento soubor zkouší, zda upravovaný poznámkový blok má očekávanou cestu k pracovnímu prostoru.run "notebook_path_test" { command = apply assert { condition = databricks_notebook.this.path == "${data.databricks_current_user.me.home}/${var.notebook_subdirectory}/${var.notebook_filename}" error_message = "Notebook path did not match expected path" } }Spusťte
terraform test. Terraform nasadí každý prostředek do pracovního prostoru Azure Databricks, spustí každý související test a jeho výsledek testu nahlásí, a pak odstraní nasazený prostředek.
Pomocí následujícího procesu spusťte testy analogické k testování jednotek s ukázkovou konfigurací tohoto článku:
- Změňte řádek
command = applyv každém z předchozích testů nacommand = plana pak spusťteterraform test. Terraform spustí každý související test a nahlásí jeho výsledek testu, ale nenasadí žádné prostředky. - Napodobte zprostředkovatele Databricks Terraform, který vám umožní spouštět
terraform testbez nasazení prostředků a také bez požadování ověřovacích údajů. Viz napodobení v dokumentaci k Terraformu. Pokud chcete spustit napodobené testy, jedním z přístupů je přidat řádekmock_provider "databricks" {}do testů a odebrat řádekcommand = applynebocommand = plan, například:
# Filename: cluster.tftest.hcl
mock_provider "databricks" {}
run "cluster_mock_name_test" {
assert {
condition = databricks_cluster.this.cluster_name == var.cluster_name
error_message = "Cluster name did not match expected name"
}
}
# Filename: job.tftest.hcl
mock_provider "databricks" {}
run "job_mock_name_test" {
assert {
condition = databricks_job.this.name == var.job_name
error_message = "Job name did not match expected name"
}
}
# Filename: notebook.tftest.hcl
mock_provider "databricks" {}
run "notebook_mock_path_test" {
assert {
condition = databricks_notebook.this.path == "${data.databricks_current_user.me.home}/${var.notebook_subdirectory}/${var.notebook_filename}"
error_message = "Notebook path did not match expected path"
}
}
Další kroky
- Správa prostředků pracovního prostoru
- Vytvoření clusteru, poznámkového bloku a úlohy
- Automatizace nastavení katalogu Unity
- Řízení přístupu k tabulkám SQL Databricks
- Vytvoření ukázkového řídicího panelu