Snowflake Native App 매니페스트 참조¶
이 항목에서는 Snowflake Native App 매니페스트 파일의 구조와 필드에 대해 설명합니다.
manifest_version 필드¶
매니페스트 파일 형식의 버전을 지정합니다.
이 필드는 필수입니다.
manifest_version: 1¶
이 버전의 매니페스트 파일은 |native-apps|의 현재 및 레거시 기능을 지원합니다.
예: manifest_version: 1
manifest_version: 2¶
이 버전의 매니페스트 파일은 자동 권한 부여 등 추가 기능을 지원합니다.
조심
매니페스트 파일의 버전 2를 사용하기 전에 :ref:`label-native_apps_manifest_about`에 설명된 보안 영향을 고려하세요.
예: manifest_version: 2
manifest_version 예제¶
manifest_version: 2
version 필드¶
앱의 버전과 관련된 필드가 포함된 블록을 정의합니다. 버전 및 패치에 대한 자세한 내용은 앱 업데이트하기 섹션을 참조하십시오.
참고
CREATE APPLICATION PACKAGE 또는 ALTER APPLICATION PACKAGE 명령을 사용하여 정의된 버전 및 패치는 매니페스트 파일에 정의된 명령보다 우선합니다.
이 필드는 선택 사항입니다.
name¶
버전의 이름을 지정합니다.
이 필드는 선택 사항입니다.
예: name: v1
patch¶
기본 패치 번호를 지정합니다.
이 필드는 선택 사항입니다.
예: patch: 1
label¶
컨슈머에게 표시되는 버전의 이름을 지정합니다.
이 필드는 선택 사항입니다.
예: label: "Initial Release"
comment¶
버전에 대한 설명을 지정합니다. 이 설명은 |sf-web-interface|에 표시되거나 공급자가 SHOW VERSIONS IN APPLICATION PACKAGE 명령을 실행할 때만 표시됩니다.
이 필드는 선택 사항입니다.
예: comment: "This is the initial release of the app."
version: 예제¶
version:
name: v1
patch: 1
label: "Initial Release"
comment: "This is the initial release of the app."
artifacts: 필드¶
앱에서 사용된 리소스를 지정하는 블록을 정의합니다.
이 필드는 필수입니다.
setup_script:¶
|native-app|이 설치되거나 업그레이드될 때 실행되는 스크립트의 경로와 파일 이름을 지정합니다. 값을 지정하지 않으면 앱은 매니페스트 파일과 동일한 디렉터리에 있는 기본값 :file:`setup.sql`을 사용합니다.
예: setup_script: scripts/setup.sh
readme:¶
앱과 해당 기능에 대한 개요를 제공하는 마크다운 추가 정보 파일의 경로를 지정합니다.
Streamlit 앱의 경우 default_streamlit 속성에 지정된 값이 없을 경우 설치된 Snowflake Native App 을 볼 때 이 파일의 내용이 컨슈머에게 표시됩니다.
이 파일의 위치는 매니페스트 파일의 위치를 기준으로 지정됩니다.
이 필드는 선택 사항이지만, 앱에 readme 파일을 포함하는 것이 좋습니다.
예: readme: docs/README.md
default_streamlit_app:¶
Snowflake Native App 에 Streamlit 앱이 포함되는 경우 이 속성에 따라 컨슈머가 사용할 수 있는 기본 Streamlit 앱의 스키마와 이름이 지정됩니다.
앱에 Streamlit 앱이 포함된 경우 이 필드는 필수입니다.
extension_code:¶
Java, Python, Scala 등 확장 프로그램 코드 언어의 사용을 활성화하거나 비활성화합니다.
예: extension_code: true
container_services:¶
컨테이너가 포함된 앱에서 사용하는 컨테이너 이미지의 위치를 지정합니다. 자세한 내용은 컨테이너를 사용하여 앱에서 사용하는 컨테이너 이미지 지정하기 섹션을 참조하십시오.
컨테이너가 있는 앱의 경우 이 필드는 필수입니다.
uses_gpu:¶
컨테이너가 있는 앱에서 GPU를 사용함을 나타냅니다.
컨테이너가 있는 앱의 경우 이 필드는 필수입니다.
예: uses_gpu: true
images:¶
컨테이너가 포함된 앱에서 사용하는 각 컨테이너 이미지의 경로를 지정합니다.
컨테이너가 있는 앱의 경우 이 필드는 필수입니다.
예:
images:
- /spcs_app/napp/img_repo/eap_frontend
- /spcs_app/napp/img_repo/eap_backend
- /spcs_app/napp/img_repo/eap_router
artifacts 예제¶
artifacts:
setup_script: scripts/setup.sql
readme: docs/README.md
default_streamlit_app: apps/main.py
extension_code: true
container_services:
uses_gpu: true
images:
- /spcs_app/napp/img_repo/eap_frontend
- /spcs_app/napp/img_repo/eap_backend
configuration 필드¶
앱에 대한 구성 속성을 포함하는 블록을 지정합니다.
이 필드는 선택 사항입니다.
log_level:¶
Snowflake Native App 앱에 사용할 로깅 수준을 지정합니다.
이 속성의 값을 설정하지 않으면 기본 로그 데이터가 캡처되지 않습니다.
지원되는 값에 대한 자세한 내용은 로깅, 메트릭 및 추적을 위한 수준 설정하기 섹션을 참조하세요.
trace_level:¶
앱에 사용할 추적 이벤트 수준을 지정합니다. 공급자가 추적을 활성화하면 앱은 모든 쿼리와 저장 프로시저 호출의 시작 시간과 종료 시간을 자동으로 캡처합니다.
조심
trace_level 속성이 OFF 이외의 값으로 설정된 앱을 게시하면 이벤트 테이블을 볼 수 있는 컨슈머 계정의 모든 사용자에게 숨겨진 저장 프로시저에 대한 호출이 노출될 수 있습니다.
이 속성의 값을 설정하지 않으면 추적 이벤트가 캡처되지 않습니다.
trace_level 속성에 지원되는 값은 로깅, 메트릭 및 추적을 위한 수준 설정하기 섹션을 참조하십시오.
metric_level:¶
앱에 사용할 메트릭 수준을 지정합니다. 공급자가 메트릭을 활성화하면 앱은 자동 계측된 리소스 메트릭 데이터 요소를 이벤트 테이블에 자동으로 전송합니다.
자세한 내용은 앱의 로그 및 추적 수준 설정 섹션을 참조하십시오.
metric_level 속성에 지원되는 값은 로깅, 메트릭 및 추적을 위한 수준 설정하기 섹션을 참조하십시오.
grant_callback:¶
컨테이너가 있는 앱에 대한 콜백 함수의 스키마와 이름을 지정합니다. 콜백 함수는 애플리케이션에 필요한 컴퓨팅 풀, 서비스를 생성하고 다른 설정 작업을 수행할 수 있는 저장 프로시저입니다.
컨테이너가 있는 앱의 경우 이 필드는 필수입니다.
자세한 내용은 grant_callback 속성을 사용하여 서비스 만들기 섹션을 참조하십시오.
예: grant_callback: my_schema.my_grant_callback
configuration 예제¶
configuration:
log_level: INFO
trace_level: OFF
metric_level: BASIC
grant_callback: my_schema.my_grant_callback
privileges: 필드¶
앱이 컨슈머 계정에서 요청하는 권한이 포함된 블록을 정의합니다.
앱이 컨슈머 계정에서 권한을 요청하는 경우 이 필드는 필수입니다.
<privilege_name>:¶
앱이 컨슈머 계정에서 요청하는 권한의 이름을 지정합니다.
privileges 속성이 지정된 경우 이 필드는 필수입니다.
description:¶
요청 중인 권한에 대한 설명을 제공합니다. Python Permission SDK 를 사용하여 권한이 Snowsight 에 표시되거나 SHOW PRIVILEGES 명령이 실행될 때 description 에 지정된 텍스트가 컨슈머에게 표시됩니다.
공급자는 |native-app|에 이 권한이 필요한 이유 및 해당 권한이 필수인지 선택 사항인지 여부에 대한 정보를 최대한 많이 포함해야 합니다.
privileges 필드가 지정된 경우 이 필드는 필수입니다.
privileges: 예제¶
privileges:
- CREATE TABLE:
description: 'Required to create tables in the consumer account.'
- CREATE COMPUTE POOL:
description: 'Required to allow the app to create a compute pool in the consumer account.'
- BIND SERVICE ENDPOINT:
description: 'Required to allow endpoints to be externally accessible.'
references: 필드¶
앱이 컨슈머 계정에서 요청하는 참조를 포함하는 블록을 정의합니다. 컨슈머는 이러한 참조를 해당 계정 내의 오브젝트에 바인딩해야 합니다.
앱이 컨슈머 계정에서 참조를 요청하는 경우 이 필드는 필수입니다.
- <reference_name>:¶
앱이 컨슈머 계정에서 요청하는 참조의 이름을 지정합니다.
references 속성이 지정된 경우 이 필드는 필수입니다.
label:¶
컨슈머에게 표시되는 참조의 레이블을 지정합니다.
references 속성이 지정된 경우 이 필드는 필수입니다.
예: label: "Orders table"
description:¶
요청 중인 참조에 대한 설명을 제공합니다. ``description``에 지정된 텍스트는 |native-app-perms|를 사용하여 참조가 |sf-web-interface|에 표시되거나 SHOW REFERENCES 명령이 실행될 때 컨슈머에게 표시됩니다.
references 속성이 지정된 경우 이 필드는 필수입니다.
privileges:¶
앱이 컨슈머 계정에서 참조가 바인딩된 오브젝트에 대해 필요한 권한 목록을 지정합니다.
references 속성이 지정된 경우 이 필드는 필수입니다.
예:
privileges:
- SELECT
- INSERT
object_type¶
참조와 연결된 오브젝트의 유형(예: 스키마와 테이블 또는 API 통합)을 지정합니다.
references 필드가 지정된 경우 이 필드는 필수입니다.
예: object_type: TABLE
자세한 내용은 참조가 포함할 수 있는 오브젝트 유형 및 권한 섹션을 참조하십시오.
multi_valued:¶
둘 이상의 오브젝트를 참조와 연결할 수 있습니다. 이 속성을 사용하면 여러 컨슈머 오브젝트를 동일한 참조에 바인딩할 수 있습니다. 이 속성이 지정되면 단일 값 참조가 있는 오브젝트에서 동일한 작업이 수행됩니다. 이 속성은 다중값 참조가 있는 오브젝트에도 사용할 수 있습니다.
이 필드는 선택 사항입니다. 기본값은 false 입니다.
자세한 내용은 컨슈머로부터 참조 및 오브젝트 수준 권한 요청하기 섹션을 참조하십시오.
예: multi_valued: true
register_callback¶
컨슈머가 참조를 계정의 오브젝트에 바인딩할 때 실행되는 콜백 함수의 스키마와 이름을 지정합니다.
references 속성이 지정된 경우 이 필드는 필수입니다.
예: register_callback: my_schema.my_register_callback
configuration_callback¶
이 참조에 바인딩할 오브젝트에 대해 원하는 구성을 제공하는 콜백 함수의 이름을 지정합니다.
이 속성은 object_type 이 EXTERNAL ACCESS INTEGRATION 또는 SECRET 인 경우 필수입니다. 이 속성은 다른 유형의 오브젝트에는 적용할 수 없습니다.
required_at_setup¶
앱을 설치할 때 참조가 바인딩되어야 함을 나타냅니다.
예: required_at_setup: true
references 예제¶
references:
- ORDERS_TABLE:
label: "Orders table"
description: "Orders table in TPC-H samples"
privileges:
- SELECT
object_type: VIEW
multi_valued: false
register_callback: v1.register_single_callback
- EXTERNAL_ENDPOINT_EAI:
label: "Allows egress to an external API"
description: "EAI for Egress from NA+SPCS"
privileges: [USAGE]
object_type: EXTERNAL_ACCESS_INTEGRATION
register_callback: v1.register_single_callback
configuration_callback: v1.get_configuration
required_at_setup: true
restricted_callers_rights: 필드¶
제한된 호출자의 권한과 관련된 구성 속성을 지정합니다.
앱이 저장 프로시저 또는 제한된 호출자 권한으로 실행되는 Snowpark Container Services 서비스를 생성하는 경우 이 필드는 필수입니다.
자세한 내용은 앱에서 소유자 권한 및 제한된 호출자 권한 사용하기 섹션을 참조하십시오.
enabled:¶
앱이 호출자의 권한이 제한된 실행 파일을 만들 수 있는지 여부를 지정합니다.
앱이 저장 프로시저를 생성하거나 제한된 호출자 권한으로 실행되는 Snowpark Container Services 서비스를 생성하는 경우 공급자는 이 속성을 ``true``로 설정해야 합니다.
description:¶
앱이 호출자의 권한이 제한된 실행 파일을 만들어야 하는 이유에 대한 설명을 제공합니다.
restricted_callers_rights: 예제¶
restricted_callers_rights:
enabled: true
description: "Required to create stored procedures that run with restricted caller's rights."