Sunucusuz işler için ortam değişkenlerini yapılandırma

Ortam değişkenleri, sunucusuz Lakeflow İşleri görevlerinde uygulama koduna dağıtıma özgü yapılandırma sağlar. Bir işte adlandırılmış ortam değişken girişlerini tanımlayın, ardından her görev için ihtiyacı olan bir giriş seçin. Beta sırasında, Jobs API üzerinden ortam değişkenlerini yapılandırırsınız.

Important

Bu özellik Beta sürümündedir. Bunu kullanmak için, bir çalışma alanı yöneticisinin Önizlemeler sayfasından Lakeflow İşleri'nde Ortam değişkenlerini açması gerekir. Bkz. Azure Databricks önizlemelerini yönetme.

Bu sayfa, sunucusuz işler için ortam değişkenlerini açıklar. Sunucusuz hesaplama init scriptlerini desteklemez. Eğer iş yükünüz klasik hesaplama üzerinde çalışıyorsa, Kurulum ve init scriptleri ile ortam değişkenlerini kullanın bölümünü izleyin.

Çevre değişkenleri nasıl çalışır

Ortam değişken girişleri iş seviyesinde tanımlanır. Her girdi benzersiz bir anahtara sahiptir, satır içi değişkenler içerir ve tüm sunucusuz görev türleriyle çalışır. Bir giriş anahtarı yalnızca harfler, sayılar, tire ve alt çizgi içerebilir. Her satır içi değişken adı bir harf veya alt çizgi ile başlamalıdır ve yalnızca harfler, sayılar ve alt çizgiler içerebilir.

Her görev, tek bir ortam değişkeni girişi seçer ve environment_variables_key sadece o girişin değişkenlerini alır. Girişler asla birleştirilmez ve bir giriş diğerinden miras alamaz. environment_variables_key öğesini belirtmeyen bir görev hiç ortam değişkeni almaz.

Ortam değişkenleri yalnızca görev sürecinde çalışan uygulama kodu için kullanılabilirdir. Spark uygulama mantığı için mevcut değiller.

Requirements

  • Bir çalışma alanı yöneticisi, Önizlemeler sayfasından Lakeflow İşleri'nde Ortam değişkenlerini açtı. Bkz. Azure Databricks önizlemelerini yönetme.
  • Serverless ortamında sürüm 5 veya üzeri çalışan görevler.

Limitations

Kullanıcı tanımlı fonksiyonlar (UDF'ler) ortam değişkenlerini okuyamaz, çünkü UDF'ler görev sürecinde değil Spark yürütme mantığında çalışır.

Aşağıdaki sınırlar geçerlidir:

Configuration Sınır
Her iş için ortam değişkeni girdileri 10
Giriş anahtarı 1–100 karakter; ^[\w-_]+$ ile eşleşmelidir
Giriş başına satır içi değişkenler 100
Satır içi değişken adı 1–256 karakter; Eşleşmeli ^[A-Za-z_][A-Za-z0-9_]*$
Satır içi değişken değeri 512 karakter

Ortam değişkenlerini Jobs API ile yapılandırma

Bir istekte alanı environment_variablesPOST /api/2.2/jobs/create kullanarak ortam değişken girişlerini tanımlayın. Girdi kullanan her görevde environment_variables_key ayarlayın.

Aşağıdaki örnek, bir not defteri görevi ve bir JAR görevi için ayrı ortam değişken girişlerini tanımlar. Her görev, girişini environment_variables_key ile seçer ve herhangi bir sunucusuz görev türü de aynı şekilde bir girişi kullanabilir:

{
  "name": "serverless-environment-variables-example",
  "tasks": [
    {
      "task_key": "process_orders",
      "notebook_task": {
        "notebook_path": "/Workspace/Shared/process-orders"
      },
      "environment_key": "default",
      "environment_variables_key": "production"
    },
    {
      "task_key": "summarize",
      "spark_jar_task": {
        "main_class_name": "com.company.main"
      },
      "environment_key": "summary_env",
      "environment_variables_key": "summary_vars"
    }
  ],
  "environments": [
    {
      "environment_key": "default",
      "spec": {
        "environment_version": "5",
        "dependencies": []
      }
    },
    {
      "environment_key": "summary_env",
      "spec": {
        "environment_version": "5",
        "java_dependencies": ["/Volumes/company/default/prod/summarize.jar"]
      }
    }
  ],
  "environment_variables": [
    {
      "environment_variables_key": "production",
      "variables": {
        "APP_ENV": "production",
        "REGION": "us-west-2"
      }
    },
    {
      "environment_variables_key": "summary_vars",
      "variables": {
        "APP_ENV": "production",
        "LOG_LEVEL": "INFO",
        "LOG_FILE": "service.log"
      }
    }
  ]
}

Ayrıca ortam değişkeni girdilerini Bir işi güncelleme, Bir iş için tüm ayarların üzerine yazma ve Tek seferlik çalıştırma gönderme işlemleriyle de yapılandırabilirsiniz.

Uygulama kodunda ortam değişkenlerini okuma

Uygulama kodu, işlem ortamından yapılandırılmış değişkenleri okur.

Python

import os

app_environment = os.environ["APP_ENV"]
region = os.environ["REGION"]

Scala

val appEnvironment = sys.env("APP_ENV")
val region = sys.env("REGION")

Ek kaynaklar