다음을 통해 공유


Databricks 앱 배포

Azure Databricks 앱을 만들고 개발한 후 배포하여 Azure Databricks 작업 영역에서 액세스할 수 있도록 합니다. 배포는 앱을 빌드하고, 종속성을 설치하고, 프로젝트 파일에 정의된 구성을 사용하여 실행합니다. Azure Databricks UI 또는 Databricks CLI를 사용하여 앱을 배포할 수 있습니다.

비고

템플릿에서 앱을 만드는 경우 Azure Databricks 앱을 처음 만들 때 자동으로 배포합니다. 그러나 나중에 변경한 후에도 다시 배포할 수 있습니다. 템플릿에서 Databricks 앱 만들기를 참조하세요.

배포 논리

Databricks Apps는 Python, Node.js또는 둘의 조합을 사용하는 애플리케이션 배포를 지원합니다. 이렇게 하면 Python 백 엔드가 있는 Node.js 프런트 엔드와 같은 유연한 아키텍처를 사용할 수 있습니다.

배포하는 동안 빌드 프로세스는 앱 디렉터리의 루트에 있는 package.json 파일을 확인하여 Node.js가 사용되는지 여부를 판단합니다. 있는 경우 Python 단계와 함께 노드별 빌드 단계가 포함됩니다. 배포 논리는 다음 패턴을 따릅니다.

있는 경우package.json:

  1. npm install을 실행합니다.
  2. Python 종속성을 설치합니다.
    • requirements.txt가 존재하는 경우 pip install -r requirements.txt를 실행합니다.
    • requirements.txt가 존재하지 않고 pyproject.tomluv.lock가 둘 다 존재하는 경우, uv sync을 실행하여 종속성을 설치합니다.
  3. npm run build을 실행하세요 (build에 스크립트가 정의된 경우 package.json)
  4. 지정된 app.yaml명령을 실행하거나 npm run start 명령이 지정되지 않은 경우

비고

app.yaml 명령이 지정되지 않은 경우 앱에 Python 코드가 포함된 경우에도 Azure Databricks npm run start 실행됩니다. Python 및 Node.js 프로세스를 모두 실행하려면 start 같은 도구를 사용하여 둘 다 시작하는 사용자 지정 concurrently 스크립트를 정의합니다. 예: concurrently "npm run start:node" "python my_app.py".

없는 경우package.json:

  1. Python 종속성을 설치합니다.
    • requirements.txt가 존재하는 경우 pip install -r requirements.txt를 실행합니다.
    • requirements.txt가 존재하지 않고 pyproject.tomluv.lock가 둘 다 존재하는 경우, uv sync을 실행하여 종속성을 설치합니다.
  2. 지정된 app.yaml명령을 실행하거나 python <my-app>.py 명령이 지정되지 않은 경우

배포 준비

앱을 배포하기 전에 프로젝트에 필요한 구성 요소가 포함되어 있는지 확인합니다.

또한 앱 서비스 주체 가 소스 코드 폴더에 액세스할 수 있는지 확인합니다.

배포 원본 선택

다음 원본에서 Databricks 앱을 배포할 수 있습니다.

  • 작업 영역 폴더 - 작업 영역 폴더 에 앱 파일을 업로드하고 여기에서 배포합니다. 표준 배포 방법입니다.
  • Git 리포지토리 - 앱에 대한 Git 리포지토리를 구성하고 작업 영역에 파일을 업로드하지 않고 직접 배포합니다. 앱은 배포할 때마다 구성된 Git 참조(분기, 태그 또는 커밋)에서 코드를 읽습니다. 리포지토리 내의 특정 디렉터리에서 배포할 소스 코드 경로를 지정할 수도 있습니다. GitHub, GitLab 및 Bitbucket을 비롯한 모든 주요 Git 공급자가 지원됩니다. 지원되는 공급자의 전체 목록은 Git 공급자를 Databricks에 연결하세요.

작업 영역 관리자가 Git 전용 배포를 적용하지 않는 한 언제든지 동일한 앱에 대한 작업 영역과 Git 원본 간에 전환할 수 있습니다. Git 전용 배포 적용을 참조하세요.

Git 전용 배포 적용

작업 영역 관리자는 작업 영역의 모든 앱이 Git 리포지토리에서 배포하도록 요구할 수 있습니다. 이 설정을 사용하도록 설정하려면 설정>개발> 으로 이동하고 Git에서 앱 배포만 허용을 켭니다. 이 설정은 기본적으로 해제되어 있습니다.

이 설정을 사용하도록 설정하면 다음을 수행합니다.

  • 사용자는 앱을 만들기 전에 Git 리포지토리를 구성해야 합니다.
  • 사용자는 작업 영역 폴더가 아니라 Git에서만 배포할 수 있습니다.
  • Databricks는 작업 영역에서 앱 템플릿을 사용하지 않도록 설정합니다.
  • 사용자는 Git 리포지토리가 있는 앱에서 제거할 수 없습니다.
  • 기존 앱은 계속 실행되지만 앱에 Git 리포지토리가 없는 한 사용자는 다시 배포하거나 시작할 수 없습니다.

앱 배포

다음 섹션에서는 작업 영역 폴더 또는 Git 리포지토리에서 직접 배포하는 방법을 설명합니다.

작업 영역 폴더에서 배포

Databricks 사용자 인터페이스

Azure Databricks UI에서 앱을 배포하려면 다음을 수행합니다.

  1. Azure Databricks 작업 영역에 앱 파일을 업로드합니다. 자세한 내용은 파일 가져오기를 참조하세요.
  2. 사이드바에서 컴퓨팅 아이콘컴퓨팅을 클릭합니다.
  3. 탭으로 이동하여 이름 열에서 앱에 대한 링크를 클릭합니다.
  4. 배포를 클릭하고 앱 파일을 업로드한 작업 영역에서 폴더를 선택합니다.
  5. 선택, 배포를 차례로 클릭합니다.
  6. 구성을 검토하고 배포를 클릭합니다.

Databricks 명령줄 인터페이스 (CLI)

CLI를 사용하여 앱을 배포하려면 다음을 수행합니다.

  1. 터미널을 열고 앱 파일이 포함된 디렉터리로 이동합니다.

  2. sync 명령을 사용하여 Azure Databricks 작업 영역에 앱 파일을 업로드합니다. 경로를 파일을 업로드할 작업 영역 위치로 바꿉다.

    databricks sync --watch . /Workspace/Users/my-email@org.com/my-app
    

    플래그는 --watch 동기화 프로세스를 계속 실행하고 파일을 로컬로 수정할 때 변경 내용을 자동으로 업로드합니다. 특정 파일 또는 디렉터리를 동기화에서 제외하려면 로컬 앱 디렉터리의 파일에 추가 .gitignore 합니다. 제외할 일반적인 파일은 node_modules/, .env, __pycache__/.DS_Store모든 큰 데이터 파일 또는 빌드 아티팩트입니다.

  3. 작업 영역에서 파일을 확인하여 업로드를 확인합니다. 사이드바에서 작업 영역 아이콘작업 영역을 클릭하고 앱에 대해 만든 디렉터리로 이동합니다.

  4. 다음 명령을 실행하여 앱을 배포합니다. 앱 이름 및 소스 코드 경로를 값으로 바꿉다.

    databricks apps deploy my-app-name \
       --source-code-path /Workspace/Users/my-email@org.com/my-app
    

    CLI는 배포 진행률을 표시하고 앱이 실행되는 시기를 확인합니다.

Git 리포지토리에서 배포

Git 리포지토리에서 앱을 배포하려면 앱 수준에서 리포지토리를 추가한 다음 배포할 때 Git 참조를 지정합니다. Git 리포지토리에는 앱 파일, app.yaml, 종속성 및 진입점이 포함되어야 합니다. GitHub, GitLab 및 Bitbucket을 비롯한 모든 주요 Git 공급자가 지원됩니다. UI, CLI, API 또는 선언적 자동화 번들을 사용하여 Git 지원 앱을 배포할 수도 있습니다.

Git에서 앱을 구성하고 배포하려면 다음을 수행합니다.

  1. Git 리포지토리에 앱 파일을 업로드합니다.
  2. Azure Databricks 작업 영역에서 사이드바에서 compute 아이콘Compute 클릭합니다.
  3. 탭으로 이동하여 편집할 기존 앱을 선택하거나 앱 만들기를 클릭합니다.
  4. Git 리포지토리 구성 단계에서 Git 리포지토리 URL(예https://github.com/org/repo: )을 입력하고 Git 공급자를 선택합니다.
  5. 앱 만들기 또는 저장을 클릭하여 앱 세부 정보 페이지로 돌아갑니다.
  6. 프라이빗 리포지토리의 경우 앱의 서비스 주체에 Git 자격 증명이 구성되어 있어야 합니다. 앱 세부 정보 페이지에서 Git 자격 증명 구성을 클릭하거나, 앱을 편집하고 Git 리포지토리 구성 단계에서 자격 증명을 추가합니다. Git 자격 증명을 추가하려면 앱에 대한 권한이 있어야 합니다 CAN MANAGE . 공용 리포지토리에는 Git 자격 증명이 필요하지 않습니다. 각 공급자에 대한 지침은 Databricks에 Git 공급자 연결을 참조하세요.

그런 다음, 앱을 배포합니다.

  1. 앱 세부 정보 페이지에서 배포를 클릭합니다.
  2. Git에서 선택합니다.
  3. Git 레퍼런스의 경우, 분기 이름, 태그 또는 커밋 SHA값(예: main, v1.0.0 또는 커밋 해시)을 입력합니다.
  4. 참조 형식의 경우 분기, 태그 또는 커밋과 같은 참조 형식을 지정합니다.
  5. (선택 사항) 소스 코드 경로의 경우 리포지토리 내의 특정 디렉터리에 대한 경로를 입력합니다. 앱은 해당 디렉터리를 최상위 디렉터리로 취급하며 외부의 파일에 액세스할 수 없습니다. 경로를 지정하지 않으면 Databricks는 리포지토리 루트를 사용합니다.
  6. 배포을 참조하십시오.

분기 또는 태그 참조의 경우 Azure Databricks 해당 분기 또는 태그에서 가장 최근 커밋을 배포합니다. 커밋 SHA 참조의 경우 Azure Databricks 항상 특정 커밋을 배포합니다. 서비스 주체의 Git 자격 증명이 잘못되었거나 만료되면 배포가 실패합니다.

비고

Git 배포가 일반 공급되기 전에 만든 앱은 작성자 CAN MANAGE 에게 앱의 서비스 주체에 대한 권한을 자동으로 부여하지 않습니다. 이전 앱에 Git 자격 증명을 추가해야 하는 경우, 작업 영역 관리자에게 서비스 주체에 대한 권한 CAN MANAGE을(를) grant 하도록 요청하십시오.

서비스 주체는 공급자당 하나의 Git 자격 증명을 지원합니다. 계정 콘솔을 통해 자격 증명을 다른 곳에서 업데이트하는 경우 해당 공급자에 대한 기존 자격 증명을 대체합니다.

배포 후 동작

배포가 완료되면 Azure Databricks는 command 파일에 정의된 app.yaml에 따라 앱을 시작하거나, 기본적으로 python app.py를 실행합니다. 앱 세부 정보 페이지는 현재 상태를 표시하고 로그, 배포 기록 및 환경 정보에 대한 액세스를 제공합니다.

앱 배포 후 앱 세부 정보 페이지 보기

배포된 앱의 출력을 보려면 앱 링크를 클릭합니다.

디버깅 및 런타임 모니터링을 위해 로그 탭으로 이동합니다. Databricks 앱에 대한 로깅 및 모니터링을 참조하세요.

앱 업데이트 또는 다시 배포

소스 코드 또는 구성을 변경한 후 앱을 다시 배포합니다. 다시 배포는 앱을 다시 만들지 않고 최신 업데이트를 적용합니다. 언제든지 작업 영역 또는 Git 리포지토리에서 다시 배포할 수 있습니다.

작업 영역 폴더에서 다시 배포

작업 영역 폴더에서 다시 배포하려면:

  1. 작업 영역 폴더에서 앱 파일을 업데이트합니다.
  2. 앱을 선택하고 배포를 클릭합니다.
  3. 소스 코드 경로가 변경되거나 Git 원본에서 전환하는 경우 배포 옆의 화살표를 클릭하고 다른 원본을 사용하여 배포를 선택합니다.

Git 리포지토리에서 다시 배포

Git 리포지토리에서 다시 배포하려면:

  1. 변경 내용을 Git 리포지토리에 푸시합니다.
  2. Azure Databricks 작업 영역에서 앱을 선택하고 Deploy 클릭합니다.
  3. Git 참조가 변경되거나 작업 영역 원본에서 전환하는 경우 배포 옆의 화살표를 클릭하고 다른 원본을 사용하여 배포를 선택합니다.

Git 리포지토리 또는 자격 증명을 변경하려면 앱 구성을 편집합니다. CLI 또는 API를 사용하여 Git 리포지토리를 업데이트하려면 create-update 명령을 사용합니다. 앱에서 Git 리포지토리를 제거하면 작업 영역에서 배포가 적용됩니다.

중요합니다

Git 리포지토리를 변경하거나 배포 원본(Git 및 작업 영역) 간에 전환하면 앱의 서비스 주체에 대한 모든 Git 자격 증명이 삭제됩니다. Git 참조만 변경해도 자격 증명은 삭제되지 않습니다. Git에서 다시 배포하기 전에 자격 증명을 다시 구성해야 합니다.

배포 문제 해결

앱이 배포에 실패하거나 예상대로 실행되지 않는 경우 다음 문제 해결 단계를 시도합니다.

  • 로그에서 오류 메시지 또는 런타임 출력을 확인합니다.
  • app.yaml 구문 및 설정을 검사합니다.
  • 섹션의 비밀 및 환경 변수가 env에서 제대로 해결되는지 확인합니다.
  • 필요한 모든 종속성이 포함되거나 설치되어 있는지 확인합니다.

Git 리포지토리 배포의 경우:

  • 프라이빗 리포지토리의 경우 앱의 서비스 주체에 Git 자격 증명이 구성되어 있는지 확인합니다.
  • Git 리포지토리 URL이 올바르고 Git 참조(분기, 태그 또는 커밋)가 리포지토리에 있는지 확인합니다.
  • 작업 영역 관리자가 Git 전용 배포를 적용하는 경우 Git 리포지토리가 구성되어 있지 않으면 앱을 배포하거나 시작할 수 없습니다.
  • CLI, API 또는 선언적 자동화 번들에서 배포하는 경우 먼저 앱을 만든 다음, 앱의 서비스 주체에 Git 자격 증명을 추가합니다.

다음 단계