sbtを使用したScalaハンドラーコードのパッケージ化¶
Scalaビルドツール(sbt)を使用して、コードをアセンブリ JAR として構築およびパッケージ化できます。 sbt-assemblyプラグイン を使用して、すべての依存関係を含む JAR ファイルを作成できます。
JAR ファイルを作成したら、そのファイルをSnowflakeステージにアップロードして、関数またはプロシージャの作成に使用する CREATE FUNCTION または CREATE PROCEDURE ステートメント内の IMPORTS パラメーターでそのファイルを参照できます。JAR ファイルのアップロードの詳細については、 コードで依存関係を利用できるようにする方法 をご参照ください。コードをインラインに配置するかステージ上に配置するかの選択の詳細については、 ハンドラーコードのインラインまたはステージ上での保持 をご参照ください。
ハンドラーコードを含むアセンブリ JAR ファイルを作成するには、次のステップを実行します。
build.sbtファイルを含むディレクトリで、project/サブディレクトリにplugins.sbtという名前のファイルを作成します。たとえば、
build.sbtファイルを含むディレクトリがhello-snowpark/の場合は、ファイルhello-snowpark/project/plugins.sbtを作成します。hello-snowpark/ |-- build.sbt |-- project/ |-- plugins.sbtplugins.sbtファイルに、次の行を追加します。addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.1.0")
これにより、 sbt-assemblyプラグイン がプロジェクトに追加されます。
プロジェクトで同じライブラリの複数のバージョンが必要な場合(例: プロジェクトが、異なるバージョンの3番目のライブラリを必要とする、2つのライブラリに依存している場合)、依存関係を解決するために
build.sbtファイルでマージ戦略を定義します。詳細については、 マージ戦略 をご参照ください。プロジェクトでSnowparkライブラリが必要な場合は、以下に示すように、
build.sbtファイル内でlibraryDependenciesを使用してそれを参照します。必ず、少なくとも 必要な最小バージョン を使用してください。SnowparkライブラリはSnowflakeに含まれているため、依存関係が
"provided"であることを指定して、 JAR ファイルから除外します。libraryDependencies += "com.snowflake" % "snowpark" % "1.1.0" % "provided"
プロジェクトのディレクトリ(例:
hello-snowpark)に移動し、次のコマンドを実行します。sbt assembly注釈
エラー
Not a valid command: assembly、Not a valid project ID: assembly、またはNot a valid key: assemblyが発生した場合は、plugins.sbtファイルがproject/という名前のサブディレクトリにあることを確認してください(ステップ1で説明のとおり)。このコマンドは、次の場所に JAR ファイルを作成します。
target/scala-<version>/<project-name>-assembly-1.0.jar