アプリを開発するために Snowflake CLI を設定する

このトピックでは、プロバイダーが Snowflake Native Apps の開発および管理のために Snowflake CLI をインストールして使用する方法を説明します。 Snowflake CLI は、 SQL 操作に加えて、開発者中心のワークロード向けに明示的に設計されたオープンソースのコマンドラインツールです。

Snowflake CLI のインストールと構成

Snowflake CLI をインストールして構成するには、次のステップに従います。

  1. オペレーティングシステムの Snowflake CLI をインストールします。

    詳細については、 Snowflake CLI のインストール をご参照ください。

  2. Snowflakeアカウントへの接続を設定します。

    詳細については、 Snowflake CLI の構成 をご参照ください。

Snowflake CLI プロジェクトとアプリのテンプレートについて

Snowflake CLI を使用して Snowflake Native App を開発する場合、プロジェクト内で作業します。プロジェクトは、 Snowflake Native App に必要なすべてのファイルとディレクトリを含むディレクトリです。他のコードリポジトリと同様に、これらのファイルはgitなどのテクノロジーを使用してバージョン管理でき、Githubなどのプラットフォームで共有できます。

Snowflakeには、プロジェクトを設定するために使用できるアプリテンプレートが用意されています。これらのテンプレートは snowflake-cli-templates GitHub リポジトリ で入手できます。

利用可能なテンプレートは次のとおりです。

テンプレート

説明

app_basic

アプリに必要な必須ファイルとディレクトリを含む基本的なテンプレート。

app_streamlit_java

アプリに必要な必須ファイルとディレクトリ、Java拡張コード、Streamlitアプリのサンプルを含むテンプレート。

app_streamlit_js

アプリに必要な必須ファイルとディレクトリ、 JavaScript 拡張コード、Streamlitアプリのサンプルを含むテンプレート。

app_streamlit_python

アプリに必要な必須ファイルとディレクトリ、Python拡張コード、Streamlitアプリのサンプルを含むテンプレート。

Snowflake Native App の新しいプロジェクトを設定する

Snowflake Native App の新しいプロジェクトを設定するには、次のステップに従います。

  1. init コマンドを実行して新しいプロジェクトを作成します。

    snow init --template <template_name> <project_name>
    
    Copy
  2. プロジェクト識別子の値を入力してください。

    この値は、アプリケーションパッケージなど Snowflake CLI が作成するアプリコンポーネントのベース名として使用されます。この値は、後でプロジェクト定義ファイルで変更または上書きできます。

このコマンドを実行すると、コマンドを実行したディレクトリに <project_name> という名前の新しいディレクトリが作成されます。このディレクトリには、 Snowflake Native App に必要なファイルとディレクトリが含まれ、次のようなディレクトリ構造を持ちます。

<project_name>/
├── app/
 ├── manifest.yml
 ├── README.md
 ├── setup_script.sql
├── README.md
├── snowflake.yml
Copy

このディレクトリ内のフォルダーとファイルについて、次の表で説明します。

ファイル/ディレクトリ

説明

app/

このディレクトリにはアプリのアプリケーションコードとリソースが含まれています。必要に応じて、このディレクトリにあるファイルを変更または追加できます。

app/manifest.yml

このファイルは、アプリ名、バージョン、説明、リソースなど、アプリのメタデータと構成を定義します。詳細については、 アプリのマニフェストファイルの作成 をご参照ください。

app/README.md

このファイルは、アプリの概要と使用手順を提供します。これは、Snowflake Marketplaceに表示される README ファイルです。

app/setup_script.sql

この SQL スクリプトは、アプリのインストール時に実行されます。このスクリプトを変更して、アプリに必要なセットアップ手順を含めることができます。詳細については、 Create the setup script をご参照ください

README.md

このファイルは、プロジェクトの概要とアプリで Snowflake CLI を使用するための手順を提供します。

snowflake.yml

これは、Snowflakeにデプロイ可能なオブジェクトを記述するプロジェクト定義ファイルです。アプリの一部であるリソースを定義するには、このファイルを変更する必要があります。

プロジェクト定義ファイルを作成する

Snowflake CLI は、プロジェクト定義ファイルを使用して、Snowflakeにデプロイ可能なオブジェクトを記述します。このファイルの名前は snowflake.yml にする必要があります。このファイルはアプリケーションパッケージの名前を決定し、 Snowflake Native App の一部であるリソースを指定します。

プロジェクト定義ファイルの詳細については、 プロジェクト定義ファイル をご参照ください。

以下は、 Snowflake Native App に使用される単純な snowflake.yml ファイルの例です。

definition_version: 2
entities:
  hello_snowflake_package:
    type: application package
    stage: stage_content.hello_snowflake_stage
    manifest: app/manifest.yml
    identifier: hello_snowflake_package
    artifacts:
       - src: app/*
         dest: ./
  hello_snowflake_app:
    type: application
    from:
       target: hello_snowflake_package
    debug: false
Copy

次の表では、この例のフィールドについて説明します。

フィールド

説明

definition_version

プロジェクト定義ファイル形式のバージョン。現在のバージョンは2です。

entities

プロジェクトの一部であるエンティティのリスト。各エンティティは一意の識別子とタイプを持ちます。

hello_snowflake_package

アプリケーションパッケージエンティティの識別子。この名前は、アプリケーションパッケージなど Snowflake CLI が作成するアプリコンポーネントのベース名として使用されます。

type

エンティティの型。この場合、 application package です。

stage

アプリケーションパッケージが格納されているステージ。

manifest

アプリのメタデータと構成を定義するマニフェストファイルへのパス。

identifier

アプリケーションパッケージエンティティの識別子。この名前は、アプリケーションパッケージなど Snowflake CLI が作成するアプリコンポーネントのベース名として使用されます。

artifacts

アプリケーションパッケージに含まれるファイルとディレクトリのリスト。各アーティファクトはソース( src )および宛先( dest )を持ちます。

hello_snowflake_app

アプリケーションエンティティの識別子。

from

アプリケーションのソースを指定します。この場合、 hello_snowflake_package アプリケーションパッケージから作成されます。

debug

アプリのデバッグモードが有効になっているかどうかを示すブール値。

Snowflake Native App を開発する

プロジェクトを設定し、プロジェクト定義ファイルを作成したら、 アプリケーションパッケージを作成し、マニフェストファイルとセットアップスクリプトを変更して、 Snowflake Native App の開発を開始できます。

詳細については、次のトピックをご参照ください。