Udostępnij za pośrednictwem


Opracowywanie aplikacji usługi Databricks

Ważne

Aplikacje usługi Databricks są w publicznej wersji zapoznawczej.

Uwaga

Aby wdrożyć i uruchomić aplikacje w obszarze roboczym usługi Databricks, upewnij się, że zapora nie blokuje domeny *.databricksapps.com.

Ten artykuł zawiera szczegółowe informacje dotyczące tworzenia danych i aplikacji sztucznej inteligencji za pomocą usługi Databricks Apps, w tym sposobu tworzenia i edytowania aplikacji w interfejsie użytkownika, sposobu używania funkcji platformy usługi Databricks, takich jak magazyny SQL, wpisy tajne i zadania usługi Databricks, najlepsze rozwiązania dotyczące tworzenia aplikacji oraz ważne informacje dotyczące tworzenia aplikacji przy użyciu obsługiwanych struktur.

Jak mogę utworzyć aplikację w interfejsie użytkownika usługi Databricks Apps?

  1. Na pasku bocznym kliknij pozycję Nowa ikona Nowy i wybierz pozycję Aplikacja z menu.

  2. Możesz rozpocząć od kompletnej, wstępnie utworzonej przykładowej aplikacji lub użyć kodu źródłowego i artefaktów.

    • Aby rozpocząć od przykładowej aplikacji, wybierz pozycję Szablon, kliknij kartę preferowanej platformy i wybierz z listy aplikacji.
    • Aby utworzyć aplikację przy użyciu kodu, wybierz pozycję Niestandardowe.

    Wyświetlanie strony w celu utworzenia nowej aplikacji usługi Databricks

  3. Kliknij przycisk Dalej.

  4. W polu Nazwa aplikacji wprowadź nazwę aplikacji i opcjonalnie wprowadź opis.

    Uwaga

    • Nie można zmienić nazwy przypisanej do aplikacji usługi Databricks po utworzeniu aplikacji, a każdy użytkownik mający dostęp do obszaru roboczego usługi Azure Databricks może zobaczyć nazwy i historię wdrażania wszystkich aplikacji usługi Databricks w obszarze roboczym. Ponadto nazwa aplikacji jest uwzględniana w rekordach zapisywanych w tabelach systemowych. Ze względu na tę widoczność nie należy uwzględniać poufnych informacji podczas nazewnictwa aplikacji usługi Databricks.
    • Nazwa musi być unikatowa w obszarze roboczym usługi Azure Databricks, który hostuje aplikację i musi zawierać tylko małe litery, cyfry i łączniki.

    Wyświetlanie strony w celu nadania nazwy aplikacji usługi Databricks

    W przypadku wybrania pozycji Niestandardowy kliknij pozycję Utwórz aplikację. W przypadku wybrania pozycji Szablon skonfiguruj wymagane zasoby i kliknij pozycję Utwórz i wdróż aplikację. Zobacz Przypisywanie funkcji platformy usługi Databricks do aplikacji usługi Databricks.

    Wyświetlanie strony w celu nadania nazwy aplikacji usługi Databricks i dodawania zasobów

    Strona szczegółów aplikacji zostanie wyświetlona po kliknięciu pozycji Utwórz i wdróż aplikację lub Utwórz aplikację. W przypadku wybrania opcji Szablon aplikacje usługi Databricks tworzą aplikację, a następnie wdrażają aplikację, w tym przykładowy kod z szablonu i wymaganą konfigurację aplikacji. Na stronie szczegółów aplikacji znajdują się następujące informacje:

    • Stan tworzenia i wdrażania aplikacji.
    • Kroki, których można użyć do kontynuowania tworzenia aplikacji lokalnie, w tym kopiowania artefaktów aplikacji do środowiska lokalnego i synchronizowania lokalnych zmian z powrotem do obszaru roboczego usługi Azure Databricks.

    Wyświetlanie szczegółów szablonowej aplikacji usługi Databricks

    W przypadku wybrania opcji Niestandardowe aplikacje usługi Databricks tworzą aplikację. Ponieważ musisz dodać kod i artefakty dla aplikacji, musisz wdrożyć aplikację w osobnym kroku. Na stronie szczegółów aplikacji znajdują się następujące informacje:

    • Stan tworzenia aplikacji.
    • Kroki, których można użyć do zsynchronizowania kodu i artefaktów aplikacji z lokalnego środowiska deweloperskiego do obszaru roboczego usługi Azure Databricks i wdrożenia aplikacji.

    Wyświetlanie szczegółów szablonowej aplikacji usługi Databricks

    Aby dowiedzieć się, jak skonfigurować lokalne środowisko programistyczne, utworzyć lub zaktualizować kod i konfigurację aplikacji lokalnie oraz zsynchronizować i wdrożyć aplikację w obszarze roboczym usługi Azure Databricks, zobacz Rozpoczynanie pracy z usługą Databricks Apps.

  5. Jeśli wybrano pozycję Szablon i chcesz skopiować artefakty aplikacji z obszaru roboczego do lokalnego środowiska deweloperskiego, możesz użyć interfejsu wiersza polecenia usługi Databricks:

    databricks workspace export-dir <workspace-path> <target-path>
    

    Wymiana:

    • <workspace-path> z ścieżką do katalogu plików obszaru roboczego, który zawiera kod aplikacji i artefakty.
    • <target-path> ze ścieżką w środowisku lokalnym w celu skopiowania plików do.

Przypisywanie funkcji platformy usługi Databricks do aplikacji usługi Databricks

Uwaga

Aby używać usługi Databricks SQL, jednostki usługi wymagają dostępu do usługi SQL Warehouse i wszystkich tabel, do których uzyskuje się dostęp za pomocą zapytań.

Aby korzystać z funkcji platformy Databricks, takich jak Databricks SQL, Databricks Jobs, Mosaic AI Model Serving i Databricks secrets, dodaj te funkcje do aplikacji jako zasoby. Zasoby można dodawać podczas tworzenia lub edytowania aplikacji.

  1. Na karcie Tworzenie nowej aplikacji lub Edytuj aplikację kliknij pozycję Ustawienia> zaawansowane+ Dodaj zasób i wybierz typ zasobu.

    Dodawanie usługi SQL Warehouse jako zasobu aplikacji w interfejsie użytkownika

  2. W zależności od typu zasobu wypełnij pola wymagane do skonfigurowania zasobu, w tym pole Klucz zasobu. Ten klucz jest używany później do odwołowania się do zasobu.

  3. Kliknij przycisk Zapisz.

  4. Dodaj wpis dla zasobu w app.yaml pliku konfiguracji przy użyciu klucza zasobu usługi SQL Warehouse. Ponieważ odwołuje się to do źródła wartości parametru, a nie wartości rzeczywistej, użyj wartości valueFrom zamiast value.

    env:
      - name: "DATABRICKS_WAREHOUSE_ID"
        valueFrom: "sql-warehouse"
    
  5. Aby odwołać się do zasobu w kodzie aplikacji, użyj wartości name pola (DATABRICKS_WAREHOUSE_ID w tym przykładzie), aby odwołać się do skonfigurowanej wartości klucza.

    import os
    
    os.getenv('DATABRICKS_WAREHOUSE_ID')
    

Aby wyświetlić więcej przykładów używania zasobów z aplikacjami, w tym magazynów SQL i punktów końcowych obsługujących model, zobacz przykłady szablonów podczas tworzenia aplikacji i najlepsze rozwiązanie: używanie wpisów tajnych do przechowywania poufnych informacji dla aplikacji usługi Databricks.

Wyświetlanie szczegółów aplikacji usługi Databricks

Aby wyświetlić stronę szczegółów aplikacji usługi Databricks:

  1. Kliknij pozycję ikona obliczeniowa Obliczenia na pasku bocznym.
  2. Przejdź do karty Aplikacje .
  3. W kolumnie Nazwa kliknij nazwę aplikacji.
  4. Karta Przegląd zostanie wyświetlona ze szczegółowymi informacjami dotyczącymi aplikacji, w tym jej stanem, lokalizacją wdrożenia i skojarzonymi zasobami.
    • Aby uzyskać dostęp do historii wdrażania aplikacji, przejdź do karty Wdrożenia .
    • Aby wyświetlić dzienniki aplikacji, przejdź do karty Dzienniki .
    • Aby wyświetlić środowisko uruchomieniowe aplikacji, w tym zmienne środowiskowe i zainstalowane pakiety, przejdź do karty Środowisko .

Konfigurowanie uprawnień dla aplikacji usługi Databricks

Aby zarządzać uprawnieniami aplikacji, musisz mieć CAN MANAGE uprawnienie lub IS OWNER .

  1. Na stronie szczegółów aplikacji kliknij pozycję Uprawnienia.
  2. W obszarze Ustawienia uprawnień wybierz menu rozwijane Wybierz użytkownika, grupę lub jednostkę usługi, a następnie wybierz użytkownika, grupę, jednostkę usługi lub wszystkich użytkowników obszaru roboczego.
  3. Wybierz uprawnienie z menu rozwijanego uprawnień.
  4. Kliknij przycisk Dodaj , a następnie kliknij przycisk Zapisz.

Utrzymywanie stanu aplikacji usługi Databricks

Każdy stan, w jakim aplikacja utrzymuje się w pamięci, zostanie utracony po ponownym uruchomieniu. Jeśli aplikacja wymaga zachowania stanu między ponownymi uruchomieniami, zapisz stan zewnętrznie. Na przykład aplikacja może używać usługi Databricks SQL, plików obszaru roboczego lub woluminów wykazu aparatu Unity do utrwalania stanu.

Rejestrowanie z poziomu aplikacji usługi Databricks

Uwaga

Aby wyświetlić dzienniki w interfejsie użytkownika aplikacji usługi Databricks lub przy użyciu adresu URL aplikacji, aplikacja musi zalogować się do stdout i stderr.

Aby wyświetlić standardowe dane wyjściowe i standardowy błąd aplikacji, na stronie szczegółów aplikacji kliknij kartę Dzienniki . Zobacz Wyświetlanie szczegółów aplikacji usługi Databricks.

Możesz również wyświetlić standardowe dane wyjściowe i standardowe dzienniki błędów pod linkiem <appurl>/logz . Jeśli na przykład adres URL aplikacji to https://my-app-1234567890.my-instance.databricksapps.com, możesz wyświetlić dzienniki pod adresem https://my-app-1234567890.my-instance.databricksapps.com/logz. Aby znaleźć adres URL aplikacji, przejdź do strony szczegółów aplikacji.

Określanie zależności biblioteki dla aplikacji usługi Databricks

Jeśli aplikacja wymaga bibliotek języka Python innych niż automatycznie zainstalowane pakiety zainstalowane we wdrożeniu, użyj requirements.txt pliku, aby zdefiniować te biblioteki. Jeśli pakiet w requirements.txt pliku duplikuje jeden z automatycznie zainstalowanych pakietów, wersja w pliku requirements.txt zastępuje automatycznie zainstalowany pakiet.

Aby uzyskać listę pakietów i wersji zainstalowanych w ramach wdrożenia aplikacji, zobacz Zainstalowane biblioteki języka Python.

Jakie nagłówki HTTP są przekazywane do aplikacji usługi Databricks?

Następujące X-Forwarded-* nagłówki są przekazywane z odwrotnego serwera proxy usługi Databricks Apps do aplikacji:

Nagłówek opis
X-Forwarded-Host Oryginalny host lub domena żądana przez klienta.
X-Forwarded-Preferred-Username Nazwa użytkownika podana przez dostawcę tożsamości.
X-Forwarded-User Identyfikator użytkownika dostarczony przez dostawcę tożsamości.
X-Forwarded-Email Adres e-mail użytkownika dostarczony przez dostawcę tożsamości.
X-Real-Ip Adres IP klienta, który złożył oryginalne żądanie.
X-Request-Id Identyfikator UUID żądania.

Jakie struktury są obsługiwane przez aplikacje usługi Databricks?

Do tworzenia aplikacji można używać większości struktur języka Python. Aby wyświetlić przykłady użycia określonych struktur, w tym Dash, Gradio i Streamlit, wybierz z biblioteki aplikacji szablonu podczas tworzenia nowej aplikacji w interfejsie użytkownika. Zobacz Jak mogę utworzyć aplikację w interfejsie użytkownika usługi Databricks Apps?.

W przypadku zmiennych specyficznych dla usługi Streamlit, które są ustawiane w środowisku uruchomieniowym usługi Databricks Apps, zobacz Domyślne zmienne środowiskowe dla usługi Streamlit.

Najlepsze rozwiązanie: przechowywanie poufnych informacji w aplikacji usługi Databricks przy użyciu wpisów tajnych

Usługa Databricks zaleca używanie wpisów tajnych do przechowywania poufnych informacji, takich jak poświadczenia uwierzytelniania. Aby dowiedzieć się więcej na temat używania wpisów tajnych, zobacz Zarządzanie wpisami tajnymi.

Aby użyć wpisu tajnego w aplikacji:

  1. Skonfiguruj wpis tajny jako zasób aplikacji.

    Dodawanie wpisu tajnego jako zasobu aplikacji w interfejsie użytkownika

  2. Dodaj wpis wpisu tajnego w pliku konfiguracji aplikacji app.yaml .

    env:
      - name: "API_TOKEN"
        valueFrom: "api-token-value"
    
  3. Aby odwołać się do wpisu tajnego w kodzie aplikacji, użyj wartości name pola (API_TOKEN w tym przykładzie), aby odwołać się do skonfigurowanej wartości klucza.

token = os.getenv('API_TOKEN')

Najlepsze rozwiązanie: używanie funkcji usługi Azure Databricks do przetwarzania danych

Obliczenia usługi Databricks Apps są przeznaczone do obsługi interfejsu użytkownika. Aby zapewnić, że aplikacje mogą wydajnie obsługiwać wielu użytkowników, należy użyć funkcji usługi Databricks do wykonywania niczego innego niż proste przetwarzanie danych. Na przykład użyj języka SQL usługi Databricks do przetwarzania zapytań i przechowywania zestawów danych, zadań usługi Databricks na potrzeby przetwarzania danych lub modelowania obsługującego zapytania dotyczące modeli sztucznej inteligencji.

Najlepsze rozwiązanie: postępuj zgodnie z najlepszymi rozwiązaniami dotyczącymi bezpiecznego kodowania

Usługa Databricks zaleca stosowanie bezpiecznych praktyk kodowania podczas tworzenia aplikacji, w tym parametryzacji zapytań w celu uniknięcia ataków polegających na wstrzyknięciu kodu SQL. Zobacz interfejs API wykonywania instrukcji.

Ważne wskazówki dotyczące implementowania aplikacji usługi Databricks

  • Usługa Databricks Apps wysyła SIGKILL sygnał 15 sekund po SIGTERMoperacji , więc aplikacje powinny bezpiecznie zamknąć nie więcej niż 15 sekund po otrzymaniu sygnału SIGTERM . Jeśli aplikacja nie została zakończona po 15 sekundach, SIGKILL sygnał jest wysyłany w celu zakończenia procesu i wszystkich procesów podrzędnych.
  • Ponieważ aplikacje usługi Databricks są uruchamiane jako użytkownik systemu bez uprawnień, nie mogą wykonywać operacji wymagających uruchamiania w uprzywilejowanym kontekście zabezpieczeń, takich jak operacje wymagające uprawnień użytkownika głównego.
  • Żądania są przekazywane z zwrotnego serwera proxy, więc aplikacje nie mogą zależeć od źródeł żądań. Środowisko usługi Databricks Apps ustawia wymagane parametry konfiguracji dla obsługiwanych struktur.
  • Ponieważ struktura aplikacji usługi Databricks zarządza połączeniami protokołu Transport Layer Security (TLS), aplikacje nie mogą wykonywać żadnych operacji uzgadniania ani połączenia TLS.
  • Aplikacje muszą być implementowane w celu obsługi żądań w formacie http/2 cleartext (H2C).
  • Aplikacje usługi Databricks muszą hostować serwery HTTP na serwerze 0.0.0.0 i używać numeru portu określonego w zmiennej środowiskowej DATABRICKS_APP_PORT . Zobacz zmienne środowiskowe.