Packen von Scala-Handler-Code mit sbt¶
Sie können das Scala-Build-Tool (sbt) verwenden, um Build- und Paketerstellung Ihres Codes als eine Assembly-JAR-Datei vorzunehmen. Sie können das sbt-assembly-Plugin verwenden, um eine JAR-Datei erstellen, die alle Abhängigkeiten enthält.
Sobald die JAR-Datei erstellt ist, können Sie die Datei in einen Snowflake-Stagingbereich hochladen und dann im IMPORTS-Parameter der CREATE FUNCTION- oder CREATE PROCEDURE-Anweisung referenzieren, die Sie zum Erstellen der Funktion oder Prozedur verwenden. Weitere Informationen zum Hochladen von JAR-Dateien finden Sie unter Abhängigkeiten für Code zur Verfügung stellen. Weitere Informationen zur Entscheidung, ob der Code inline oder in einem Stagingbereich aufbewahrt werden soll, finden Sie unter Speichern von Handler-Code inline oder in einem Stagingbereich.
Gehen Sie wie folgt vor, um eine Assembly-JAR-Datei zu erstellen, die Ihren Handler-Code enthält.
Erstellen Sie im Unterverzeichnis
project/
des Verzeichnisses, in dem sich Ihrebuild.sbt
-Datei befindet, eine Datei namensplugins.sbt
.Wenn das Verzeichnis, in dem sich Ihre
build.sbt
-Datei befindet, zum Beispielhello-snowpark/
ist, erstellen Sie die Dateihello-snowpark/project/plugins.sbt
:hello-snowpark/ |-- build.sbt |-- project/ |-- plugins.sbt
Fügen Sie der
plugins.sbt
-Datei die folgende Zeile hinzu:addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.1.0")
Damit wird das sbt-assembly-Plugin zu Ihrem Projekt hinzugefügt.
Wenn Ihr Projekt mehrere Versionen der gleichen Bibliothek benötigt (z. B. wenn Ihr Projekt von zwei Bibliotheken abhängt, die unterschiedliche Versionen einer dritten Bibliothek benötigen), definieren Sie in Ihrer
build.sbt
-Datei eine Zusammenführungsstrategie, um die Abhängigkeiten aufzulösen. Weitere Informationen dazu finden Sie unter Zusammenführungsstrategie.Wenn Ihr Projekt die Snowpark-Bibliothek benötigt, referenzieren Sie diese in Ihrer
build.sbt
-Datei mitlibraryDependencies
, wie unten gezeigt. Achten Sie darauf, dass Sie mindestens die erforderliche Mindestversion verwenden.Da die Snowpark-Bibliothek in Snowflake enthalten ist, müssen Sie diese aus der JAR-Datei ausschließen: Geben Sie an, dass die Abhängigkeit
"provided"
ist.libraryDependencies += "com.snowflake" % "snowpark" % "1.1.0" % "provided"
Wechseln Sie in das Verzeichnis Ihres Projekts (z. B.
hello-snowpark
), und führen Sie den folgenden Befehl aus:sbt assembly
Bemerkung
Wenn der Fehler
Not a valid command: assembly
,Not a valid project ID: assembly
oderNot a valid key: assembly
auftritt, vergewissern Sie sich, dass sich die Dateiplugins.sbt
in dem Unterverzeichnis mit dem Namenproject/
befindet (wie in Schritt 1 erwähnt).Mit diesem Befehl wird am folgenden Speicherort eine JAR-Datei erstellt:
target/scala-<version>/<project-name>-assembly-1.0.jar