Common Setup for Snowpark Container Services Tutorials¶
This topic provides instructions for the common setup required for all Snowpark Container Services tutorials provided in this documentation.
Review the following prerequisites to ensure you can complete the tutorials:
A Snowflake account: Note that trial accounts are not supported.
SnowSQL, the command-line client for executing SQL commands (optional): You can use any Snowflake client that supports executing SQL commands and uploading files to a Snowflake stage. The tutorials are tested using the SnowSQL and the Snowsight web interface. For instructions to install this command-line client, see Installing SnowSQL.
Docker Desktop: These tutorials provide instructions for using Docker Desktop. For installation instructions, see https://docs.docker.com/get-docker/. Note that you can use any OCI-compliant clients to create images, such as Docker, Podman, or Nerdctl.
Create Snowflake objects¶
Execute the SQL provided using either the SnowSQL or the Snowsight.
Login to Snowflake as a user a user with the ACCOUNTADMIN role.
Using the ACCOUNTADMIN role, execute the following script, replacing
user_namewith the name of your Snowflake user who will test the tutorials. For these tutorials, you might choose the same user who executes this script or another user in your Snowflake account. The script does the following:
Creates a role (
test_role) and other Snowflake objects. To create the role and objects, you must use the ACCOUNTADMIN role. (This restriction helps to control costs and manage business information risks.) The script also grants the
test_rolerole the privileges needed to manage the newly created objects.
Grants the role to the specified Snowflake user, who then uses the role to explore the tutorials.
USE ROLE ACCOUNTADMIN; CREATE ROLE test_role; CREATE DATABASE IF NOT EXISTS tutorial_db; GRANT OWNERSHIP ON DATABASE tutorial_db TO ROLE test_role COPY CURRENT GRANTS; CREATE OR REPLACE WAREHOUSE tutorial_warehouse WITH WAREHOUSE_SIZE='X-SMALL'; GRANT USAGE ON WAREHOUSE tutorial_warehouse TO ROLE test_role; CREATE SECURITY INTEGRATION IF NOT EXISTS snowservices_ingress_oauth TYPE=oauth OAUTH_CLIENT=snowservices_ingress ENABLED=true; GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO ROLE test_role; CREATE COMPUTE POOL tutorial_compute_pool MIN_NODES = 1 MAX_NODES = 1 INSTANCE_FAMILY = CPU_X64_XS; GRANT USAGE, MONITOR ON COMPUTE POOL tutorial_compute_pool TO ROLE test_role; GRANT ROLE test_role TO USER <user_name>
You create a warehouse because the services and jobs can run SQL DML statements (such as SELECT and INSERT). Snowflake executes these statements in the warehouse.
In tutorial 1, you create a service that exposes an endpoint as public to allow users to access the service from the public web (ingress). To create this service:
test_rolemust have the BIND SERVICE ENDPOINT privilege on the account.
The current implementation requires a security integration, which the script creates.
A compute pool is a collection of one or more virtual machine (VM) nodes on which Snowflake runs your jobs and services.
Make sure you are logged in to Snowflake as the user specified in the preceding script.
test_rolerole, execute the following script to create database-scoped objects common to all the tutorials.
USE ROLE test_role; USE DATABASE tutorial_db; USE WAREHOUSE tutorial_warehouse; CREATE SCHEMA IF NOT EXISTS data_schema; CREATE IMAGE REPOSITORY IF NOT EXISTS tutorial_repository; CREATE STAGE IF NOT EXISTS tutorial_stage DIRECTORY = ( ENABLE = true );
You create an image repository to store your service code (container images).
You create a Snowflake stage to store your service specification files in tutorial 2 and 3.
Verify that you are ready to continue¶
To verify that you have the objects needed for the tutorials, execute the following commands:
SHOW COMPUTE POOLS; --or DESCRIBE COMPUTE POOL tutorial_compute_pool;
SHOW IMAGE REPOSITORIES;
To verify that you have your account information (organization and account names), use one of the following methods:
Find the information on the Snowsight web interface, in the lower left corner of the Home page.
In the SnowSQL CLI, execute SHOW IMAGE REPOSITORIES. The command returns the repository URL, including the organization and account names.
You can now explore Tutorial 1.