애플리케이션 패키지에 Streamlit 앱 추가하기

이 항목에서는 애플리케이션 패키지에 Streamlit 앱을 추가하는 방법을 설명합니다.

애플리케이션에서 Streamlit을 사용하는 방법

Streamlit 은 데이터 과학 및 머신 러닝 애플리케이션 개발을 위한 오픈 원본 Python 프레임워크입니다. Snowflake Native App Framework 를 사용하면 Snowflake Native App 에 Streamlit 앱을 포함하여 사용자 상호 작용 및 데이터 시각화를 제공할 수 있습니다.

참고

지원되지 않는 Streamlit 기능에 대한 자세한 내용은 지원되지 않는 Streamlit 기능Native App Framework에서 Streamlit을 사용할 때의 제한 사항 섹션을 참조하십시오.

Streamlit 앱의 디렉터리 구조 예

다른 Python 모듈과 마찬가지로, Streamlit 앱을 애플리케이션 패키지에 추가하려면 Streamlit 코드 파일을 명명된 스테이지에 업로드해야 합니다. 스테이지에 파일을 업로드하는 방법에 대한 자세한 내용은 PUT 섹션을 참조하십시오.

Snowflake Native App 의 여러 버전을 설명하려면 다음과 유사한 디렉터리 구조를 사용하여 Streamlit 앱과 관련 애플리케이션 파일을 유지하는 것이 좋습니다.

@test.schema1.stage1:
└── /
    ├── manifest.yml
    ├── readme.md
    ├── scripts/setup_script.sql
    └── code_artifacts/
        └── streamlit/
            └── environment.yml
            └── streamlit_app.py
Copy

사용하는 디렉터리 구조는 환경에 따라 다릅니다.

참고

environment.yml 파일은 Streamlit 앱의 주 파일과 동일한 수준에 있어야 합니다.

상대 경로에 대한 자세한 내용은 외부 코드 파일 참조하기 섹션을 참조하십시오.

매니페스트 파일에 Streamlit 앱 추가하기

애플리케이션 패키지에 Streamlit 파일을 포함하려면 manifest.yml 파일에 다음 항목을 추가하십시오.

artifacts:
  ...
  extension_code: true
  ...
Copy

앱에서 확장 코드를 사용하려면 extension_code: true 항목이 필요합니다.

configuration:
  ...
  default_streamlit: app_schema.streamlit_app_na
  ...
Copy

default_streamlit: app_schema.streamlit_app_na 항목은 Streamlit 앱을 포함하는 스키마의 위치를 지정합니다.

설정 스크립트에 Streamlit 앱 추가하기

다음 예에서는 설정 스크립트 내에서 CREATE STREAMLIT 을 사용하는 방법을 보여줍니다.

CREATE STREAMLIT app_schema.my_test_app_na
     FROM '/code_artifacts/streamlit'
     MAIN_FILE = '/streamlit_app.py';

GRANT USAGE ON SCHEMA APP_SCHEMA TO DATABASE ROLE app_public;
GRANT USAGE ON STREAMLIT APP_SCHEMA.MY_TEST_APP_NA TO DATABASE ROLE app_public;
Copy

이 예에서는 app_schema 라는 스키마 내에 Streamlit 오브젝트를 생성합니다. CREATE STREAMLIT 명령은 FROM 절로 지정된 디렉터리 내의 MAIN_FILE 절에 지정된 Streamlit 앱을 사용합니다.

지원되지 않는 Streamlit 기능

다음 Streamlit 기능은 현재 지원되지 않습니다.

Native App Framework에서 Streamlit을 사용할 때의 제한 사항

이 섹션에서는 Snowflake Native App Framework 에서 Streamlit을 사용할 때의 제한 사항을 설명합니다.

사용자 지정 구성 요소가 지원되지 않음

사용자 지정 구성 요소는 지원되지 않습니다.

통합 버전 제어 또는 CI/CD 시스템이 지원되지 않음

Streamlit 앱은 버전 제어 시스템과 통합되지 않습니다. 앱 기록 또는 코드 변경 사항은 영구적이며 롤백할 수 없습니다.

GitHub, GitLab 또는 기타 버전 제어 벤더와의 통합은 없습니다.

앱 뷰어가 앱 편집 내용을 볼 수 있음

개발자가 편집하는 동안 앱을 실행하면 그 즉시 변경 사항이 앱 뷰어에 실시간으로 적용됩니다.

Seaborn 및 Matlibplot 라이브러리는 지원되지 않음

Seaborn 및 Matlibplot 라이브러리는 지원되지 않습니다. 둘 다 현재 지원되지 않는 st.image() 함수에 대한 종속성이 있습니다.

Streamlit 문제 해결하기

앱에서 알 수 없는 오류를 표시할 경우 다음 섹션에 설명된 해결책을 시도해봤는지 확인하십시오.

서비스 약관 동의하기

Snowflake 내에서 Anaconda가 제공하는 패키지와 Streamlit을 사용하려면 Snowflake 서드 파티 약관 에 동의해야 합니다. 자세한 내용은 Anaconda의 서드 파티 패키지 사용하기 을 참조하십시오.

방화벽 허용 목록 설정하기

각 Streamlit 앱은 고유한 하위 도메인을 사용합니다. 엄격한 방화벽을 사용하는 경우 *.snowflake.app 을 방화벽 허용 목록에 추가하십시오. 이 항목을 허용 목록에 추가하면 앱이 Snowflake 서버와 제한 없이 통신할 수 있습니다.