애플리케이션 패키지의 매니페스트 파일 만들기¶
이 항목에서는 애플리케이션 패키지의 매니페스트 파일을 만드는 방법을 설명합니다.
매니페스트 파일 정보¶
Snowflake Native App Framework 에서는 모든 애플리케이션 패키지에 매니페스트 파일이 포함되어 있어야 합니다. 이 파일은 설정 스크립트 위치와 버전 정의를 포함하여 애플리케이션 패키지에 필요한 속성을 정의합니다.
매니페스트 파일의 요구 사항은 다음과 같습니다.
매니페스트 파일의 이름은
manifest.yml
이어야 합니다.애플리케이션 패키지 또는 Snowflake Native App 을 만들 때 액세스할 수 있도록 매니페스트 파일을 명명된 스테이지에 업로드해야 합니다.
매니페스트 파일은 명명된 스테이지에서 디렉터리 구조의 루트에 있어야 합니다.
매니페스트 파일 참조¶
다음은 manifest.yml
파일에 포함될 수 있는 유효한 속성입니다.
- manifest_version:
매니페스트 파일의 버전을 지정합니다.
필수
- version:
버전과 관련된 매개 변수를 포함하는 블록을 정의합니다.
선택 사항
- 이름:
버전의 논리적 이름을 지정합니다. 이 이름은 버전을 관리하는 SQL 명령에 사용됩니다.
- label:
컨슈머에게 표시되는 버전의 이름을 지정합니다.
- comment:
버전에 대한 설명을 지정합니다. 이 설명은 공급자가 SHOW VERSIONS 명령을 실행할 때만 표시됩니다.
- artifacts:
이 버전의 패키지에서 배포되는 리소스와 관련된 블록을 정의합니다.
필수
- readme:
마크다운 형식으로 Snowflake Native App 의 개요를 제공하는 추가 정보 파일의 경로를 지정합니다. Streamlit 앱의 경우
default_streamlit
속성에 지정된 값이 없을 경우 설치된 Snowflake Native App 을 볼 때 이 파일의 내용이 컨슈머에게 표시됩니다.이 파일의 위치는
manifest.yml
파일의 위치를 기준으로 지정됩니다.필수
- setup_script:
Snowflake Native App 이 설치될 때 실행되는 SQL 스크립트의 경로와 파일 이름을 지정합니다. 값을 지정하지 않으면 기본값은
manifest.yml
파일과 같은 디렉터리에서setup.sql
입니다.선택 사항
- default_streamlit:
Snowflake Native App 에 Streamlit 앱이 포함되는 경우 이 속성에 따라 컨슈머가 사용할 수 있는 기본 Streamlit 앱의 스키마와 이름이 지정됩니다.
Snowflake Native App 에 Streamlit 앱이 포함된 경우에 필요합니다. 그렇지 않으면 선택 사항입니다.
- extension_code:
Snowflake Native App 이 UDF와 저장 프로시저를 실행할 수 있는지 여부를 지정합니다. 이 속성의 기본값은
false
입니다.선택 사항
- configuration:
Snowflake Native App 에 대한 구성 속성을 포함하는 블록을 지정합니다.
선택 사항
- log_level:
설치된 Snowflake Native App 에 사용할 로깅 수준을 지정합니다. 이 속성에 대해 지원되는 값에 대한 정보는 로그 수준 설정하기 섹션을 참조하십시오.
선택 사항
기본값: 끄기
- trace_level:
설치된 Snowflake Native App 에 사용할 추적 이벤트 수준을 지정합니다. 공급자가 추적을 활성화하면 Snowflake Native App 은 모든 쿼리와 저장 프로시저 호출의 시작 시간과 종료 시간을 자동으로 캡처합니다.
참고
trace_level
속성이OFF
이외의 값으로 설정된 Snowflake Native App 을 게시하면 이벤트 테이블을 볼 수 있는 컨슈머 계정의 모든 사용자에게 숨겨진 저장 프로시저에 대한 호출이 노출될 수 있습니다.trace_level
속성에 지원되는 값은 추적 수준 설정하기 섹션을 참조하십시오.선택 사항
기본값: 끄기
- privileges:
Snowflake Native App 설치 시 컨슈머가 부여해야 하는 권한을 포함하는 블록을 정의합니다.
선택 사항
기본값: 빈 목록
- <privilege name>:
권한의 이름을 지정합니다.
- description:
요청 중인 권한에 대한 설명을 제공합니다. Snowsight 에서 Python Permission SDK 를 사용하여 권한이 표시될 때
description
에 지정된 텍스트가 컨슈머에게 표시됩니다.Snowflake Native App 에 이 권한이 필요한 이유와 해당 권한이 필수 사항인지 선택 사항인지에 대해 가능한 한 많은 정보를 제공해야 합니다.
privileges
가 지정된 경우에는 필수 사항입니다.
- references:
공급자가 정의한 참조를 포함하는 블록을 정의합니다. 컨슈머는 이러한 참조를 해당 계정 내의 오브젝트에 바인딩해야 합니다.
- - <reference name>:
참조의 이름을 지정합니다.
- label:
Snowflake Native App 이 설치될 때 컨슈머가 볼 수 있는 참조에 대한 설명을 제공합니다.
references
가 지정된 경우에는 필수 사항입니다.- privileges:
참조에 필요한 권한을 지정합니다.
references
가 지정된 경우에는 필수 사항입니다.- object_type:
참조와 연결된 오브젝트의 유형(예: 스키마와 테이블 또는 API 통합)을 지정합니다.
references
가 지정된 경우에는 필수 사항입니다.- multi_valued:
둘 이상의 오브젝트가 참조와 연결됨을 지정합니다.
선택 사항입니다.
기본값: False
- register_callback:
참조를 호출하는 데 사용되는 콜백 함수의 이름을 지정합니다.
references
가 지정된 경우에는 필수 사항입니다.
매니페스트 파일 예¶
다음 예에서는 지원되는 모든 속성에 대해 값이 지정된 일반적인 매니페스트 파일을 보여줍니다.
manifest_version: 1 # required
version:
name: hello_snowflake
label: "v1.0"
comment: "The first version of a Snowflake Native App"
artifacts:
readme: readme.md
setup_script: scripts/setup.sql
default_streamlit: streamlit/ux_schema.homepage_streamlit
extension_code: true
configuration:
log_level: debug
trace_level: always
privileges:
- EXECUTE TASK:
description: "Run ingestion tasks for replicating Redshift data"
- EXECUTE MANAGED TASK:
description: "To run serverless ingestion tasks for replicating Redshift data"
- CREATE WAREHOUSE:
description: "To create warehouses for executing tasks"
- MANAGE WAREHOUSES:
description: "To manage warehouses for optimizing the efficiency of your accounts"
- CREATE DATABASE:
description: "To create sink databases for replicating Redshift data"
- IMPORTED PRIVILEGES ON SNOWFLAKE DB:
description: "To access account_usage views"
references:
- consumer_table:
label: "Consumer table"
description: "A table in the consumer account that exists outside the APPLICATION object."
privileges:
- SELECT
- INSERT
- UPDATE
object_type: Table
multi_valued: true
register_callback: config.register_reference