애플리케이션 패키지의 매니페스트 파일 만들기

이 항목에서는 애플리케이션 패키지의 매니페스트 파일을 만드는 방법을 설명합니다.

매니페스트 파일 정보

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
Copy