이 페이지에서는 가로 크기가 조정된 Databricks 앱에서 미리 설치된 Python 라이브러리를 옵트아웃하고, 고유한 종속성을 관리하고, 미리 설치된 라이브러리를 나중에 다시 설정하는 방법을 설명합니다. 옵트아웃은 표준 앱에서 변환된 수평 크기 조정된 앱에서만 사용할 수 있습니다. 가로 크기 조정을 사용하도록 표준 앱 변환을 참조하세요. 수평적 크기 조정은 베타 버전입니다.
표준 앱을 수평 확장된 앱으로 변환하면 Azure Databricks는 변환된 앱을 사전 설치된 Python 라이브러리에 고정하므로 앱의 기존 import 문이 계속 작동합니다. 깨끗한 기본 OS 이미지에서 앱을 실행하고 모든 라이브러리를 직접 선언하도록 옵트아웃합니다.
미리 설치된 라이브러리 옵트아웃
옵트아웃을 선택하면 Azure Databricks는 다음 배포를 클린 베이스 OS 이미지를 기준으로 빌드합니다.
requirements.txt 또는 pyproject.toml에서 미리 설치된 라이브러리를 선언하지 않으면 더 이상 사용할 수 없습니다.
옵트아웃하려면:
- 앱 세부 정보 페이지에서 편집을 클릭합니다.
- Configure 단계에서 미리 설치된 Python 라이브러리 사용 확인란의 선택을 취소합니다.
- 저장을 클릭합니다. 현재 실행 중인 배포는 영향을 받지 않습니다.
- 배포 탭에서 앱을 다시 배포합니다 . 이 새 배포는 클린 기본 OS 이미지에 대해 빌드됩니다.
권장 워크플로
종속성에는 미리 설치된 라이브러리가 전이적으로 포함될 수 있으므로 앱에 직접 필요한 라이브러리가 항상 명확하지는 않습니다. 프로덕션 환경에서 옵트아웃하기 전에 테스트 앱에서 누락된 라이브러리를 찾습니다.
- 가로로 조정된 새 앱을 만듭니다. 새로운 수평 확장된 앱은 깨끗한 기본 OS 이미지에서 이미 실행되므로 옵트아웃 후 대상과 일치합니다.
- 프로덕션 앱의 원본을 테스트 앱에 배포합니다. 테스트 앱이 시작되고 요청을 처리하며 테스트를 통과할 때까지
requirements.txt(또는pyproject.toml)를 업데이트하고 다시 배포하세요. - 최종 종속성 선언을 프로덕션 앱의 원본에 복사합니다.
- 프로덕션 앱에서 미리 설치된 라이브러리 옵트아웃의 단계를 수행하고 업데이트된 원본을 배포합니다.
프로덕션은 새 배포가 상태 검사를 통과할 때까지 미리 설치된 라이브러리를 사용하여 이미지에서 계속 실행되므로 이 방법은 테스트 앱에 대한 누락된 종속성을 식별하는 동안 가동 중지 시간을 방지합니다.
옵트아웃 후 오류 해결
옵트아웃 후 가장 일반적인 오류는 ModuleNotFoundError 미리 설치된 집합에서 코드를 암시적으로 가져온 프레임워크 또는 라이브러리로 인해 발생하는 앱 시작 시입니다. 이 문제를 해결하려면 다음을 수행합니다.
- 앱 세부 정보 페이지에서 로그 탭을 엽니다.
- 빌드 또는 런타임 로그에서 누락된 모듈 이름을 찾습니다.
- 해당 패키지를
requirements.txt(또는pyproject.toml)에 추가하고 다시 배포합니다.
새 배포는 앱 프로세스가 시작 후 처음 몇 초 동안 계속 실행되는 경우에만 실행 중인 배포를 대체합니다. 누락된 import 때문에 즉시 충돌하는 opt-out 배포는 트래픽을 넘겨받지 않으며, 종속성 목록을 수정하는 동안에는 이전의 정상적으로 동작하던 배포로 트래픽이 계속 전달됩니다. 시작 확인은 피상적이므로, 문제가 있는 배포를 잡아내는 데 이 확인에 의존하지 말고 옵트아웃한 후 앱이 실제로 요청을 처리하는지 테스트하세요.
미리 설치된 라이브러리를 다시 켜기
옵트아웃한 후 미리 설치된 라이브러리로 돌아가려면 다음을 수행합니다.
- 앱 세부 정보 페이지에서 편집을 클릭합니다.
- Configure 단계에서 미리 설치된 Python 라이브러리 사용 확인란을 선택합니다.
- 저장을 클릭합니다.
- 배포 탭에서 앱을 다시 배포합니다 . 이 새 배포는 미리 설치된 라이브러리를 사용하여 기본 이미지에 대해 빌드됩니다.
requirements.txt 및 pyproject.toml는 계속 적용되므로, 옵트아웃한 동안 추가한 모든 명시적 선언은 그대로 유지됩니다.
메모
수평 크기 조정된 앱을 다시 표준 앱으로 변환하면 미리 설치된 라이브러리도 복원됩니다. 표준 앱은 옵트아웃했는지 여부에 관계없이 해당 라이브러리와 함께 다시 빌드됩니다. 나중에 앱을 수평으로 다시 확장하도록 변환하는 경우 다시 옵트아웃할 때까지 미리 설치된 라이브러리가 포함됩니다.