Snowflake Native App インストールガイド
概要
このガイドでは、Snowflake Native Appをインストールする手順を説明します。 Snowflake Native Appにより、Snowflake環境内でAPC-CLIの機能をGUI操作で利用できます。
前提条件
Dockerがインストールされていること
Snowflakeアカウントへのアクセス権限があること
ACCOUNTADMIN権限を持つユーザーアカウントがあること
インストール手順
Note
ステップ1、2はSnowflakeのSQLワークシートで実行してください。 ステップ3以降はローカル環境のターミナルで実行してください。
1. デプロイ用ロールの作成(Snowflakeコンソール)
Important
このステップはACCOUNTADMIN権限を持ったユーザーが実行する必要があります。
1.1 デプロイ用ロールの作成
デプロイ用ロールを作成します。
CREATE ROLE autoprivacy_deploy_role;
1.2 ユーザーへのロール付与
作成したロールをユーザーに付与します。
GRANT ROLE autoprivacy_deploy_role TO USER <your_username>;
1.3 必要な権限の付与
Native Appのインストールに必要な権限を付与します。
GRANT CREATE INTEGRATION ON ACCOUNT TO ROLE autoprivacy_deploy_role;
GRANT CREATE WAREHOUSE ON ACCOUNT TO ROLE autoprivacy_deploy_role WITH GRANT OPTION;
GRANT CREATE DATABASE ON ACCOUNT TO ROLE autoprivacy_deploy_role;
GRANT CREATE APPLICATION PACKAGE ON ACCOUNT TO ROLE autoprivacy_deploy_role;
GRANT CREATE APPLICATION ON ACCOUNT TO ROLE autoprivacy_deploy_role;
GRANT CREATE COMPUTE POOL ON ACCOUNT TO ROLE autoprivacy_deploy_role WITH GRANT OPTION;
2. 必要なオブジェクトの作成(Snowflakeコンソール)
2.1 ロールの切り替え
デプロイ用ロールに切り替えます。
USE ROLE autoprivacy_deploy_role;
2.2 イメージリポジトリの作成
このNativeAppではSnowpark Container Serviceを使用しているため、Dockerイメージを格納するためのイメージリポジトリが必要です。
以下のコマンドでイメージリポジトリを作成します。
CREATE DATABASE autoprivacy_img_database;
CREATE SCHEMA img_schema;
CREATE IMAGE REPOSITORY img_repo;
3. Snowflake CLIの設定(ローカルターミナル)
Snowflake CLIは、Native AppのデプロイやDockerイメージの認証を行うために必要です。
Important
以降のステップはターミナルで実行してください。
3.1 Snowflake CLIのインストール
Snowflake CLIのインストール方法については、Snowflake公式ドキュメント を参照してください。
3.2 コネクションの作成
Snowflake CLIでコネクションを作成します。
snow connection add
以下の情報を入力してください:
コネクション名:
autoprivacy_snowflake_connection
role:
autoprivacy_deploy_role
database:
autoprivacy_img_database
schema:
img_schema
その他の値は、お使いのSnowflakeアカウントに応じて設定してください。
3.3 コネクションの確認
作成したコネクションが正常に動作するかテストします。
snow connection test -c autoprivacy_snowflake_connection
以下のような結果が表示されれば、成功です。
+----------------------------------------------------------------------------------+
| key | value |
|-----------------+----------------------------------------------------------------|
| Connection name | autoprivacy_snowflake_connection |
| Status | OK |
| Host | <USER_ACCOUNT>.snowflakecomputing.com |
| Account | <USER_ACCOUNT> |
| User | <USER_NAME> |
| Role | AUTOPRIVACY_DEPLOY_ROLE |
| Database | AUTOPRIVACY_IMG_DATABASE |
| Warehouse | <WAREHOUSE_NAME> |
+----------------------------------------------------------------------------------+
4. Dockerイメージの準備とアップロード(ローカルターミナル)
4.1 イメージリポジトリURLの取得
SnowflakeのイメージリポジトリのURLを取得します。
REPO_URL=$(snow spcs image-repository url autoprivacy_img_database.img_schema.img_repo -c autoprivacy_snowflake_connection)
echo $REPO_URL
4.2 APCイメージの取得
Note
利用可能なDockerイメージのバージョンは、GitHub Container Registry で確認し、適切なバージョンを指定してください。
docker pull ghcr.io/acompany-develop/dcr-docs-examples/apc_image:<version>
4.3 イメージのタグ付け
取得したイメージにSnowflakeリポジトリ用のタグを付けます。
docker tag ghcr.io/acompany-develop/dcr-docs-examples/apc_image:<version> $REPO_URL/apc_image:latest
4.4 Snowflakeレジストリへの認証
Snowflakeのコンテナレジストリにログインします。
snow spcs image-registry login -c autoprivacy_snowflake_connection
4.5 イメージのアップロード
DockerイメージをSnowflakeにアップロードします。
docker push $REPO_URL/apc_image:latest
5. Native Appソースコードの準備(ローカルターミナル)
ソースコードのダウンロード
こちら から適切なバージョンを選択し、Assetsから snowflake_native_app.zip
をダウンロードし、ローカルに展開してください。
6. プロジェクト定義ファイルの作成(ローカルターミナル)
以下の値を任意の値に設定した上で、snowflake_native_app
ディレクトリと同じ階層に snowflake.yml
として作成します:
<app_name>
: アプリケーション名<warehouse_name>
: 任意のwarehouse名をご指定ください
definition_version: 2
entities:
autoprivacy_native_app_pkg:
type: application package
manifest: snowflake_native_app/manifest.yml
artifacts:
- src: snowflake_native_app/*
dest: ./
meta:
role: autoprivacy_deploy_role
warehouse: <warehouse_name>
<app_name>:
type: application
from:
target: autoprivacy_native_app_pkg
debug: false
meta:
role: autoprivacy_deploy_role
warehouse: <warehouse_name>
ディレクトリ構成
作成後は以下のようなディレクトリ構成になります:
.
├── snowflake.yml
└── snowflake_native_app
├── manifest.yml
├── readme.md
├── setup.sql
└── streamlit
├── environment.yml
└── streamlit_app.py
7. デプロイとインストール(ローカルターミナル)
7.1 アプリケーションのデプロイ
以下のコマンドでアプリケーションをデプロイします:
snow app run -c autoprivacy_snowflake_connection
7.2 インストール完了
デプロイが完了すると、<app_name>
で指定した名前でアプリケーションがインストールされます。
Tip
プロジェクト定義ファイルのapp_nameを変更して、再度デプロイすることで、別の名前で同じアプリケーションを複数インストールすることができます。