자습서 2: 컨테이너로 앱 만들기¶
소개¶
공급자는 Snowflake Native App Framework 를 사용해 Snowflake 데이터 클라우드 내에서 앱을 빌드, 판매 및 배포할 수 있습니다. 공급자는 핵심 Snowflake 기능을 활용하여 데이터 및 애플리케이션 로직을 컨슈머와 공유하는 앱을 만들 수 있습니다. Snowflake Native App 의 로직에는 저장 프로시저 및 사용자 정의 함수(UDF)와 같은 기능이 포함될 수 있습니다. 공급자는 Snowflake Marketplace의 목록이나 비공개 목록을 통해 애플리케이션을 컨슈머와 공유할 수 있습니다.
Snowflake Native App 에서 Snowpark Container Services를 구현하여 Snowflake 생태계 내에서 컨테이너화된 앱의 배포, 관리 및 확장을 용이하게 할 수 있습니다. 이 자습서에서는 Snowflake에서 컨테이너 워크로드를 실행하는 Snowflake Native App 인 Snowflake Native App with Snowpark Container Services 를 만드는 방법을 설명합니다. Snowflake Native Apps with Snowpark Container Services 은 보안, 로깅, 공유 데이터 콘텐츠, 애플리케이션 논리 등 Snowflake Native App Framework 의 모든 기능을 활용하면서 모든 컨테이너화된 서비스를 실행할 수 있습니다.
참고
이 자습서에서는 Snowflake CLI 및 Snowsight 를 모두 사용하여 필요한 작업을 수행합니다.
이 자습서에서 배우는 내용¶
이 자습서에서는 다음을 수행하는 방법을 배웁니다.
Snowflake CLI 를 사용하여 Snowflake Native App with Snowpark Container Services 프로젝트를 초기화합니다.
앱에 대한 Docker 이미지를 빌드합니다.
애플리케이션 패키지와 Snowflake Native App with Snowpark Container Services 에 필요한 애플리케이션 파일을 생성합니다.
컨테이너 내에서 서비스 함수를 호출하여 Snowflake Native App with Snowpark Container Services 를 테스트합니다.
Snowflake 환경 설정하기¶
이 자습서를 수행하려면 다음 전제 조건을 충족해야 합니다.
Snowpark Container Services를 지원하는 Snowflake 계정에 액세스합니다.
이 자습서에 사용된 역할을 생성하고 해당 역할에 필요한 권한을 부여하려면 ACCOUNTADMIN 역할을 사용할 수 있어야 합니다.
로컬 머신에 Snowflake CLI 버전
3.0.0
이상이 설치되어 있어야 합니다.로컬 머신에 Docker Desktop이 설치되어 있어야 합니다.
이 자습서에 대한 역할 설정¶
이 자습서에서는 tutorial_role
역할을 사용하여 Snowflake Native App with Snowpark Container Services 를 생성하는 과정을 안내합니다. 이 자습서를 진행하기 전에 ACCOUNTADMIN 역할이 있는 Snowflake 사용자는 이 역할을 구성하기 위해 다음 단계를 수행해야 합니다.
tutorial_role
역할을 만들고 설정하려면 다음 단계를 따르십시오.
tutorial_role
역할을 생성하려면 다음 명령을 실행합니다.CREATE ROLE tutorial_role;
자습서를 수행하는 Snowflake 사용자에게
tutorial_role
권한을 부여하려면 다음 명령을 실행합니다.GRANT ROLE tutorial_role TO USER <user_name>;
여기서
user_name
자습서에 따라 작업을 수행하는 사용자의 이름을 지정합니다.
컨테이너 앱에 필요한 Snowflake 오브젝트를 만들고 사용하는 데 필요한 권한을 부여하려면 다음 명령을 실행합니다.
GRANT CREATE INTEGRATION ON ACCOUNT TO ROLE tutorial_role; GRANT CREATE WAREHOUSE ON ACCOUNT TO ROLE tutorial_role; GRANT CREATE DATABASE ON ACCOUNT TO ROLE tutorial_role; GRANT CREATE APPLICATION PACKAGE ON ACCOUNT TO ROLE tutorial_role; GRANT CREATE APPLICATION ON ACCOUNT TO ROLE tutorial_role; GRANT CREATE COMPUTE POOL ON ACCOUNT TO ROLE tutorial_role WITH GRANT OPTION; GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO ROLE tutorial_role WITH GRANT OPTION;
이 섹션의 작업을 수행한 후 계정에 tutorial_role
역할이 부여된 사용자는 Snowflake Native App with Snowpark Container Services 를 생성하는 데 필요한 모든 Snowflake 오브젝트를 생성할 수 있는 권한을 갖게 됩니다.
이 자습서의 나머지 부분에서 이 역할을 사용합니다.
실제 상황에서 공급자는 컴퓨팅 풀, 웨어하우스, 데이터베이스 등 컨테이너를 사용하여 앱을 개발하기 위해 유사한 권한이나 기존 오브젝트에 대한 액세스 권한이 필요할 수 있습니다.
계정에 필요한 오브젝트 만들기¶
이 섹션에서는 컨테이너를 사용하여 앱에 필요한 Snowflake 오브젝트를 만듭니다.
웨어하우스와 이미지 리포지토리 만들기¶
필요한 오브젝트를 생성하려면 Snowsight 또는 Snowflake CLI 를 통해 다음을 수행합니다.
Snowsight 의 현재 컨텍스트가
tutorial_role
역할을 사용하도록 설정하려면 다음 명령을 실행합니다.USE ROLE tutorial_role;
Snowflake CLI 를 사용 중인 경우, 대신
--role tutorial_role
을 사용할 수 있습니다.Snowflake Native App with Snowpark Container Services 에 대한 웨어하우스를 생성하려면 다음 명령을 실행합니다.
CREATE OR REPLACE WAREHOUSE tutorial_warehouse WITH WAREHOUSE_SIZE = 'X-SMALL' AUTO_SUSPEND = 180 AUTO_RESUME = true INITIALLY_SUSPENDED = false;
Snowflake Native App 이 SQL 명령과 저장 프로시저를 실행하려면 웨어하우스가 필요합니다.
컨테이너를 저장하는 데 사용되는 이미지 리포지토리를 만들려면 다음 명령을 실행합니다.
CREATE DATABASE tutorial_image_database; CREATE SCHEMA tutorial_image_schema; CREATE IMAGE REPOSITORY tutorial_image_repo;
이 섹션에서는 앱에 대한 쿼리를 실행하는 데 사용되는 웨어하우스와 컨테이너 이미지를 호스팅하는 이미지 리포지토리를 만들었습니다.
다음 섹션에서는 컨테이너에 대한 이미지를 생성하여 위에서 생성한 이미지 리포지토리에 업로드합니다.
자습서를 위한 Snowflake CLI 연결 만들기¶
이 자습서에서 Snowflake CLI 명령을 실행하려면 자습서에 Snowflake CLI 연결을 설정해야 합니다.
연결을 만들려면 다음 작업을 수행합니다.
터미널에서 다음 명령을 실행합니다.
snow connection add
연결 이름에
tut-connection
을 입력합니다.Snowflake CLI 연결에 대한 추가 정보를 입력합니다.
사용하는 특정 값은 Snowflake 계정에 따라 다릅니다. 그러나 역할, 웨어하우스, 데이터베이스 및 스키마 속성에 다음 값을 사용해야 합니다.
매개 변수
필요한 값
연결을 위한 역할
tutorial_role
연결을 위한 웨어하우스
tutorial_warehouse
연결용 데이터베이스
tutorial_image_database
연결 스키마
tutorial_image_schema
다음 명령을 실행하여 연결을 확인합니다.
snow connection test -c tut-connection
이 명령의 출력은 다음과 비슷하게 표시됩니다.
+----------------------------------------------------------------------------------+ | key | value | |-----------------+----------------------------------------------------------------| | Connection name | tut-connection | | Status | OK | | Host | USER_ACCOUNT.snowflakecomputing.com | | Account | USER_ACCOUNT | | User | tutorial_user | | Role | TUTORIAL_ROLE | | Database | TUTORIAL_IMAGE_DATABASE | | Warehouse | TUTORIAL_WAREHOUSE | +----------------------------------------------------------------------------------+
조심
tut-connection
연결을 만들지 않는 경우 역할, 데이터베이스 및 웨어하우스 연결 속성에 대해 올바른 값을 지정하는 연결을 사용해야 합니다.
앱용 프로젝트 설정하기¶
이전 섹션에서 자습서에 대한 Snowflake CLI 연결을 설정했습니다.
이 섹션에서는 Snowflake CLI 를 사용하여 앱의 프로젝트를 만듭니다. 프로젝트에는 앱에 필요한 모든 자산이 포함되어 있습니다. 이러한 파일은 로컬 파일 시스템에 저장되며 개발 워크플로의 일부로 버전 관리 시스템에서 관리할 수 있습니다.
Snowflake CLI를 사용하여 프로젝트 파일 만들기¶
프로젝트 파일을 만들려면 다음 명령을 실행합니다.
snow init --template app_basic na-spcs-tutorial
프로젝트 식별자에 대한 값을 입력합니다.
이 폴더에 파일과 하위 폴더를 추가하고 이후 하위 섹션에서 이 명령으로 만든 파일을 편집합니다.
이 명령은 app_basic
프로젝트 템플릿을 사용하여 na-spcs-tutorial
폴더를 만듭니다.
na-spcs-tutorial
폴더 내에서 이 명령은 다음 파일과 폴더를 만듭니다.
├── README.md
├── app
└── manifest.yml
└── README.md
└── setup_script.sql
├── snowflake.yml
이후 섹션에서는 이러한 파일을 수정하고 앱에 리소스를 추가합니다.
앱 프로젝트에 서비스 파일 추가하기¶
이전 섹션에서 앱에 필요한 기본 애플리케이션 파일이 포함된 프로젝트를 만들었습니다. 이 섹션에서는 앱의 컨테이너를 만드는 데 필요한 파일을 추가합니다.
na-spcs-tutorial
폴더에 이름이service
인 폴더를 만듭니다.이 폴더에는 Snowflake에 빌드하여 게시할 컨테이너 기반 서비스의 소스 코드가 들어 있습니다.
자습서에 필요한 Docker 파일을 얻으려면
na_spcs_tutorial.zip
파일을 로컬 파일 시스템에 다운로드하십시오.Zip 파일의 내용을
na-spcs-tutorial/service
폴더에 압축을 풉니다. 이 폴더에는 다음 파일이 포함되어야 합니다.echo_service.py
Dockerfile
templates/basic_ui.html
echo_spec.yaml
프로젝트의 디렉터리 구조 확인하기¶
앱의 프로젝트를 생성하고 서비스 및 Docker 컨테이너 파일을 추가한 후 프로젝트는 na-spcs-tutorial
폴더 내에 다음과 같은 구조를 가져야 합니다.
├── app
└── manifest.yml
└── README.md
└── setup_script.sql
├── README.md
├── service
└── echo_service.py
├── echo_spec.yaml
├── Dockerfile
└── templates
└── basic_ui.html
├── snowflake.yml
Snowpark Container Services 서비스에 대한 이미지 빌드¶
이 섹션에서는 Docker 이미지를 빌드하고 이전 섹션에서 만든 이미지 리포지토리에 업로드합니다.
Docker 이미지를 빌드하고 이미지 리포지토리에 업로드하기¶
Docker 이미지를 빌드하고 이미지 리포지토리에 업로드하려면 다음 단계를 따르십시오.
터미널 창에서
na-spcs-tutorial/service
폴더로 변경합니다.다음 Docker CLI 명령을 실행합니다. 명령에 현재 작업 디렉터리(.)를 지정해야 합니다.
docker build --rm --platform linux/amd64 -t my_echo_service_image:tutorial .
이 명령은 다음을 수행합니다.
다운로드한 zip 파일에 포함된 Docker 파일을 사용하여 Docker 이미지를 빌드합니다.
이미지
my_echo_service_image
의 이름 지정이미지에
tutorial
태그를 적용합니다.
이전 섹션에서 생성한 이미지 리포지토리의 URL을 식별하려면 다음 명령을 실행합니다.
REPO_URL=$(snow spcs image-repository url tutorial_image_database.tutorial_image_schema.tutorial_image_repo -c tut-connection) echo $REPO_URL
이미지 리포지토리의 URL은
$REPO_URL
변수에 캡처된 다음 콘솔에 인쇄됩니다. 다음 단계에서 이 값을 사용합니다.이미지 URL이 포함된 이미지에 대한 태그를 생성하려면 다음 Docker CLI 명령을 실행합니다.
docker tag <image_name> <image_url>/<image_name>
이 명령에는 두 개의 매개 변수가 필요합니다.
<image_name>
이미지와 태그의 이름을 지정합니다.<image_url>/<image_name>
이미지가 업로드되는 이미지 리포지토리의 URL과 원격 리포지토리에 저장할 이미지 이름 및 태그를 지정합니다.
이 튜토리얼을 위해서는
$REPO_URL
및my_echo_service_image:tutorial
을 사용합니다.docker tag my_echo_service_image:tutorial $REPO_URL/my_echo_service_image:tutorial
Snowflake 레지스트리로 인증하려면 다음 Snowflake CLI 명령을 실행합니다.
snow spcs image-registry login -c tut-connection
이 명령은 Docker CLI가 Snowflake 계정의 이미지 리포지토리를 사용하는 데 필요한 자격 증명을 로드합니다. 기본값을 사용하지 않는 경우 연결 이름을 지정해야 합니다.
모든 작업이 성공하면
Login Succeeded
메시지가 표시됩니다.Docker 이미지를 이미지 리포지토리에 업로드하려면 다음
docker push
명령을 실행합니다.docker push $REPO_URL/<image_name>
이 명령은 이전 단계의
<image_name>
과 동일한 값을 사용합니다.docker push $REPO_URL/my_echo_service_image:tutorial
다음 명령을 실행하여 이미지가 성공적으로 업로드되었는지 확인합니다.
snow spcs image-repository list-images tutorial_image_database.tutorial_image_schema.tutorial_image_repo -c tut-connection
이 섹션에서는 echo 서비스가 포함된 Docker 이미지를 생성하고 자습서의 앞부분에서 생성한 tutorial_repository
이미지 리포지토리에 푸시했습니다.
다음 섹션에서는 이 이미지를 사용하는 애플리케이션 패키지를 만듭니다.
Snowflake Native App 개발¶
이전 섹션에서는 Snowflake CLI 를 사용하여 프로젝트 템플릿을 기반으로 프로젝트 파일을 만들었습니다. 이 템플릿은 앱에 요구되는 파일의 기본 버전을 만들었습니다.
이 섹션에서는 앱의 기본 파일을 업데이트합니다.
- 프로젝트 정의 파일
생성할 Snowflake 오브젝트에 대한 정보가 포함된 YAML 파일입니다. 이 파일의 이름은
snowflake.yml
이며 Snowflake CLI 가 애플리케이션 패키지와 오브젝트를 계정에 배포하는 데 사용됩니다.- 매니페스트 파일
애플리케이션에 대한 기본 구성 및 콜백 정보가 포함된 YAML 파일입니다. 이 파일의 이름은
manifest.yml
입니다.- 설정 스크립트
컨슈머가 자신의 계정에 애플리케이션을 설치할 때 자동으로 실행되는 SQL 스크립트입니다. 이 파일은 매니페스트에서 참조하는 한 원하는 대로 호출할 수 있습니다.
첫 번째 파일은 Snowflake CLI 에서 사용하며, 후자의 두 파일은 Snowflake Native App Framework 에서 필요합니다.
이 자습서 전체에서 이러한 파일과 그 내용에 대해 자세히 알아보겠습니다.
이 섹션에서는 앱을 보고 게시할 때 유용한 추가 정보 파일도 생성합니다.
기본 매니페스트 파일 수정하기¶
앱의 매니페스트 파일을 수정하려면 다음 단계를 따르십시오.
na-spcs-tutorial/app/manifest.yml
을 다음과 같이 수정합니다.manifest_version: 1 artifacts: setup_script: setup_script.sql readme: README.md container_services: images: - /tutorial_image_database/tutorial_image_schema/tutorial_image_repo/my_echo_service_image:tutorial privileges: - BIND SERVICE ENDPOINT: description: "A service that can respond to requests from public endpoints." - CREATE COMPUTE POOL: description: "Permission to create compute pools for running services"
이 예제에는 다음이 포함됩니다.
artifacts
속성은 컨테이너를 사용하는 앱에 필요한 리소스의 위치를 지정하며, 여기에는 이전 단계에서 생성한 Docker 이미지의 위치 및 Snowsight 에 표시되는 프로젝트 README 가 포함됩니다.privileges
속성을 사용하면 서비스가 공개 요청에 응답하고 자체 컴퓨팅 풀을 생성할 수 있습니다. 이러한 속성은 자습서의 다음 단계에서 서비스를 인스턴스화하는 데 필요합니다.
기본 설정 스크립트 수정하기¶
애플리케이션 패키지의 기본 설정 스크립트를 수정하려면 다음 단계를 따르십시오.
다음을 포함하도록
na-spcs-tutorial/app/setup_script.sql
파일을 수정합니다.CREATE APPLICATION ROLE IF NOT EXISTS app_user; CREATE SCHEMA IF NOT EXISTS core; GRANT USAGE ON SCHEMA core TO APPLICATION ROLE app_user; CREATE OR ALTER VERSIONED SCHEMA app_public; GRANT USAGE ON SCHEMA app_public TO APPLICATION ROLE app_user; CREATE OR REPLACE PROCEDURE app_public.start_app() RETURNS string LANGUAGE sql AS $$ BEGIN -- account-level compute pool object prefixed with app name to prevent clashes LET pool_name := (SELECT CURRENT_DATABASE()) || '_compute_pool'; CREATE COMPUTE POOL IF NOT EXISTS IDENTIFIER(:pool_name) MIN_NODES = 1 MAX_NODES = 1 INSTANCE_FAMILY = CPU_X64_XS AUTO_RESUME = true; CREATE SERVICE IF NOT EXISTS core.echo_service IN COMPUTE POOL identifier(:pool_name) FROM spec='service/echo_spec.yaml'; CREATE OR REPLACE FUNCTION core.my_echo_udf (TEXT VARCHAR) RETURNS varchar SERVICE=core.echo_service ENDPOINT=echoendpoint AS '/echo'; GRANT USAGE ON FUNCTION core.my_echo_udf (varchar) TO APPLICATION ROLE app_user; RETURN 'Service successfully created'; END; $$; GRANT USAGE ON PROCEDURE app_public.start_app() TO APPLICATION ROLE app_user; CREATE OR REPLACE PROCEDURE app_public.service_status() RETURNS TABLE () LANGUAGE SQL EXECUTE AS OWNER AS $$ BEGIN LET stmt VARCHAR := 'SHOW SERVICE CONTAINERS IN SERVICE core.echo_service; LET res RESULTSET := (EXECUTE IMMEDIATE :stmt); RETURN TABLE(res); END; $$; GRANT USAGE ON PROCEDURE app_public.service_status() TO APPLICATION ROLE app_user;
기본값 README 수정하기¶
앱의 README 파일을 수정하려면 다음 단계를 따르십시오.
na-spcs-tutorial/app/README.md
를 다음과 같이 수정합니다.Welcome to your first app with containers!
이 README 파일은 앱을 설치한 후 컨슈머에게 표시됩니다.
기본 프로젝트 정의 파일 수정하기¶
이 섹션에서는 Snowflake CLI 에서 사용하는 프로젝트 정의 파일을 수정합니다.
na-spcs-tutorial/snowflake.yml
을 다음과 같이 수정합니다.definition_version: 2 entities: na_spcs_tutorial_pkg: type: application package manifest: app/manifest.yml artifacts: - src: app/* dest: ./ - service/echo_spec.yaml meta: role: tutorial_role warehouse: tutorial_warehouse na_spcs_tutorial_app: type: application from: target: na_spcs_tutorial_pkg debug: false meta: role: tutorial_role warehouse: tutorial_warehouse
이 섹션에서는 Snowflake 계정에 배포할 수 있는 로컬 파일 구조를 Snowflake Native App with Snowpark Container Services 로 정의했습니다. 다음 섹션에서는 Snowflake CLI 를 사용하여 이 배포를 수행합니다.
앱 만들기 및 테스트¶
Snowflake Native App with Snowpark Container Services 에 대한 매니페스트 파일, 설정 스크립트 및 서비스 사양을 정의한 후 Snowflake CLI 를 사용하여 계정에 배포하여 앱을 테스트할 수 있습니다.
스테이지에 파일을 업로드하고 애플리케이션 오브젝트를 생성하기¶
개발 모드에서 앱을 만들려면 다음 단계를 따르십시오.
터미널에서
na-spcs-tutorial
폴더로 변경합니다.다음 명령을 실행하여 계정에 애플리케이션 패키지와 오브젝트를 생성합니다.
snow app run -c tut-connection
이 명령은 계정에서 이름이
na_spcs_tutorial_pkg
인 애플리케이션 패키지와 이름이na_spcs_tutorial_app
인 애플리케이션 오브젝트가 생성되었다는 확인을 표시합니다. 이 이름은 이전 섹션에서 수정한snowflake.yml
프로젝트 정의의 이름과 일치합니다.
콘솔에 URL 출력을 사용하여 애플리케이션을 볼 수 있습니다. 하지만 먼저 컨테이너 기반 서비스를 만드는 데 필요한 모든 권한이 있는지 확인해야 합니다.
권한 부여 및 앱 테스트¶
이 섹션에서는 앱에 필요한 권한을 부여하고 컨테이너에서 서비스를 호출하여 앱을 테스트합니다.
Snowsight 또는 Snowflake CLI 를 사용하여 SQL 명령을 실행할 수 있습니다.
권한을 부여하고 앱을 테스트하려면 Snowflake 워크시트에서 다음 단계를 수행합니다.
다음을 실행하여 앱에
CREATE COMPUTE POOL
권한을 부여합니다.GRANT CREATE COMPUTE POOL ON ACCOUNT TO APPLICATION na_spcs_tutorial_app; GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO APPLICATION na_spcs_tutorial_app;
setup_script.sql
파일에서 정의한app_public.start_app
프로시저를 실행합니다.CALL na_spcs_tutorial_app.app_public.start_app();
이 프로시저에서는 컴퓨팅 풀을 생성하고, 서비스를 인스턴스화하고, 서비스 함수를 생성합니다.
다음을 실행하여 함수가 생성되었는지 확인합니다.
SHOW FUNCTIONS LIKE '%my_echo_udf%' IN APPLICATION na_spcs_tutorial_app;
참고
Snowflake Native App 의 일부로 실행되기 때문에 컨슈머는 실행 중인 서비스를 볼 수 없습니다. 예를 들어,
SHOW SERVICES IN APPLICATION na_spcs_tutorial_app;
을 실행해도 값이 반환되지 않습니다.서비스가 생성되었고 정상인지 확인하려면 다음 명령을 실행합니다.
CALL na_spcs_tutorial_app.app_public.service_status();
이 문은 설정 스크립트에서 정의한
app_public.service_status
프로시저를 호출합니다. 프로시저는 이 서비스의 컨테이너에 대한 정보를 반환합니다.status
열의 값이READY
가 아닌 경우 서비스 컨테이너의 상태가READY
가 될 때까지 문을 다시 실행합니다.서비스 함수를 호출하여 서비스에 요청을 보내고 응답을 확인하려면 다음 명령을 실행합니다.
SELECT na_spcs_tutorial_app.core.my_echo_udf('hello');
이전 섹션에서 구성한 서비스에서 다음 메시지가 표시됩니다.
``Bob said hello``
자습서에서 생성된 앱과 오브젝트 분해¶
조심
이 자습서를 완료한 후 자습서 3: 컨테이너로 앱 업그레이드하기 을 수행할 계획이라면 이 섹션의 단계를 수행하지 마십시오. 이 자습서에서 만든 컨테이너가 있는 앱은 업그레이드 자습서를 위한 전제 조건입니다.
이 앱은 컴퓨팅 풀을 사용하기 때문에 계정에 크레딧이 누적되고 실행 비용이 발생합니다. 앱이 컴퓨팅 리소스를 소비하는 것을 중지하려면 애플리케이션 오브젝트와 애플리케이션이 생성한 계정 수준 오브젝트(예: 컴퓨팅 풀)를 모두 제거해야 합니다.
컴퓨팅 풀이 현재 실행 중인지 확인하려면 다음 명령을 실행합니다.
snow object list compute-pool -l "na_spcs_tutorial_app_%"
컴퓨팅 풀이 실행 중인 경우 애플리케이션 오브젝트에 의해 생성된
ACTIVE
컴퓨팅 풀이 있는 행이 표시됩니다.다음 Snowflake CLI 명령을 실행하여 앱을 삭제합니다.
snow app teardown --cascade --force -c tut-connection
이 명령은 앱에서 생성한 모든 Snowflake 오브젝트를 제거합니다.
--force
옵션이 없으면 이 명령은 버전이 포함되어 있으므로 애플리케이션 패키지를 삭제하지 않습니다.컴퓨팅 풀이 삭제되었는지 확인하려면 다음 명령을 다시 실행합니다.
snow object list compute-pool -l "na_spcs_tutorial_app_%"
이 명령은 컴퓨팅 풀이 성공적으로 삭제된 경우
no data
를 반환합니다.
참고
snow app teardown
명령은 애플리케이션 패키지와 애플리케이션 오브젝트를 모두 삭제합니다. 따라서 모든 상태 저장 데이터가 손실됩니다.
자세히 알아보기¶
축하합니다! 이제, 이 자습서를 완료했을 뿐만 아니라 Snowflake Native App with Snowpark Container Services 을 개발하고 수명 주기를 게시했습니다.
그 과정에서 다음 작업을 수행했습니다.
Snowsight 및 Snowflake CLI 를 사용하여 Snowflake Native App Framework 로 애플리케이션을 빌드했습니다.
Snowflake CLI 에서 사용되는 연결을 구성하는 방법에 대한 자세한 내용은 Snowflake CLI 구성하기 및 Snowflake에 연결하기 섹션을 참조하십시오.
Snowsight 에 대한 자세한 내용은 워크시트 시작하기 및 Snowsight에서 워크시트로 작업하기 섹션을 참조하십시오.
Snowflake CLI 의 Native Apps에 대한 자세한 내용은 Snowflake CLI 에서 Snowflake Native App 사용하기 섹션을 참조하십시오.
모든 애플리케이션에 필요한 매니페스트와 설정 스크립트를 만들었습니다.
자세한 내용은 애플리케이션 패키지의 매니페스트 파일 만들기 및 설정 스크립트 만들기 섹션을 참조하십시오.
애플리케이션 논리와 애플리케이션의 데이터 콘텐츠를 위한 컨테이너로 작동하는 애플리케이션 패키지를 만들었습니다.
자세한 내용은 애플리케이션 패키지 만들기 섹션을 참조하십시오.
Docker CLI 및 Snowflake CLI 를 사용하여 컨테이너를 빌드하고 Snowflake에 업로드했습니다.
Snowpark Container Services를 사용하여
COMPUTE POOL
을 생성하고 Snowflake Native App 내부에 컨테이너를 인스턴스화합니다.