다음을 통해 공유


Databricks 앱 개발

Important

Databricks 앱은 공개 미리 보기제공됩니다.

참고 항목

Databricks 작업 영역에서 앱을 배포하고 실행하려면 방화벽이 도메인 *.databricksapps.com을 차단하지 않는지 확인해야 합니다.

이 문서에는 UI에서 앱을 만들고 편집하는 방법, SQL 웨어하우스, 비밀 및 Databricks 작업과 같은 Databricks 플랫폼 기능을 사용하는 방법, 앱 개발을 위한 모범 사례 및 지원되는 프레임워크를 사용하여 앱을 개발하기 위한 중요한 정보를 포함하여 Databricks Apps를 사용하여 데이터 및 AI 앱을 만드는 방법에 대한 세부 정보가 있습니다.

Databricks 앱 UI에서 앱을 만들 어떻게 할까요? 있나요?

  1. 사이드바에서 새 아이콘을 클릭하고, 메뉴에서 앱 을 클릭하세요.

  2. 미리 빌드된 완전한 예제 앱으로 시작하거나 소스 코드 및 아티팩트를 사용할 수 있습니다.

    • 예제 앱으로 시작하려면, 기본 설정 프레임워크의 탭을 클릭하고 앱 목록에서 의 템플릿을 선택하세요.
    • 코드를 사용하여 앱을 만들려면 select사용자 지정.

    새 Databricks 앱을 만들 페이지 보기

  3. 다음을 클릭합니다.

  4. 앱 이름 필드에 앱의 이름을 입력하고 필요에 따라 설명을 입력합니다.

    참고 항목

    • 앱을 만든 후에는 Databricks 앱에 할당된 이름을 변경할 수 없으며, Azure Databricks 작업 영역에 액세스할 수 있는 사용자는 작업 영역에 있는 모든 Databricks 앱의 이름과 배포 기록을 볼 수 있습니다. 또한 앱 이름은 시스템 tables에 기록된 레코드에 포함됩니다. 이러한 가시성 때문에 Databricks 앱의 이름을 지정할 때 중요한 정보를 포함해서는 안 됩니다.
    • 이름은 앱을 호스트하는 Azure Databricks 작업 영역에서 고유해야 하며 소문자, 숫자 및 하이픈만 포함해야 합니다.

    Databricks 앱의 이름을 지정하는 페이지 보기

    사용자 지정을 선택한 경우 앱 만들기를 클릭합니다. 템플릿을 선택한 경우 필요한 리소스를 구성하고 앱 만들기 및 배포를 클릭합니다. Databricks 앱에 Databricks 플랫폼 기능 할당을 참조 하세요.

    Databricks 앱의 이름을 지정하고 리소스를 추가하는 페이지 보기

    앱 만들기 및 배포 또는 앱 만들기를 클릭하면 세부 정보 페이지가 나타납니다. 템플릿선택한 경우 Databricks 앱은 앱을 만든 다음 템플릿의 예제 코드와 앱에 필요한 구성을 포함하여 앱을 배포합니다. 앱의 세부 정보 페이지에는 다음이 표시됩니다.

    • 앱 만들기 및 배포의 상태입니다.
    • 로컬 환경에 앱 아티팩트 복사 및 로컬 변경 내용을 Azure Databricks 작업 영역으로 다시 동기화하는 등 로컬에서 앱 개발을 계속하는 데 사용할 수 있는 단계입니다.

    템플릿이 있는 Databricks 앱에 대한 세부 정보 보기

    사용자 지정선택하면 Databricks 앱이 앱을 만듭니다. 앱에 대한 코드와 아티팩트를 추가해야 하므로 별도의 단계로 앱을 배포해야 합니다. 앱의 세부 정보 페이지에는 다음이 표시됩니다.

    • 앱 만들기의 상태입니다.
    • Azure Databricks 작업 영역으로 로컬 개발 환경에서 앱의 코드와 아티팩트를 sync 하여 앱을 배포하는 데 사용할 수 있는 프로세스 단계입니다.

    템플릿이 있는 Databricks 앱에 대한 세부 정보 보기

    로컬 개발 환경을 , 앱에 대한 코드 및 구성을 로컬로 만들거나 Azure Databricks 작업 영역에 앱을 배포하는 방법을 알아보려면 Databricks Apps시작한 참조하세요.

  5. 템플릿선택하고 작업 영역에서 로컬 개발 환경으로 앱 아티팩트 복사하려는 경우 Databricks CLI를 사용할 수 있습니다.

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

    다음을

    • <workspace-path> 앱 코드 및 아티팩트가 포함된 작업 영역 파일 디렉터리의 경로를 포함합니다.
    • <target-path> 파일을 복사할 로컬 환경의 경로를 사용합니다.

Databricks 앱에 Databricks 플랫폼 기능 할당

참고 항목

Databricks SQL을 사용하려면 서비스 주체가 SQL 웨어하우스 및 쿼리에서 액세스하는 모든 tables에 대한 액세스 권한을 가져야 합니다.

Databricks SQL, Databricks 작업, 모자이크 AI 모델 서비스 및 Databricks 비밀과 같은 Databricks 플랫폼의 기능을 사용하려면 이러한 기능을 앱에 리소스로 추가합니다. 앱을 만들거나 편집할 때 리소스를 추가할 수 있습니다.

  1. 새 앱 만들기 또는 앱 카드 편집 에서, 고급 설정을 클릭한 다음, + 리소스추가를 클릭하고 리소스 유형을 선택합니다 .

    UI에서 SQL 웨어하우스를 앱 리소스로 추가

  2. 리소스 종류에 따라 리소스 키 필드를 포함하여 리소스를 구성하는 데 필요한 필드를 완료합니다. 이 키는 나중에 리소스를 참조하는 데 사용됩니다.

  3. 저장을 클릭합니다.

  4. SQL 웨어하우스 리소스 키를 사용하여 구성 파일에서 app.yaml 리소스에 대한 항목을 추가합니다. 이는 실제 valueFromvalue값이 아닌 매개 변수 값의 원본을 참조하기 때문에 .

    env:
      - name: "DATABRICKS_WAREHOUSE_ID"
        valueFrom: "sql-warehouse"
    
  5. 앱 코드에서 리소스를 참조하려면 필드 값 name (DATABRICKS_WAREHOUSE_ID 이 예제에서는)을 사용하여 구성된 키 값을 참조합니다.

    import os
    
    os.getenv('DATABRICKS_WAREHOUSE_ID')
    

SQL 웨어하우스 및 엔드포인트를 제공하는 모델을 포함하여 앱에서 리소스를 사용하는 더 많은 예제를 보려면 앱을 만들 때 템플릿 예제를 참조하고 모범 사례: 비밀을 사용하여 Databricks 앱에 중요한 정보를 저장합니다.

Databricks 앱에 대한 세부 정보 보기

Databricks 앱의 세부 정보 페이지를 보려면 다음을 수행합니다.

  1. 사이드바에서 컴퓨팅 아이콘컴퓨팅을 클릭합니다.
  2. 탭으로 이동합니다.
  3. 이름column에서 앱 이름을 클릭합니다.
  4. 개요 탭에는 상태, 배포 위치 및 연결된 리소스를 포함하여 앱에 대한 세부 정보가 표시됩니다.
    • 앱의 배포 기록에 액세스하려면 배포 탭으로 이동합니다.
    • 앱의 로그를 보려면 로그 탭으로 이동합니다.
    • 환경 변수 및 설치된 패키지를 포함하여 앱의 런타임 환경을 보려면 환경 탭으로 이동합니다.

Databricks 앱에 대한 권한 구성

앱의 사용 권한을 관리하려면 사용 권한이 있어야 CAN MANAGE 합니다IS OWNER.

  1. 앱 세부 정보 페이지에서 사용 권한을 클릭합니다.
  2. 사용 권한 설정에서 사용자, 그룹 또는 서비스 주체의Select 드롭다운 메뉴를 select 클릭한 후, 사용자, 그룹, 서비스 주체 또는 모든 작업 영역 사용자를 select 선택합니다.
  3. 권한 드롭다운 메뉴에서 사용 권한을 Select.
  4. 추가를 클릭한 다음 저장을 클릭합니다.

Databricks 앱의 상태 유지 관리

앱이 메모리에서 유지 관리하는 상태는 다시 시작될 때 손실됩니다. 앱에서 다시 시작 사이에 상태를 유지해야 하는 경우 상태를 외부에 저장합니다. 예를 들어 앱은 Databricks SQL, 작업 영역 파일, 또는 Unity Catalogvolumes를 사용하여 상태를 유지할 수 있습니다.

Databricks 앱에서 로깅

참고 항목

Databricks 앱 UI 또는 앱 URL을 사용하여 로그를 보려면 앱이 로그에 stdout 로그인하고 stderr.

앱의 표준 출력 및 표준 오류를 보려면 앱의 세부 정보 페이지에서 로그 탭을 클릭합니다. Databricks 앱에 대한 세부 정보 보기를 참조하세요.

링크에서 표준 출력 및 표준 오류 로그를 볼 수도 있습니다 <appurl>/logz . 예를 들어 앱의 URL이 https://my-app-1234567890.my-instance.databricksapps.com면 .에서 https://my-app-1234567890.my-instance.databricksapps.com/logz로그를 볼 수 있습니다. 앱 URL을 찾으려면 앱 세부 정보 페이지로 이동합니다.

Databricks 앱에 대한 라이브러리 종속성 지정

앱에 배포와 함께 설치된 자동으로 설치된 패키지 이외의 Python 라이브러리가 필요한 경우 파일을 사용하여 requirements.txt 해당 라이브러리를 정의합니다. 파일의 패키지가 requirements.txt 자동으로 설치된 패키지 중 하나를 복제하는 경우 자동으로 requirements.txt 설치된 패키지를 재정의합니다.

앱 배포의 일부로 설치된 패키지와 버전의 에 대해,설치된 Python 라이브러리 을 참조하세요.

Databricks 앱에 전달되는 HTTP 헤더는 무엇인가요?

다음 X-Forwarded-* 헤더는 Databricks Apps 역방향 프록시에서 앱으로 전달됩니다.

헤더 설명
X-Forwarded-Host 클라이언트에서 요청한 원래 호스트 또는 도메인입니다.
X-Forwarded-Preferred-Username IdP에서 제공하는 사용자 이름입니다.
X-Forwarded-User IdP에서 제공하는 사용자 identifier.
X-Forwarded-Email IdP에서 제공하는 사용자 전자 메일입니다.
X-Real-Ip 원본에서 요청한 클라이언트의 IP 주소입니다.
X-Request-Id 요청의 UUID입니다.

Databricks 앱에서 지원되는 프레임워크는 무엇인가요?

대부분의 Python 프레임워크를 사용하여 앱을 개발할 수 있습니다. 특정 프레임워크인 Dash, Gradio 및 Streamlit를 사용하는 예제를 보려면 UI에서 새 앱을 만들 때 템플릿 앱 라이브러리에서 select을(를) 참조하십시오. Databricks 앱 UI에서 앱을 만드는 어떻게 할까요? 참조하세요.

Databricks Apps 런타임 환경에서 Streamlit 관련 변수는 Streamlit대한 기본 환경 변수를 참조하세요.

모범 사례: 비밀을 사용하여 Databricks 앱에 대한 중요한 정보 저장

Databricks는 비밀을 사용하여 인증 credentials같은 중요한 정보를 저장하는 것이 좋습니다. 비밀 사용에 대한 자세한 내용은 비밀 관리를 참조 하세요.

앱에서 비밀을 사용하려면 다음을 수행합니다.

  1. 비밀을 앱 리소스구성합니다.

    UI에서 비밀을 앱 리소스로 추가

  2. 앱의 app.yaml 구성 파일에 비밀 항목을 추가합니다.

    env:
      - name: "API_TOKEN"
        valueFrom: "api-token-value"
    
  3. 앱 코드에서 비밀을 참조하려면 필드 값 name (API_TOKEN 이 예제에서는)을 사용하여 구성된 키 값을 참조합니다.

token = os.getenv('API_TOKEN')

모범 사례: 데이터 처리에 Azure Databricks 기능 사용

Databricks Apps 컴퓨팅은 UI를 제공하도록 설계되었습니다. 앱이 여러 사용자를 효율적으로 지원할 수 있도록 하려면 Databricks 기능을 사용하여 간단한 데이터 처리 이외의 작업을 수행해야 합니다. 예를 들어 데이터 세트를 처리 및 저장하는 쿼리, 데이터 처리를 위한 Databricks 작업 또는 AI 모델을 쿼리하는 데 사용되는 모델에 Databricks SQL을 사용합니다.

모범 사례: 보안 코딩 모범 사례 따르기

Databricks는 SQL 삽입 공격을 방지하기 위해 쿼리 매개 변수화를 포함하여 앱을 개발할 때 보안 코딩 사례를 따르는 것이 좋습니다. 문 실행 API참조하세요.

Databricks 앱을 구현하기 위한 중요한 지침

  • Databricks Apps는 신호를 받은 후 15초 후에 SIGKILL신호를 보내 SIGTERM 므로 앱은 신호를 받은 SIGTERM 후 15초 이상 정상적으로 종료해야 합니다. 15초 SIGKILL 후에 앱이 종료되지 않은 경우 프로세스 및 모든 자식 프로세스를 종료하기 위한 신호가 전송됩니다.
  • Databricks 앱은 권한이 없는 시스템 사용자로 실행되므로 루트 사용자 권한이 필요한 작업과 같이 권한 있는 보안 컨텍스트에서 실행해야 하는 작업을 수행할 수 없습니다.
  • 요청은 역방향 프록시에서 전달되므로 앱은 요청의 원본에 의존해서는 안 됩니다. Databricks Apps 환경은 지원되는 프레임워크에 필요한 구성을 설정하기 위해 parameters을 설정합니다.
  • Databricks 앱 프레임워크는 TLS(전송 계층 보안) connections관리하므로 앱은 TLS 연결 또는 핸드셰이크 작업을 수행해서는 안 됩니다.
  • H2C(HTTP/2 cleartext) 형식의 요청을 처리하려면 앱을 구현해야 합니다.
  • Databricks 앱은 HTTP 서버를 호스트하고 환경 변수에 0.0.0.0DATABRICKS_APP_PORT 지정된 포트 번호를 사용해야 합니다. 환경 변수를 참조 하세요.