Databricks Varlık Paketi dağıtım modları

Bu makalede Databricks Varlık Paketi dağıtım modlarının söz dizimi açıklanmaktadır. Paketler, Azure Databricks iş akışlarının programlı yönetimini sağlar. Bkz . Databricks Varlık Paketleri nedir?

CI/CD iş akışlarında geliştiriciler genellikle çözümleri çeşitli aşamalarda veya modlarda kodlar, test eder, dağıtır ve çalıştırır. Örneğin, en basit mod kümesi, üretim öncesi doğrulama için bir geliştirme modu ve ardından doğrulanmış teslim edilebilirler için bir üretim modu içerir. Databricks Varlık Paketleri, bu modların her birine karşılık gelen isteğe bağlı bir varsayılan davranış koleksiyonu sağlar. Bu davranışları belirli bir hedef için kullanmak için yapılandırma eşlemesinde targets hedef için bir mode veya yapılandırınpresets. hakkında targetsbilgi için bkz . paket yapılandırma hedefleri eşlemesi.

Geliştirme modu

Paketinizi geliştirme modunda dağıtmak için önce hedeflenen hedefe olarak ayarlanmış developmenteşlemeyi eklemeniz mode gerekir. Örneğin, adlı dev bu hedef bir geliştirme hedefi olarak değerlendirilir:

targets:
  dev:
    mode: development

Komutunu çalıştırarak geliştirme modunda bir hedefi dağıtmakdatabricks bundle deploy -t <target-name>, ön ayarlar kullanılarak özelleştirilebilen aşağıdaki davranışları uygular:

  • Dosya veya not defteri olarak dağıtılmayan tüm kaynaklara ön ek [dev ${workspace.current_user.short_name}] ekler ve dağıtılan her işi ve işlem hattını bir dev Azure Databricks etiketiyle etiketler.
  • Tüm ilgili dağıtılan Delta Live Tables işlem hatlarını olarak development: trueişaretler. Bkz . İşlem hattı güncelleştirmelerini çalıştırmak için geliştirme modunu kullanma.
  • İlgili paket yapılandırma dosyasında önceden belirtilmiş olan tüm mevcut küme tanımlarını geçersiz kılan, komutuna yönelik ilgili çağrılarda bundle deploy kullanımını --compute-id <cluster-id> etkinleştirir. komutuyla bundle deploy ilgili çağrılarda kullanmak --compute-id <cluster-id> yerine eşlemeyi compute_id burada veya eşlemenin bundle alt eşlemesi olarak, kullanılacak kümenin kimliğine ayarlayabilirsiniz.
  • İşler veya kalite izleyicileri gibi dağıtılan kaynaklarda tüm zamanlamaları ve tetikleyicileri duraklatır. olarak ayarlayarak schedule.pause_status UNPAUSEDtek bir iş için zamanlamaları ve tetikleyicileri çıkarın.
  • Daha hızlı yineleme için tüm dağıtılan işlerde eşzamanlı çalıştırmaları etkinleştirir. olarak ayarlayarak max_concurrent_runs tek bir iş için eşzamanlı çalıştırmaları 1devre dışı bırakın.
  • Daha hızlı yineleme için dağıtım kilidini devre dışı bırakır. Bu kilit, geliştirme modunda gerçekleşme olasılığı düşük olan dağıtım çakışmalarını önler. olarak ayarlayarak bundle.deployment.lock.enabled truekilidi yeniden etkinleştirin.

Üretim modu

Paketinizi üretim modunda dağıtmak için önce hedeflenen hedefe olarak ayarlanmış productioneşlemeyi eklemeniz mode gerekir. Örneğin, adlı prod bu hedef bir üretim hedefi olarak değerlendirilir:

targets:
  prod:
    mode: production

komutunu çalıştırarak bir hedefi üretim modunda dağıtmak databricks bundle deploy -t <target-name> aşağıdaki davranışları uygular:

  • Tüm ilgili dağıtılan Delta Live Tables işlem hatlarının olarak development: falseişaretlendiğini doğrular.

  • Geçerli Git dalın hedefte belirtilen Git dalı ile eşit olduğunu doğrular. Hedefte bir Git dalı belirtmek isteğe bağlıdır ve aşağıdaki gibi ek git bir özellik ile yapılabilir:

    git:
      branch: main
    

    Bu doğrulama, dağıtım sırasında belirtilerek --force geçersiz kılınabilir.

  • Databricks, üretim dağıtımları için hizmet sorumlularını kullanmanızı önerir. Bunu bir hizmet sorumlusuna ayarlayarak run_as zorlayabilirsiniz. Bkz. Hizmet sorumlularını yönetme ve Databricks Varlık Paketleri iş akışı için çalıştırma kimliği belirtme. Hizmet sorumlularını kullanmıyorsanız aşağıdaki ek davranışları not edin:

    • artifact_path, file_path, veya root_pathstate_path eşlemelerinin belirli bir kullanıcıya geçersiz kılınmadığını doğrular.
    • Dağıtımlar run_as için belirli izinlere sahip olan kimlikleri netleştirmek için ve permissions eşlemelerinin belirtildiğini doğrular.
  • Eşlemeyi mode developmentolarak ayarlamak için önceki davranışın aksine, eşlemeyi mode olarak ayarlamak, örneğin seçeneğini veya compute_id eşlemeyi production kullanarak --compute-id <cluster-id> ilgili paket yapılandırma dosyasında belirtilen mevcut küme tanımlarının geçersiz kılınmasına izin vermez.

Özel ön ayarlar

Databricks Varlık Paketleri, hedefler için yapılandırılabilir ön ayarları destekler ve bu sayede hedefler için davranışları özelleştirebilirsiniz. Kullanılabilir ön ayarlar aşağıdaki tabloda listelenmiştir:

Önceden ayarlanmış Açıklama
name_prefix Kaynak adlarına ön ek olarak kullanılacak ön ek dizesi.
pipelines_development İşlem hattının geliştirme modunda olup olmadığı. Geçerli değerler true veya false şeklindedir.
trigger_pause_status Tüm tetikleyicilere ve zamanlamalara uygulanacak duraklatma durumu. Geçerli değerler PAUSED veya UNPAUSED şeklindedir.
jobs_max_concurrent_runs İşler için izin verilen en fazla eşzamanlı çalıştırma sayısı.
tags İşleri ve denemeleri içeren etiketleri destekleyen tüm kaynaklara uygulanan anahtar:değer etiketleri kümesi. Databricks Varlık Paketleri, kaynağın schema etiketlerini desteklemez.

Not

Hem hem de mode presets ayarlanırsa, ön ayarlar varsayılan mod davranışını geçersiz kılar ve tek tek kaynakların ayarları da ön ayarları geçersiz kılar. Örneğin, bir zamanlama olarak UNPAUSEDayarlanmışsa ancak trigger_pause_status ön ayar olarak ayarlanmışsa PAUSED, zamanlama duraklatılmamıştır.

Aşağıdaki örnekte adlı devhedef için özel ön ayarlar yapılandırması gösterilmektedir:

targets:
  dev:
    presets:
      name_prefix: "testing_"      # prefix all resource names with testing_
      pipelines_development: true  # set development to true for pipelines
      trigger_pause_status: PAUSED # set pause_status to PAUSED for all triggers and schedules
      jobs_max_concurrent_runs: 10 # set max_concurrent runs to 10 for all jobs
      tags:
        department: finance