磚起程拓殖的提供者

HashiCorp起程拓殖是一個流行的開源工具,用於跨多個雲提供商創建安全和可預測的雲基礎設施。您可以使用磚起程拓殖的提供者使用一個靈活、強大的工具來管理您的Databricks工作區和相關的雲基礎設施。Databricks Terraform提供程序的目標是支持所有Databricks REST api,支持部署和管理數據平台的最複雜方麵的自動化。Beplay体育安卓版本Databricks客beplay体育app下载地址戶使用Databricks Terraform提供程序來部署和管理集群和作業,提供Databricks工作空間,並配置數據訪問。

開始

完成以下步驟,安裝和配置terrform需要操作的命令行工具。這些工具包括磚CLI,起程拓殖CLI,AWS CLI.在設置這些工具之後,完成創建基本terrform配置的步驟,您可以稍後使用該配置來管理Databricks工作空間和相關的AWS雲基礎設施。

請注意

本過程假設您以Databricks管理員的身份訪問Databricks工作空間、訪問相應的AWS帳戶以及希望terracform在該AWS帳戶中執行的適當權限。欲了解更多信息,請參見以下內容:

  1. 創建Databricks個人訪問令牌,以允許terrform在Databricks帳戶內調用Databricks api。有關詳細信息,請參見使用Databricks個人訪問令牌進行身份驗證

  2. 安裝Databricks命令行界麵(CLI),然後使用Databricks個人訪問令牌配置Databricks CLI配置——令牌——簡介<概要名稱>命令為Databricks個人訪問令牌創建連接配置文件。取代<概要名稱>使用此連接配置文件的惟一名稱。有關詳細信息,請參見中“設置身份驗證”和“連接配置文件”小節磚CLI

    Databricks配置——token——profile <配置文件名>

    提示

    每個Databricks個人訪問令牌都與Databricks帳戶中的特定用戶相關聯。運行配置——令牌——簡介<概要名稱>命令(替換<概要名稱>為您希望terrraform使用的每個Databricks個人訪問令牌提供一個惟一的名稱)。

  3. 安裝Terraform CLI。有關詳細信息,請參見下載起程拓殖在Terraform網站上。

  4. 創建AWS訪問密鑰,它由AWS密鑰和AWS密鑰組成。有關詳細信息,請參見管理訪問鍵(控製台)在AWS網站上。

  5. 安裝AWS命令行,然後使用AWS訪問密鑰配置AWS命令行aws配置——簡介<概要名稱>命令。取代<概要名稱>使用此連接配置文件的惟一名稱。有關詳細信息,請參見安裝、更新和卸載AWS CLI版本2而且使用aws配置進行快速配置在AWS網站上。

    Aws配置——配置文件<配置文件名稱>

    提示

    每個AWS接入密鑰都與特定的IAM用戶關聯在一個AWS帳戶中。運行aws配置——簡介<概要名稱>命令(替換<概要名稱>使用惟一名稱)為您希望terrraform使用的每個AWS訪問鍵設置。

    該過程使用AWS CLI以及默認位置的共享憑證/配置文件進行身份驗證。有關其他身份驗證選項,請參見身份驗證在terrform注冊網站上。

  6. 在終端中創建一個空目錄,然後切換到該目錄。(每一組terrform配置文件都必須位於自己的目錄中。)例如:mkdirterraform_demo& &cdterraform_demo

    mkdir terraform_demo& &cdterraform_demo
  7. 在這個空目錄中,創建一個名為main.tf.將以下內容添加到該文件中,然後保存該文件。

    提示

    如果您使用Visual Studio Code,則HashiCorp起程拓殖Visual Studio Code擴展為terrraform文件添加了編輯功能,如語法高亮顯示、智能感知、代碼導航、代碼格式化、模塊資源管理器等。

    變量“aws_connection_profile”{描述= " AWS連接配置文件的名稱使用。”類型= string默認= < AWS連接配置文件名稱>”}變量“aws_region”={描述的代碼AWS地區使用。”類型=字符串的默認= " < > AWS地區代碼”}變量“databricks_connection_profile”={描述“磚連接配置文件的名稱使用。”類型= string默認= <磚連接配置文件名稱>”}起程拓殖{required_providers {AWS = {Source = "hashicorp/aws" version = "~> 3.27"} databricks = {Source = "databricks/databricks"}}} provider "aws" {profile = var.aws_connection_profile region = var.aws_region} provider "databricks" {profile = var.databricks_connection_profile}
  8. 文件中替換以下值main.tf文件,然後保存文件:

    • 取代< AWS連接配置文件名稱>使用您在前麵的步驟5中創建的AWS連接配置文件的名稱。

    • 取代< AWS地區代碼>使用希望terrraform使用的AWS Region的代碼(例如,us-west-2).

    • 取代<磚連接配置文件名稱>使用前麵在步驟2中創建的Databricks連接配置文件的名稱。

  9. 初始化包含main.tf文件,運行起程拓殖初始化命令。有關更多信息,請參見命令:初始化在Terraform網站上。

    起程拓殖init

    起程拓殖下載aws而且提供程序並將它們安裝在當前工作目錄的隱藏子目錄中,名為.terraform.的起程拓殖初始化命令打印出所安裝的提供程序的版本。Terraform還創建一個名為.terraform.lock.hcl它指定所使用的確切的提供程序版本,以便您可以控製何時要更新用於項目的提供程序。

  10. 應用所需的更改,以達到所需的配置狀態起程拓殖應用命令。有關更多信息,請參見命令:在Terraform網站上。

    起程拓殖應用

    中尚未指定任何資源main.tf文件,輸出為應用完成了!資源:0補充說,0改變,0摧毀。此外,Terraform將數據寫入一個名為terraform.tfstate.要創建資源,請繼續示例配置下一個步驟,或同時指定要創建的所需資源,然後運行起程拓殖應用再次命令。Terraform將其管理的資源的id和屬性存儲在此terraform.tfstate文件,以便它可以繼續更新或銷毀這些資源。

示例配置

完成以下過程,在現有的Databricks工作空間中創建一個示例terrform配置,該配置創建一個筆記本和一個作業來運行該筆記本。

請注意

下麵的terrform配置示例隻與現有的Databricks工作空間交互。因此,要運行這個示例,不需要配置AWS CLI,也不需要配置您的main.tf文件需要包含變量aws_connection_profileaws_region,或者是aws提供者。

  1. 在最後main.tf創建的文件開始,添加以下代碼:

    變量"resource_prefix" {description = "命名筆記本和作業時使用的前綴" type = string default = "terraform-demo"}變量"email_notifier" {description = "發送作業狀態的電子郵件地址" type = list(string) default =["<您的電子郵件地址>"]}//獲取調用Databricks API的Databricks用戶的信息(與" databrics_connection_profile "相關聯的那個)。data "databricks_current_user" "me"{} //創建一個簡單的示例筆記本。將其存儲在Databricks當前用戶文件夾中的子文件夾中。該筆記本包含以下Python中的基本Spark代碼。resource "databricks_notebook" "this" {path = "${data.databricks_current_user.me.home}/Terraform/${var.resource_prefix}-notebook. resource "databricks_notebook" "this" {path = "${data.databricks_current_user.me.home}/Terraform/${var.resource_prefix} . "ipynb" language = "PYTHON" content_base64 = base64encode(<<-EOT # created from ${abspath(path.module)} display(spark.range(10)) EOT)} //創建一個作業來運行示例筆記本。作業將創建//一個要運行的集群。集群將使用最小的可用//節點類型並運行最新版本的Spark。//獲取用於集群的最小可用節點類型。僅從具有本地存儲的可用節點類型中選擇//。 data "databricks_node_type" "smallest" { local_disk = true } // Get the latest Spark version to use for the cluster. data "databricks_spark_version" "latest" {} // Create the job, emailing notifiers about job success or failure. resource "databricks_job" "this" { name = "${var.resource_prefix}-job-${data.databricks_current_user.me.alphanumeric}" new_cluster { num_workers = 1 spark_version = data.databricks_spark_version.latest.id node_type_id = data.databricks_node_type.smallest.id } notebook_task { notebook_path = databricks_notebook.this.path } email_notifications { on_success = var.email_notifier on_failure = var.email_notifier } } // Print the URL to the notebook. output "notebook_url" { value = databricks_notebook.this.url } // Print the URL to the job. output "job_url" { value = databricks_job.this.url }
  2. 取代<您的電子郵件地址>與您的電子郵件地址,並保存文件。

  3. 運行起程拓殖應用

  4. 的輸出中,驗證筆記本和作業是否已創建起程拓殖應用命令,找到notebook_url而且job_url然後去找他們。

  5. 運行作業:在工作頁麵,點擊現在運行.工作完成後,檢查你的電子郵件收件箱。

  6. 當您完成這個示例時,通過運行從Databricks工作區中刪除筆記本和作業起程拓殖摧毀

  7. 驗證筆記本和作業是否已刪除:刷新筆記本和工作頁,以顯示無法找到資源的消息。

下一個步驟

  1. 創建一個工作區和相關的基礎設施

  2. 管理工作區資源為Databricks工作空間。

故障排除

請注意

有關特定於terrraform的支持,請參閱最新起程拓殖的話題在HashiCorp討論網站上有關特定於Databricks Terraform Provider的問題,請參見問題databrickslabs / terraform-provider-databricksGitHub庫。

錯誤:安裝提供程序失敗

問題:如果您沒有辦理登機手續terraform.lock.hcl文件保存到版本控製係統,然後運行起程拓殖初始化命令,顯示如下信息:失敗的安裝提供者.額外的輸出可能包括類似於以下的消息:

當安裝databrickslab /databricks: v1.0.0: checksum list沒有SHA-256哈希為“https://github.com/databricks/terraform-provider-databricks/releases/download/v1.0.0/terraform-provider-databricks_1.0.0_darwin_amd64.zip”時發生錯誤

導致:您的Terraform配置引用了過時的Databricks Terraform提供程序。

解決方案

  1. 取代databrickslabs /磚磚/磚在你所有的.tf文件。

    文件所在的父文件夾中運行以下Python命令,可自動進行這些替換.tf文件更新:

    python3-c“$ (curl - ls https://dbricks.co/updtfns)”
  2. 運行以下Terraform命令,然後在出現提示時批準更改:

    Terraform state replace-provider databrickslab /databricks databricks/databricks

    有關此命令的信息,請參見命令:國家replace-provider在Terraform文檔中。

  3. 運行以下Terraform命令驗證更改:

    起程拓殖init

錯誤:查詢可用的提供程序包失敗

問題:如果您沒有辦理登機手續terraform.lock.hcl文件保存到版本控製係統,然後運行起程拓殖初始化命令,顯示如下信息:失敗的查詢可用提供者

導致:您的Terraform配置引用了過時的Databricks Terraform提供程序。

解決方案中的解決方案說明錯誤:安裝提供程序失敗

額外的資源