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

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

매니페스트 파일 정보

매니페스트 파일에는 애플리케이션 패키지가 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_typeEXTERNAL 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
Copy