Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Databricks Uygulamaları, Databricks platformunda kullanıcılarla kolayca paylaşabileceğiniz güvenli veriler ve yapay zeka uygulamaları oluşturmanıza olanak tanır. Bildirim temelli Otomasyon Paketleri'ni kullanarak uygulamalarınızın dağıtımlarını yönetebilirsiniz. Uygulamalar ve paketler hakkında daha fazla bilgi için bkz. Databricks Uygulamaları ve Bildirim temelli Otomasyon Paketleri nedir?.
Bu makalede, yerel olarak bir Databricks uygulaması geliştirme ve ardından Bildirim temelli Otomasyon Paketlerini kullanarak uygulamanın Databricks çalışma alanına dağıtımlarını yönetmek için bir paket yapılandırma adımları gösterilmektedir.
Tavsiye
Streamlit uygulamasıyla örnek bir paket başlatmak için şu komutla bundle init streamlit-app paket şablonunu kullanın:
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
Gereksinimler
- Databricks çalışma alanınız ve yerel geliştirme ortamınız Databricks Uygulamalarının gereksinimlerini karşılamalıdır. Bkz. Databricks Apps çalışma alanınızı ve geliştirme ortamınızı ayarlama.
- Databricks CLI sürüm 0.250.0 veya üzeri. Yüklü Databricks CLI sürümünüzü denetlemek için komutunu
databricks -vçalıştırın. Databricks CLI'yı yüklemek için bkz. Databricks CLI'yı yükleme veya güncelleştirme.
Yerel olarak uygulama oluşturma
İlk olarak bir Databricks uygulaması oluşturun. Uygulamalar, Dash veya Gradio gibi popüler çerçeveler kullanılarak Python geliştirilir. Sıfırdan yerel olarak bir Databricks uygulaması oluşturabilir, Databricks çalışma alanında bir uygulama oluşturabilir ve ardından dosyaları yerel makinenizle eşitleyebilir veya GitHub bir Databricks örnek uygulaması alabilirsiniz.
Sıfırdan uygulama oluşturmak için:
Çerçeve için hızlı başlangıç öğreticisini izleyin:
Ana Python uygulamanızın nasıl çalıştırılacağını tanımlamak için projenizin köküne bir
app.yamldosyası ekleyin. Örneğin:Streamlit uygulaması için:
command: ['streamlit', 'run', 'app.py']Veya bir Dash uygulaması için:
command: ['python', 'app.py']
Çalışma alanında bir uygulama oluşturmak ve yerel olarak senkronize etmek için:
Kullanıcı arabiriminde uygulama oluşturmak için Databricks Uygulamalarını kullanmaya başlama'daki adımları izleyin.
Uygulama için yerel bir dizin oluşturun ve
cd'ye gidin.mkdir hello-world-app cd hello-world-appUygulama dosyalarını yerel olarak eşitleyin. Komutunu çalışma alanı kullanıcı arabirimindeki uygulama yükleme sayfasından kopyalayabilir
databricks workspace export-dirve komut satırınızda çalıştırabilirsiniz. Örneğin:databricks workspace export-dir /Workspace/Users/someone@example.com/databricks_apps/hello-world_2025_05_09-17_43/hello-world-app .Bu işlem çalışma alanı dizinindeki uygulama dosyalarını yerel makinenizdeki dizine
hello-world-appindirir.
GitHub'dan bir Databricks örnek uygulaması almak için:
Databricks app şablonları GitHub deposunu klonlayın:
git clone https://github.com/databricks/app-templatesBasit bir uygulama projesi olarak örnek uygulamalardan birini seçin.
Mevcut bir pakete mevcut bir uygulamayı ekleme
Çalışma alanınızda bir Databricks uygulamanız varsa ve uygulamayı eklemek istediğiniz mevcut bir paketiniz varsa komutunu kullanabilirsiniz databricks bundle generate app . Bu komut, uygulama için bir yapılandırma dosyası oluşturur ve uygulama için tüm kaynak kod dosyalarını indirir ve bunları paketinize ekler. Örneğin:
databricks bundle generate app --existing-app-name hello-world-app
Paketinizde uygulama yapılandırmasını oluşturduktan sonra, uygulamanın ve paketin çalışma alanında eşitlenmiş durumda kalmasını sağlamak için databricks bundle bind komutunu kullanın.
databricks bundle generate ve databricks bundle bind hakkında daha fazla bilgi için, bundle komut grubu bölümüne bakın.
Uygulamayı yerel olarak geliştirme ve hatalarını ayıklama
Ardından uygulamanızı yerel olarak geliştirmeye devam edin. komutunu kullanarak uygulamayı başlatın ve uygulamada hata ayıklayın databricks apps run-local . Bu komut, uygulamanın kendisine yönelik proxy istekleri için kullanılan bir uygulama ara sunucusu başlatır ve databricks uygulamasıyla ilgili gerekli üst bilgileri ekler.
Tüm bağımlılıkları yüklemek, sanal ortamı hazırlamak ve uygulamayı ve hata ayıklayıcıyı başlatmak için
run-localkomutunu,--prepare-environmentve--debugseçenekleriyle kullanın.databricks apps run-local --prepare-environment --debugBu komut, sanal ortamı hazırlamak için
uvkullanır ve hata ayıklayıcıdebugpyüzerine kuruludur.Uygulamanızı görüntülemek için adresine
http://localhost:8001gidin.Uygulamanızda hata ayıklamak için durak noktaları ayarlayın. Visual Studio Code Python hata ayıklayıcısını yükleyin, ardından Run>Başla Hata Ayıklama'yi seçin ve ardından Remote Attach seçin.
Proxy, 5678 numaralı bağlantı noktasında başlar, ancak bunu
--portseçeneğini kullanarak yapılandırabilirsiniz.
Uygulamayı çalışma alanına dağıtma
Uygulamanızı çalışma alanına dağıtmaya hazır olduğunuzda, uygulamayı oluşturan paket yapılandırmasını ekleyin ve ardından paketi dağıtın.
Uygulama projenizin kökünde bir dosya
databricks.ymloluşturun. Databricks CLI,databricks.ymletkinleştiren, kökünde dosya bulunan bir klasörü paket olarak tanır.Aşağıdaki YAML'yi kopyalayıp
databricks.ymldosyasına yapıştırın; yer tutucu çalışma alanı ve kullanıcı adı değerlerini kendi gerçek değerlerinizle değiştirin.bundle: name: hello_world_bundle resources: apps: hello_world_app: name: 'hello-world-app' source_code_path: . # This assumes the app source code is at the root of the project. description: 'A Databricks app' targets: dev: mode: development default: true workspace: host: https://myworkspace.cloud.databricks.com prod: mode: production workspace: host: https://myworkspace.cloud.databricks.com root_path: /Workspace/Users/someone@example.com/.bundle/${bundle.name}/${bundle.target} permissions: - user_name: someone@example.com level: CAN_MANAGEPaketi doğrulayın ve dağıtın. Varsayılan olarak, bu işlem
deviçindeki hedefte uygulamayı ve paketi çalışma alanında oluşturur.databricks bundle validate databricks bundle deployPaket dağıtmak, uygulamayı otomatik olarak bir hesaplama ortamına dağıtmaz. Uygulamayı dağıtmak için kullanıcı arabirimini (Databricks çalışma alanında uygulamanın sayfasından) veya Databricks CLI'yi (
databricks apps deploy) kullanın. Bkz. Databricks uygulaması dağıtma.Dağıtılan
bundle summaryuygulama hakkında bilgi almak için komutunu kullanın:databricks bundle summaryName: hello_world_bundle Target: dev Workspace: Host: https://myworkspace.cloud.databricks.com User: someone@example.com Path: /Workspace/Users/someone@example.com/.bundle/hello_world_bundle/dev Resources: Apps: hello_world_app: Name: hello-world-app URL: https://myworkspace.cloud.databricks.com/apps/hello-world-app?o=8498204313176880
Geliştirme, test, yineleme
Uygulamanızda yerel olarak değişiklik yapmaya devam edin, ardından çalışma alanında uygulamayı güncelleştirmek için paketi yeniden dağıtın. Test sırasında, Azure Databricks çalışma alanınızdaki diğer kullanıcılar için uygulamanın kullanım izinlerini yapılandırmak isteyebilirsiniz. Bunu, izinleri belirterek yapabilirsiniz:
resources:
apps:
hello_world_app:
name: 'hello-world-app'
source_code_path: . # This assumes the app source code is at the root of the project.
description: 'A Databricks app'
permissions:
- level: CAN_USE
group_name: users
Uygulamayı çalışma alanında başlatmak için, komutunda uygulamanın kaynak anahtarını belirterek uygulamayı pakette çalıştırın:
databricks bundle run hello_world_app
Üretime dağıt
Databricks, üretimde kimlik doğrulaması için hizmet sorumlusu kullanılmasını önerir. Uygulamayı üretim ortamında kullanıma hazır hale getirmek için hazır olduğunuzda paket yapılandırmanızı bir hizmet sorumlusu kullanacak şekilde güncelleştirin ve ardından paketi hedef üretim çalışma alanınıza dağıtın. Hizmet sorumluları hakkında bilgi için bkz. CI/CD için hizmet sorumluları.
Hizmet ilkesi kullanımı için paketi değiştir
Üretime dağıtmadan önce hizmet ilkesine izin veren bir yetkiyi pakette yapılandırın. Uygulama oluşturulduğunda veya paket çalıştırıldığında verme işlemini yapılandırabilirsiniz.
Uygulama paket dağıtımında oluşturulduğunda hizmet sorumlusuna izin vermek için, paketin databricks.yml'unu değiştirerek uygulama için bir izin tanımlayın. Hizmet sorumlusunu atamak için paket değiştirme kullanın:
bundle:
name: hello_world_bundle
resources:
apps:
hello_world_app:
name: 'hello-world-app'
source_code_path: . # This assumes the app source code is at the root of the project.
description: 'A Databricks app'
schemas:
my_schema:
name: my_schema
grants:
# highlight-next-line
- principal: '${resources.apps.hello_world_app.service_principal_client_id}'
privileges:
- CREATE_TABLE
catalog_name: main
targets:
dev:
mode: development
default: true
workspace:
host: https://myworkspace.cloud.databricks.com
prod:
mode: production
workspace:
host: https://myworkspace.cloud.databricks.com
root_path: /Workspace/Users/someone@example.com/.bundle/${bundle.name}/${bundle.target}
permissions:
- user_name: someone@example.com
level: CAN_MANAGE
Alternatif olarak, paket çalıştırıldığında bir yetkilendirme yapılandıracak şekilde pakette bir iş tanımlayın.
Bir hücrede aşağıdaki içeriklere sahip adlı
grant_notebook.ipynbbir not defteri ekleyin. yerine yönetici kullanıcı adı girin<schema-name>.app_service_principal = dbutils.widgets.get("app_service_principal") spark.sql(f"GRANT ALL PRIVILEGES ON SCHEMA <schema-name> TO `{app_service_principal}`")Paketin
databricks.ymliçindeki bir işte hizmet sorumlusuna izin veren bir not defteri çalıştırmayı tanımlayın. Hizmet ilkesi değerini atamak için paket ikamelerini kullanın.bundle: name: hello_world_bundle resources: apps: hello_world_app: name: 'hello-world-app' source_code_path: . # This assumes the app source code is at the root of the project. description: 'A Databricks app' jobs: grant_job: name: 'grant-job' parameters: - name: app_service_principal # highlight-next-line default: '${resources.apps.hello_world_app.service_principal_client_id}' tasks: - task_key: setup_grants notebook_task: notebook_path: ./grant_notebook.ipynb targets: dev: mode: development default: true workspace: host: https://myworkspace.cloud.databricks.com prod: mode: production workspace: host: https://myworkspace.cloud.databricks.com root_path: /Workspace/Users/someone@example.com/.bundle/${bundle.name}/${bundle.target} permissions: - user_name: someone@example.com level: CAN_MANAGE
Güncelleştirilmiş paketi dağıtma
Şimdi paketi üretim çalışma alanına dağıtın ve uygulamayı çalıştırın:
databricks bundle deploy -t prod
databricks bundle run grant_job -t prod # (Optional) Run this if the grant is configured with a job
databricks bundle run hello_world_app -t prod