Code-Bundle-Spezifikation¶
Diese Spezifikation definiert ein Bundle von einer oder mehreren Codefunktionen oder Prozeduren, die von einer Vorlage aufgerufen werden können.
Eine Code-Bundle-Spezifikation kann maximal 5 Funktionen und Prozeduren enthalten.
Beispiele für verschiedene Arten von Code-Bundles finden Sie unter Beispielspezifikationen.
Für Bezeichner in der Code-Bundle-Spezifikation gelten die folgenden allgemeinen Anforderungen:
Namen: Müssen gültige Snowflake-Bezeichner sein, die mit einem Buchstaben beginnen und nur alphanumerische Zeichen und Unterstriche enthalten.
Bezeichner in Anführungszeichen: Bezeichner in doppelten Anführungszeichen werden für Namen mit Sonderzeichen unterstützt.
Unterscheidung nach Groß-/Kleinschreibung: Bei Bezeichnern ohne Anführungszeichen ist die Groß- und Kleinschreibung nicht relevant. Bei Bezeichnern in Anführungszeichen wird die Groß-/Kleinschreibung beibehalten.
api_versionDie verwendete Version der Collaboration API. Sie müssen
2.0.0sein.spec_typeBezeichner des Spezifikationstyps. Sie müssen
code_specsein.name: identifierEin eindeutiger Name für diese Code-Bundle-Spezifikation innerhalb dieser Registry. Muss ein gültiger Snowflake-Bezeichner mit maximal 75 Zeichen sein. Dies wird als Nachnamesegment verwendet, wenn Sie die Funktion in einer Vorlage aufrufen:
cleanroom.code_spec_name$function_nameversion: version_idKundenspezifischer Versionsbezeichner. Muss alphanumerisch mit Unterstrichen sein;maximal 20 Zeichen.
description: description_text(Optional)Eine Beschreibung der Code-Bundle-Spezifikation (maximal 1.000 Zeichen).
artifacts(Optional)Eine Liste der Stagingdateien oder -pakete, die von Ihren Funktionen oder Prozeduren importiert werden können, und optional über Handler-Funktionen verfügbar sind. Maximal 5 pro Spezifikation.
alias: identifierEin Alias zum Referenzieren dieses Artefakts in Importen. Wenn Sie innerhalb dieser Spezifikation auf diesen Alias verweisen, verwenden Sie den reinen Aliasnamen und nicht
cleanroom.spec_name$alias; verwenden Sie also den reinen Funktionsnamen, um auf eine andere Funktion in dieser Spezifikation zu verweisen.stage_path: stage_pathVollständiger Stagingbereichspfad zur Artefaktdatei. Beispiel:
@DB.SCHEMA.STAGE/path/file.whl.
Der Stagingbereich muss ein interner Stagingbereich sein. Externe Stagingbereiche werden nicht unterstützt.
Für den Stagingbereich muss DIRECTORY aktiviert sein: Für den Stagingbereich, der Artefakte enthält, muss
DIRECTORY = TRUEfestgelegt sein.Format des Stagingbereichspfads: Muss dem Format
@[DB.]SCHEMA.STAGE/path/to/file.extfolgen.Kein Durchlaufpfad: Stagingbereichspfade dürfen nicht
..oder\enthalten.Dieses Artefakt muss vorhanden sein: Die Datei muss im angegebenen Stagingbereichspfad vorhanden sein, wenn das Code-Bundle registriert wird.
Für den Stagingbereich muss die serverseitigeSNOWFLAKE_SSE-Verschlüsselung aktiviert sein. Legen Sie beim Erstellen oder Ändern des Stagingbereichs
ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')fest.Wenn Sie eine Staging-Codedatei verschieben, löschen oder aktualisieren, müssen Sie
ALTER STAGE stage name REFRESHaufrufen, um sicherzustellen, dass die Zusammenarbeit über die neuesten Informationen aus dem Stagingbereich verfügt. Code-Aktualisierungen werden nur unterstützt, bevor Sie die Code-Spezifikation registrieren, da an diesem Punkt die Version zugewiesen und die Hash-Prüfsumme berechnet wird.
description: description_text(Optional)Eine Beschreibung des Artefakts (maximal 500 Zeichen).
content_hash: sha256_hash(Optional)SHA-256 Hash in Kleinbuchstaben für die Integritätsprüfung (64 Hexadezimalzeichen).
functions(Erforderlich, wenn keine Prozeduren definiert sind)Eine Liste von UDF- oder UDTF-Definitionen.
name: identifierDer Funktionsname, der in der aufrufenden Vorlage angezeigt werden soll. Muss ein gültiger Snowflake-Bezeichner sein.
typeDer Funktionstyp. Eine der folgenden Optionen:
UDFoderUDTF.languageDie Programmiersprache der Funktion. Derzeit wird nur
PYTHONunterstützt.runtime_version: python_version(Optional)Die zu verwendende Python-Laufzeitversion. Unterstützte Versionen:
3.10bis3.14.handler: handlerDer Name der Handler-Funktion im Funktionscode, die aufgerufen werden soll, wenn
namelautet.arguments(Optional)Funktionsargumente als Liste von Name-Typ-Paaren. Die Typen müssen gültige Snowflake-SQL-Typen sein.
returns: sql_typeDer Rückgabetyp. Verwenden Sie für UDFs einen SQL-Typ wie STRING oder FLOAT. Für UDTFs verwenden Sie
TABLE(column_definitions):packages(Optional)Eine Liste der von diesem Code verwendeten Pakete. Dabei kann es sich um eines dieser Anaconda Python-Pakete oder dieser Snowpark API-Pakete handeln. Beispiel:
snowflake-snowpark-python,numpy.imports(Optional)Eine Liste der zu importierenden Artefakte. Dies müssen Aliasse aus der Artefaktliste in dieser Spezifikation sein.
code_body(Optional)Inline-Python-Code. Gegenseitig ausschließend mit Stagingimporten. Die maximale Größe beträgt 12 MB.
description: description_text(Optional)Eine Beschreibung der Funktion (maximal 500 Zeichen).
procedures(Erforderlich, wenn keine Funktionen definiert sind)Eine Liste der Definitionen der gespeicherten Prozeduren. Felder sind ähnlich wie bei
functions, außer dass es keintype-Feld gibt.