애플리케이션 패키지의 매니페스트 파일 만들기¶
이 항목에서는 애플리케이션 패키지의 매니페스트 파일을 만드는 방법을 설명합니다.
매니페스트 파일 정보¶
매니페스트 파일에는 애플리케이션 패키지가 Snowflake Native App 을 생성하고 관리하는 데 필요한 정보가 포함되어 있습니다. 여기에는 앱의 설치 스크립트 위치, 버전 정의 및 구성 정보가 포함됩니다.
매니페스트 파일의 요구 사항은 다음과 같습니다.
매니페스트 파일의 이름은
manifest.yml
이어야 합니다.매니페스트 파일은 애플리케이션 패키지에서 액세스할 수 있도록 명명된 스테이지에 업로드해야 합니다.
매니페스트 파일은 다른 애플리케이션 파일이 저장되는 명명된 스테이지의 디렉터리 구조 루트에 존재해야 합니다.
매니페스트 파일 참조¶
다음은 manifest.yml
파일에 포함될 수 있는 유효한 속성입니다.
- manifest_version:
매니페스트 파일의 버전을 지정합니다.
필수
- version:
버전과 관련된 매개 변수를 포함하는 블록을 정의합니다. 버전 및 패치에 대한 자세한 내용은 버전 및 패치 정보 섹션을 참조하십시오.
선택 사항
- 이름:
버전의 논리적 이름을 지정합니다. 이 이름은 버전을 관리하는 SQL 명령에 사용됩니다.
선택 사항
- 패치:
기본 패치 번호를 지정합니다. 이 번호는 버전을 관리하는 SQL 명령에 사용됩니다. 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 앱의 스키마와 이름이 지정됩니다.
선택 사항
- 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:
요청 중인 권한에 대한 설명을 제공합니다. Python Permission SDK 를 사용하여 권한이 Snowsight 에 표시되거나 SHOW PRIVILEGES 명령이 실행될 때
description
에 지정된 텍스트가 컨슈머에게 표시됩니다.Snowflake Native App 에 이 권한이 필요한 이유와 해당 권한이 필수인지 선택 사항인지에 대해 가능한 한 많은 정보를 제공합니다.
privileges
가 지정된 경우에는 필수 사항입니다.
- references:
공급자가 정의한 참조를 포함하는 블록을 정의합니다. 컨슈머는 이러한 참조를 해당 계정 내의 오브젝트에 바인딩해야 합니다.
선택 사항
- - <reference name>:
참조의 이름을 지정합니다.
- label:
Snowflake Native App 이 설치될 때 컨슈머가 볼 수 있는 참조에 대한 설명을 제공합니다.
references
가 지정된 경우에는 필수 사항입니다.- description:
요청 중인 참조에 대한 설명을 제공합니다. Snowsight 에서 Python Permission SDK 를 사용하여 참조가 표시될 때
description
에 지정된 텍스트가 컨슈머에게 표시됩니다.Snowflake Native App 에 이 참조가 필요한 이유와 해당 권한이 필수 사항인지 선택 사항인지에 대해 가능한 한 많은 정보를 제공해야 합니다.
privileges
가 지정된 경우에는 필수 사항입니다.- privileges:
참조에 필요한 권한을 지정합니다.
references
가 지정된 경우에는 필수 사항입니다.- object_type:
참조와 연결된 오브젝트의 유형(예: 스키마와 테이블 또는 API 통합)을 지정합니다.
references
가 지정된 경우에는 필수 사항입니다.- multi_valued:
둘 이상의 오브젝트가 참조와 연결됨을 지정합니다. 이 속성을 사용하면 여러 컨슈머 오브젝트를 동일한 참조에 바인딩할 수 있습니다. 이 속성이 지정되면 단일 값 참조가 있는 오브젝트에서 동일한 작업이 수행됩니다. 이 속성은 다중값 참조가 있는 오브젝트에도 사용할 수 있습니다. Snowflake Native App Framework 참조 작업에 대해 자세히 알아보려면 컨슈머로부터 참조 및 오브젝트 수준 권한 요청하기 섹션을 참조하십시오.
선택 사항
기본값: False
- register_callback:
참조를 호출하는 데 사용되는 콜백 함수의 이름을 지정합니다.
references
가 지정된 경우에는 필수 사항입니다.- configuration_callback:
이 참조에 바인딩할 오브젝트에 대한 원하는 구성을 제공하는 콜백 함수의 이름을 지정합니다.
이 속성은
object_type
이EXTERNAL ACCESS INTEGRATION
또는SECRET
인 경우 필수입니다. 이 속성은 다른 유형의 오브젝트에는 적용할 수 없습니다.- required_at_setup:
앱을 설치할 때 참조가 바인딩되어야 함을 나타냅니다. TRUE 또는 FALSE를 받습니다. 기본값은 FALSE입니다.
references
가 지정된 경우에는 필수 사항입니다.
매니페스트 파일 예¶
다음 예에서는 지원되는 모든 속성에 대해 값이 지정된 일반적인 매니페스트 파일을 보여줍니다.
manifest_version: 1 # required
version:
name: hello_snowflake
patch: 3
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
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"
- READ SESSION:
description: "To allow Streamlit to access some context functions"
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
- consumer_external_access:
label: "Consumer external access integration"
description: "An external access integration in the consumer account that exists outside the APPLICATION object."
privileges:
- USAGE
object_type: EXTERNAL ACCESS INTEGRATION
register_callback: config.register_reference
configuration_callback: config.get_configuration_for_reference
required_at_setup: true