컨테이너가 포함된 앱의 매니페스트 파일 만들기

이 항목에서는 Snowflake Native Apps with Snowpark Container Services 에 있는 manifest.yml 파일의 구성 요소에 대해 설명합니다. manifest.yml 파일에 대한 일반적인 내용은 애플리케이션 패키지의 매니페스트 파일 만들기 섹션을 참조하십시오.

앱에서 사용하는 컨테이너 이미지 지정

컨테이너가 포함된 앱에서 사용하는 컨테이너 이미지의 위치를 지정하려면 artifacts.container_services 블록에 images 속성을 추가합니다.

각 이미지에 대한 항목을 포함해야 합니다. 지정된 경로에는 데이터베이스, 스키마, 이미지 리포지토리의 이름이 포함됩니다. 이 경로의 형식은 다음과 같습니다.

/<database>/<schema>/<image_repository>/<image_name>:tag
Copy

다음 예제는 images 속성을 지정하는 방법을 보여줍니다.

artifacts
...
  container_services
    ...
    images
      - /dev_db/dev_schema/dev_repo/image1
      - /dev_db/dev_schema/dev_repo/image2
Copy

앱에 대한 사용자 인터페이스 엔드포인트 지정

컨테이너가 포함된 앱의 사용자 인터페이스에 대한 엔드포인트를 지정하려면 artifacts 블록에 default_web_endpoint 속성을 추가합니다.

default_web_endpoint 속성은 선택 사항입니다. 이 속성이 지정되면, 서비스 사양 파일에도 엔드포인트를 정의해야 합니다.

참고

default_web_endpointdefault_streamlit 중 하나만 지정할 수 있습니다.

매니페스트 파일의 이 항목에는 다음의 두 가지 추가 속성이 있습니다.

  • service

    사용자 인터페이스 서비스의 이름을 지정합니다.

  • endpoint

    엔드포인트의 이름을 지정합니다.

다음 예제는 default_web_endpoint 속성을 지정하는 방법을 보여줍니다.

default_web_endpoint:
  service: ux_schema.ux_service
  endpoint: ui
Copy

앱에 필요한 권한을 지정합니다.

다른 앱과 마찬가지로 manifest.yml 파일의 references 속성은 앱이 컨슈머에게 요청하는 참조를 지정합니다. 다음 권한은 컨테이너가 포함된 앱에만 적용됩니다.

  • CREATE COMPUTE POOL

    이 권한은 앱이 컨슈머 계정에서 컴퓨팅 풀을 생성하도록 허용하는 데 필요합니다. 컨슈머가 수동으로 컴퓨팅 풀을 생성하는 경우에는 필요하지 않습니다.

  • BIND SERVICE ENDPOINT

    이 권한은 Snowflake 외부에서 엔드포인트에 액세스할 수 있도록 하는 데 필요합니다.

다음 예제는 이러한 권한을 privileges 블록에 추가하는 방법을 보여줍니다.

privileges:
- 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.'
Copy

컨테이너가 포함된 앱의 매니페스트 파일 예제

Snowflake Native App Framework 는 컨테이너가 포함된 앱에만 해당하는 매니페스트 파일의 항목을 지원합니다. 다음 예제 manifest.yml 은 컨테이너가 포함된 앱의 일반적인 매니페스트 파일을 보여줍니다.

manifest_version: 1

version:
  name: v1

artifacts:
  readme: readme.md
  setup_script: setup.sql
  container_services:
    images
      - /dev_db/dev_schema/dev_repo/image1
      - /dev_db/dev_schema/dev_repo/image2

  default_web_endpoint:
    service: ux_schema.ux_service
    endpoint: ui

privileges:
 - CREATE COMPUTE POOL
   description: "...”
 - BIND SERVICE ENDPOINT
   description: "...”
Copy