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 설정됩니다. |