テンプレートからプロジェクトをブートストラップする¶
プロジェクトのインスタンス化を容易にするために、 Snowflake CLI はプロジェクトのテンプレート化を実装しています。独自のプロジェクトテンプレートを作成する ことも、Snowflake が Snowflake CLI templates 公開 Git リポジトリで提供しているサンプルを使用することもできます。
snow init コマンドは、プロジェクト・ディレクトリを作成し、指定されたテンプレートで定義されたファイル構造をその中に入れます。
--no-interactiveオプションを指定しない場合、-D(または--variable)オプションで指定しないテンプレート(template.yml)で指定された各変数について、コマンドのプロンプトが表示されます。--no-interactiveオプションを指定した場合、コマンドは(テンプレートで定義された)変数のデフォルト値を使用します。テンプレートが変数のデフォルト値を定義しておらず、-Dオプションを使用してデフォルト値を指定しなかった場合、コマンドはエラーで終了します。
snow init コマンドは次の構文を使用します。
条件:
PATHは、コマンドがプロジェクトを初期化する新しいディレクトリです。既存のディレクトリを指定すると、コマンドはエラーで終了します。[--template-source SOURCE]は以下のいずれかです。テンプレート・ディレクトリのローカル・ファイル・パス。
プロジェクトテンプレートを含むディレクトリへの有効なGit URL。指定しない場合、コマンドのデフォルトは Snowflake CLI templates Git リポジトリになります。
[--template NAME]は、テンプレートとして使用するSOURCEのサブディレクトリを指定します(リモート・ソースに便利です)。提供されない場合、SOURCEは1つのテンプレートとして扱われます。[-D key1=value1 -D key2=value2...]は1つ以上の名前と値のペアのリストで、(template.yml内の)テンプレートで定義された変数の値を提供します。このオプションで指定した変数に対して、コマンドはプロンプトを表示しません。[--no-interactive]はユーザー入力のプロンプトを無効にします。このオプションを使用する場合、[-D key1=value1 -D key2=value2...]オプションで必要な値をすべて指定する必要があります。そうでない場合、コマンドはエラーとなります。
詳細については、 snow init コマンドリファレンスをご参照ください。
例¶
デフォルトリポジトリの
example_snowparkテンプレートからプロジェクトを初期化します。以下のためのコマンドプロンプトが表示されます(角括弧内はデフォルト値)。
ローカル・テンプレートからプロジェクトを初期化します。
この例では、
query_warehouseとstage変数が-Dオプションで指定されているので、コマンドは以下のプロンプトだけを表示します。
カスタムフィルターの作成¶
テンプレートレイアウト¶
プロジェクトテンプレートには、 snow init コマンドがテンプレートをどのようにレンダリングするかを説明するデータを含む template.yml ファイルが必要です。ファイルがテンプレートのルートディレクトリに存在しない場合、 snow init はエラーで終了します。詳細については、 template.yml syntax をご参照ください。
テンプレート構文¶
テンプレート変数と式は <! ... !> で囲む必要があります。Snowflake CLI は、例えば基本的なjinja2式とフィルターもサポートしています。
Snowflake CLI プロジェクトテンプレートは以下の予約変数とフィルターもサポートしています。
project_dir_name変数は、作成されたプロジェクトのルートディレクトリに自動的に解決されます。例えば、
snowflake.ymlファイルに次のものが含まれているとします。次に以下のコマンドを実行して、カスタム・テンプレートからプロジェクトを初期化します。
snow initコマンドは、snowflake.ymlファイルを以下のようにレンダリングします。to_snowflake_identifierフィルターは、ユーザーから提供された文字列を正しくフォーマットされたSnowflake識別子にフォーマットします。Snowflakeでは、変数がSnowflakeオブジェクトを参照する場合にこのフィルターを使用することを強く推奨しています。
例えば、
snowflake.ymlファイルに次のものが含まれているとします。次に以下のコマンドを実行して、カスタム・テンプレートからプロジェクトを初期化します。
snow initコマンドは、snowflake.ymlファイルを以下のようにレンダリングします。文字列を有効なSnowflake識別子に変換できない場合、
snow initコマンドはエラーで終了します。
template.yml プロジェクト・テンプレート・ファイルについて¶
template.yml プロジェクト・テンプレート・ファイルには、プロジェクトのレンダリングに必要なすべてのデータが格納されています。例:
次の表は、 template.yml プロジェクト・テンプレート・ファイルのプロパティの一覧です。
プロパティ |
定義 |
|---|---|
オプション、 文字列 (デフォルト:None) |
最小 Snowflake CLI バージョン。指定された場合、 |
オプション、 文字列リスト (デフォルト: |
注釈 このリストに含まれていないテンプレートファイルは新しいプロジェクトに追加されますが、その内容は変更されません。 |
オプション、 変数リスト (デフォルト: |
テンプレート変数のリスト。プロンプトのカスタマイズ、オプション変数のデフォルト値の提供、基本的な型チェックをサポートしています。詳細については、以下の 変数プロパティ・パラメータ の表をご参照ください。変数の値は、このリストから順番に決定されます。 このリストから |
以下の表に、変数プロパティのパラメーターを示します。
プロパティ |
定義 |
|---|---|
required, string |
変数の名前。これは、 |
optional, string |
値を取得するためにユーザーに表示するプロンプト。このパラメータを設定しないと、コマンドはパラメータ名をプロンプト・テキストとして表示します。 プロンプトを次のように定義します。
|
オプション、 string/int/float |
Default value of the variable. If not provided, the variable is treated as required, so a user needs to provide the value after a prompt or by specifying it with the 以下の例では、2つの変数をデフォルト値で定義しています。 実行すると、 この例では、 |
optional, string |
変数のデータ型。有効な値には、 以下の例では、 実行時、snow initコマンドは、ユーザーが間違ったデータ型の値を入力した場合、以下のエラーを表示します。 |