Databricks Terrayform sağlayıcısı

HashiCorp Terrayform , çeşitli bulut sağlayıcıları genelinde güvenli ve öngörülebilir bulut altyapısı oluşturmaya yönelik popüler bir açık kaynak araçtır. Azure Databricks çalışma alanlarınızı ve ilişkili bulut altyapısını esnek, güçlü bir araç kullanarak yönetmek için Databricks Terrayform sağlayıcısını kullanabilirsiniz. Databricks Terrayform sağlayıcısı 'nın amacı, veri Platformlarınızı dağıtmanın ve yönetmenin en karmaşık yönlerinin otomatikleştirilmesini destekleyen tüm Databricks REST API 'Lerini destekliyoruz. Databricks müşterileri, kümeleri ve işleri dağıtmak, yönetmek, Databricks çalışma alanlarını sağlamak ve veri erişimini yapılandırmak için Databricks Terrayform sağlayıcısını kullanıyor.

Terrayform kaynak ilişkisi

Önemli

Databricks Terrayform sağlayıcısı, Databricks veya Microsoft tarafından bir şekilde desteklenmemektedir. Databricks alan Mühendisliği ekipleri tarafından korunur ve olduğu gibi sağlanır. Hizmet düzeyi sözleşmesi (SLA) yok. Databricks ve Microsoft herhangi bir türde garanti vermez. Sağlayıcıyla ilgili bir sorun keşfettiğiniz, bir GitHub sorunuoluşturarak ve bu, zaman içinde proje Çözümleyicileri tarafından incelenmeyecektir.

Başlarken

Terkform 'un çalışması gereken komut satırı araçlarını yüklemek ve yapılandırmak için aşağıdaki adımları izleyin. Bu araçlar, Teraform CLI ve Azure CLI'yı içerir. Bu araçları ayarladıktan sonra, daha sonra Azure Databricks çalışma alanlarınızı ve ilişkili Azure bulut altyapısını yönetmek için kullanabileceğiniz bir temel Teraform yapılandırması oluşturma adımlarını izleyin.

Not

Bu yordam, bir Databricks Yöneticisi olarak dağıtılan bir Azure Databricks çalışma alanına erişiminizin olduğunu, ilgili Azure aboneliğine erişimi olduğunu ve Tertuform 'un bu Azure aboneliğinde gerçekleştirmesini istediğiniz eylemler için uygun izinleri olduğunu varsayar. Daha fazla bilgi için, aşağıdakilere bakın:

  1. Terrayform CLı 'yı yükler. Ayrıntılar için bkz. Terrayform Web sitesinde Terrampadownload .

  2. Azure CLı 'yı yükleyip komutunu çalıştırarak Azure 'da oturum açmak için Azure CLı 'yi kullanın az login . Ayrıntılar için bkz. Azure CLI 'yı Microsoft Azure Web sitesinde ve Azure sağlayıcısında yüklemesi: Terrayform Web SITESINDE Azure CLI kullanarak kimlik doğrulaması .

    az login
    

    İpucu

    Terrayform 'un farklı bir oturum açma bağlamı içinde çalıştırılmasını sağlamak için az login komutu yeniden çalıştırın. Terrayform 'un, çalışan çıkışında listelenenden farklı bir Azure aboneliği kullanmasını sağlamak için geçiş yapabilirsiniz "isDefault": true az login . Bunu yapmak için komutunu az account set --subscription="<subscription ID>" <subscription ID> id çalıştırarak, çalışan çıktısında istenen aboneliğin özelliğinin değeriyle değiştirin az login .

    Bu yordam, kimlik doğrulaması için varsayılan abonelikle birlikte Azure CLı 'yı kullanır. Alternatif kimlik doğrulama seçenekleri için bkz. Terrayform Web sitesinde Azure 'Da kimlik doğrulama .

  3. Terminalinizde boş bir dizin oluşturun ve ardından bu dizine geçin. (Her bir Terrayform yapılandırma dosyası kümesi kendi dizininde olmalıdır.) Örneğin: mkdir terraform_demo && cd terraform_demo .

    mkdir terraform_demo && cd terraform_demo
    
  4. Bu boş dizinde adlı bir dosya oluşturun main.tf . Aşağıdaki içeriği bu dosyaya ekleyin ve dosyayı kaydedin:

    terraform {
      required_providers {
        azurerm = {
          source = "hashicorp/azurerm"
          version = ">= 2.26"
        }
    
        databricks = {
          source = "databrickslabs/databricks"
          version = "0.3.2"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    provider "databricks" {}
    
  5. Komutunu çalıştırarak dosyayı içeren çalışma dizinini başlatın main.tf terraform init . Daha fazla bilgi için bkz. Terrayform Web sitesinde komut: init .

    terraform init
    

    Terrayform, azurerm ve databricks sağlayıcılarını indirir ve adlı geçerli çalışma dizininizin gizli bir alt dizinine yükler .terraform . terraform initKomut, sağlayıcının hangi sürümünün yüklü olduğunu yazdırır. Terrayform ayrıca adlı bir kilit dosyası oluşturur .terraform.lock.hcl , böylece projeniz için kullanılan sağlayıcıları güncelleştirmek istediğiniz zaman kontrol edebilirsiniz.

  6. Komutunu çalıştırarak yapılandırmanın istenen durumuna ulaşmak için gereken değişiklikleri uygulayın terraform apply . Daha fazla bilgi için bkz. Terrayform Web sitesinde komut: uygulama .

    terraform apply
    

    Dosyada henüz bir kaynak belirtilmediğinden main.tf , çıkış Apply complete! Resources: 0 added, 0 changed, 0 destroyed. de, Terrayform verileri adlı bir dosyaya yazar terraform.tfstate . Kaynak oluşturmak için, oluşturulacak istenen kaynakları belirtmek üzere örnek yapılandırma, sonraki adımlarveya her ikisi ile devam edin ve sonra terraform apply komutu tekrar çalıştırın. Terkform, bu dosyada yönettiği kaynakların kimliklerini ve özelliklerini depolar terraform.tfstate , böylece ileri giderek bu kaynakları güncelleştirebilir veya yok edebilir.

Örnek yapılandırma

Mevcut bir Azure Databricks çalışma alanında bir not defteri ve bu not defteri çalıştıran bir işi oluşturan örnek bir Terupform yapılandırması oluşturmak için aşağıdaki yordamı izleyin.

  1. main.tf Başlarkenbölümünde oluşturduğunuz dosyada, databricks sağlayıcıyı mevcut bir Azure Databricks çalışma alanına başvuracak şekilde değiştirin:

    provider "databricks" {
      host = var.databricks_workspace_url
    }
    
  2. main.tfDosyanın sonuna aşağıdaki kodu ekleyin:

    variable "databricks_workspace_url" {
      description = "The URL to the Azure Databricks workspace (must start with https://)"
      type = string
      default = "<Azure Databricks workspace URL>"
    }
    
    variable "resource_prefix" {
      description = "The prefix to use when naming the notebook and job"
      type = string
      default = "terraform-demo"
    }
    
    variable "email_notifier" {
      description = "The email address to send job status to"
      type = list(string)
      default = ["<Your email address>"]
    }
    
    // Get information about the Databricks user that is calling
    // the Databricks API (the one associated with "databricks_connection_profile").
    data "databricks_current_user" "me" {}
    
    // Create a simple, sample notebook. Store it in a subfolder within
    // the Databricks current user's folder. The notebook contains the
    // following basic Spark code in Python.
    resource "databricks_notebook" "this" {
      path     = "${data.databricks_current_user.me.home}/Terraform/${var.resource_prefix}-notebook.ipynb"
      language = "PYTHON"
      content_base64 = base64encode(<<-EOT
        # created from ${abspath(path.module)}
        display(spark.range(10))
        EOT
      )
    }
    
    // Create a job to run the sample notebook. The job will create
    // a cluster to run on. The cluster will use the smallest available
    // node type and run the latest version of Spark.
    
    // Get the smallest available node type to use for the cluster. Choose
    // only from among available node types with local storage.
    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
    }
    
  3. Aşağıdaki değerleri değiştirin ve sonra dosyayı kaydedin:

    • <Azure Databricks workspace URL>Azure Databricks çalışma ALANıNıN URL 'siyle değiştirin.
    • <Your email address>E-posta adresiniz ile değiştirin.
  4. terraform apply öğesini çalıştırın.

  5. Not defteri ve işin oluşturulduğunu doğrulayın: terraform apply komutun çıktısında, ve Için URL 'leri bulun ve notebook_url job_url bunlara gidin.

  6. İşi çalıştırın: işler sayfasında Şimdi Çalıştır' a tıklayın. İş bittikten sonra, e-posta gelen kutunuza bakın.

  7. Bu örnekle işiniz bittiğinde, öğesini çalıştırarak Azure Databricks çalışma alanından Not defterini ve işi silin terraform destroy .

  8. Not defteri ve işin silindiğini doğrulayın: yeniden depolarımızın bulunamadığını belirten bir ileti göstermek için Not defteri ve işler sayfalarını yenileyin.

Sonraki adımlar

  1. Azure Databricks çalışma alanı oluşturun.
  2. Azure Databricks çalışma alanı için çalışma alanı kaynaklarını yönetme .

Sorun giderme

Terzform 'a özgü destek için, HashiCorp tartış Web sitesindeki en son terdiform konularına bakın. Databricks Terkform sağlayıcısına özgü sorunlar için bkz. databrickslabs/terkform-Provider-databricks GitHub deposundaki sorunlar .

Ek kaynaklar