다음을 통해 공유


Databricks 앱 구성

Important

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

이 문서에서는 Databricks Apps 환경에서 자동으로 구성된 설정에 대해 자세히 설명하고 앱에 필요한 사용자 지정 구성을 정의하는 방법을 설명합니다.

Databricks 앱 환경은 앱을 실행하는 Azure Databricks 작업 영역의 URL 및 앱에 대한 인증을 수행하는 데 필요한 값과 같은 여러 환경 변수를 설정합니다. 그러나 앱에 추가 사용자 지정 변수가 필요한 경우도 있습니다. 예를 들어 SQL 웨어하우스에 연결하기 위해 앱 또는 매개 변수를 실행하려면 사용자 지정 명령이 필요할 수 있습니다. 이러한 사용자 지정 구성 매개 변수의 경우 app.yaml 파일을 사용합니다.

파일을 사용하여 Databricks 앱 app.yaml 구성

참고 항목

앱 구성 파일은 확장 .yaml 프로그램을 .yml 사용할 수 있습니다.

앱에 대한 사용자 지정 구성을 정의하려면 프로젝트에 파일을 추가 app.yaml 합니다. 다음 표에서는 app.yaml 파일에서 정의할 수 있는 설정과 예제 구성 파일을 보여줍니다.

app.yaml 설정
command

유형: sequence

앱을 실행할 선택적 인수 집합입니다. 앱을 실행하기 위해 사용자 지정 명령이 필요한 경우 이 설정을 사용합니다. 기본값은 [python, app.py].

명령은 셸에서 실행되지 않으므로 환경에서 설정된 값은 앱에 전달되지 않습니다. 앱을 실행하기 위해 추가 매개 변수가 필요한 경우 env 구조를 사용합니다.

이 설정은 선택 사항입니다.
env

유형: list

앱에 전달할 환경 변수를 정의하는 키-값 쌍의 선택적 목록에 대한 최상위 키입니다. value 실제 매개 변수 값 또는 값이 저장되는 위치에 대한 참조일 수 있습니다. 목록의 유효한 항목은 다음과 같습니다.

- name: 환경 변수의 이름
- 다음 중 하나:
- value: 환경 변수의 값입니다.
- valueFrom: 외부에 정의된 값의 경우 값을 포함하는 원본의 이름입니다. 예를 들어 값이 포함된 비밀 또는 데이터베이스 테이블의 이름입니다.

이 설정은 선택 사항입니다.

Streamlit 앱의 예 app.yaml

다음 예제 app.yaml 구성 파일은 SQL 웨어하우스 ID와 매개 변수 값을 STREAMLIT_GATHER_USAGE_STATS 전달하는 Streamlit 앱을 실행합니다.

command: [
  "streamlit",
  "run",
  "app.py"
]
env:
  - name: "DATABRICKS_WAREHOUSE_ID"
    value: "quoz2bvjy8bl7skl"
  - name: "STREAMLIT_GATHER_USAGE_STATS"
    value: "false"

Flask 앱의 예 app.yaml

다음 예제 app.yaml 구성 파일은 Gunicorn 서버에서 Flask 앱을 실행하고 Unity 카탈로그 볼륨의 경로를 포함하는 환경 변수를 설정합니다.

command:
  - gunicorn
  - app:app
  - -w
  - 4
env:
  - name: "VOLUME_URI"
    value: "/Volumes/catalog-name/schema-name/dir-name"

Databricks 비밀 참조

앱에 대한 리소스 종속성으로 구성된 비밀을 참조하려면 app.yaml 구성의 env 섹션에서 valueFrom: <dependency_name> 설정합니다. 비밀 리소스에 대한 구성의 리소스 키 값으로 바꿉 dependency_name 니다. Databricks Apps 리소스 종속성에 대한 자세한 내용은 내 Databricks 앱을 Azure Databricks 서비스와 통합하는 어떻게 할까요? 참조하세요. Databricks 비밀을 관리하는 방법에 대한 자세한 내용은 비밀 관리를 참조 하세요.

다음 예제 app.yaml 에서는 리소스 종속성으로 구성된 비밀을 참조합니다.

command: [
  "python",
  "app.py"
]
env:
  - name: "SECRET_KEY"
    valueFrom: "secret-name"

Databricks Apps 환경 변수

다음 변수는 Databricks Apps 환경에서 자동으로 설정되며 모든 앱에서 사용할 수 있습니다. 추가 환경 변수를 설정해야 하는 경우 app.yaml 파일추가합니다.

변수 설명
DATABRICKS_APP_NAME 실행 중인 앱의 이름입니다.
DATABRICKS_WORKSPACE_ID 앱이 속한 Databricks 작업 영역의 고유 ID입니다.
DATABRICKS_HOST 앱이 속한 Databricks 작업 영역의 URL입니다.
DATABRICKS_APP_PORT 앱이 수신 대기해야 하는 네트워크 포트입니다.
DATABRICKS_CLIENT_ID 앱에 할당된 Databricks 서비스 주체의 클라이언트 ID입니다.
DATABRICKS_CLIENT_SECRET 앱에 할당된 Databricks 서비스 주체에 대한 OAuth 비밀입니다.

Streamlit에 대한 기본 환경 변수

다음 Streamlit 관련 변수는 Databricks 앱 환경에서 자동으로 구성되며 Streamlit 프레임워크를 사용하는 Databricks 앱에서 사용할 수 있습니다.

변수 설명
STREAMLIT_SERVER_ADDRESS Streamlit에서 사용할 서버 주소입니다. 이 값은 0.0.0.0으로 설정되며 재정의해서는 안 됩니다.
STREAMLIT_SERVER_PORT Streamlit에서 사용할 포트입니다. 이 값은 DATABRICKS_APP_PORT 설정되며 재정의해서는 안 됩니다.
STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION Databricks Apps의 역방향 프록시는 교차 사이트 요청 위조(XSRF)로부터 보호하기 때문에 false으로 설정됩니다.
STREAMLIT_SERVER_ENABLE_CORS Databricks Apps 역방향 프록시는 CORS(원본 간 리소스 공유)로부터 보호하기 때문에, 이를 false로 설정합니다.
STREAMLIT_SERVER_HEADLESS 시작 시 브라우저 창을 열지 않고 Streamlit가 실행되도록 true 설정됩니다.
STREAMLIT_BROWSER_GATHER_USAGE_STATS 사용자 통계를 Streamlit로 보내지 않도록 false 설정됩니다.