Spécification du bundle de code¶
Cette spécification définit un bundle d’une ou plusieurs fonctions ou procédures de code qui peuvent être appelées par un modèle.
Une spécification de bundle de code peut contenir un maximum combiné de 5 fonctions et procédures.
Pour des exemples de différents types de bundles de code, consultez Exemples de spécifications.
Les identificateurs de la spécification du bundle de code présentent les exigences générales suivantes :
Noms : Doivent être des identificateurs Snowflake valides qui commencent par une lettre et ne contiennent que des caractères alphanumériques et des traits de soulignement.
Identificateurs avec guillemets : Les identificateurs entre guillemets doubles sont pris en charge pour les noms contenant des caractères spéciaux.
Sensibilité à la casse : Les identificateurs sans guillemets sont insensibles à la casse ; les identificateurs entre guillemets préservent la casse.
api_versionVersion de l’API de collaboration utilisée. Doit être
2.0.0.spec_typeIdentificateur du type de spécification. Doit être
code_spec.name: identifierUn nom unique pour cette spécification de bundle de code dans ce registre. Doit être un identificateur Snowflake valide avec un maximum de 75 caractères. Il est utilisé comme segment de nom de famille lors de l’appel de la fonction dans un modèle :
cleanroom.code_spec_name$function_nameversion: version_idIdentificateur de version personnalisée. Doit être alphanumérique avec des traits de soulignement, 20 caractères au maximum.
description: description_text(Facultatif)Une description de la spécification du bundle de code (1 000 caractères maximum).
artifacts(Facultatif)Une liste des fichiers ou des paquets en zone de préparation qui peuvent être importés par vos fonctions ou procédures, et :ref:` éventuellement exposés via des fonctions de gestionnaire <label-dcr_collab_code_bundles_staged_artifacts>`. Maximum de 5 par spécification.
alias: identifierUn alias pour référencer cet artefact dans les importations. Lorsque vous faites référence à cet alias dans cette spécification, utilisez le nom d’alias brut plutôt que
cleanroom.spec_name$alias; autrement dit, utilisez le nom de la fonction vide pour référencer une autre fonction dans cette spécification.stage_path: stage_pathChemin complet de la zone de préparation vers le fichier d’artefact. Par exemple,
@DB.SCHEMA.STAGE/path/file.whl.
La zone de préparation doit être interne. Les zones de préparation externes ne sont pas prises en charge.
La zone de préparation doit avoir DIRECTORY activé : La zone de préparation contenant les artefacts doit avoir
DIRECTORY = TRUEdéfini.Format du chemin de la zone de préparation : Doit suivre le format
@[DB.]SCHEMA.STAGE/path/to/file.ext.Pas de déplacement de chemin : Les chemins de zone de préparation ne peuvent pas contenir
..ou\.Cet artefact doit exister : Le fichier doit exister au niveau du chemin de la zone de préparation spécifié lors de l’enregistrement du bundle de code.
La zone de préparation doit avoir le chiffrement coté serveur SNOWFLAKE_SSE activé. Lors de la création ou de la modification de la zone de préparation, définissez
ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE').Si vous poussez, supprimez ou mettez à jour un fichier de code en zone de préparation, vous devez appeler
ALTER STAGE stage name REFRESHpour vous assurer que la collaboration dispose des informations les plus récentes sur la zone de préparation. Les mises à jour du code ne sont prises en charge qu’avant l’enregistrement de la spécification de code, car c’est à ce moment-là que la version est attribuée et que la somme de contrôle de hachage est calculée.
description: description_text(Facultatif)Une description de l’artefact (500 caractères maximum).
content_hash: sha256_hash(Facultatif)Hachage SHA-256 en minuscules pour la vérification de l’intégrité (64 caractères hexadécimaux).
functions(Nécessaire si aucune procédure n’est définie)Une liste de définitions UDF ou UDTF.
name: identifierLe nom de la fonction à exposer au modèle appelant. Doit être un identificateur Snowflake valide.
typeLe type de fonction. L’un des rôles suivants :
UDFouUDTF.languageLa langue de la fonction. Actuellement, seulement
PYTHONest pris en charge.runtime_version: python_version(Facultatif)Version de l’environnement d’exécution Python à utiliser. Versions prises en charge :
3.10à3.14.handler: handlerLe nom de la fonction de gestionnaire dans le code de la fonction à appeler lorsque
nameest appelé.arguments(Facultatif)Arguments de fonction sous forme de liste de paires nom-type. Les types doivent être des types SQL Snowflake valides.
returns: sql_typeLe type de retour. Pour les UDFs, utilisez un type SQL tel que STRING ou FLOAT. Pour UDTFs, utilisez
TABLE(column_definitions).packages(Facultatif)Une liste des paquets utilisés par ce code. Il peut s’agir de n’importe lesquels de ces paquets Anaconda Python ou de ces paquets API Snowpark. Par exemple :
snowflake-snowpark-python,numpy.imports(Facultatif)Une liste d’artefacts à importer. Il doit s’agir d’alias de la liste des artefacts de cette spécification.
code_body(Facultatif)Code Python en ligne. Mutuellement exclusifs avec les importations en zone de préparation. La taille maximale est de 12 MB.
description: description_text(Facultatif)Une description de la fonction (500 caractères maximum).
procedures(Nécessaire si aucune fonction n’est définie)Une liste de définitions de procédures stockées. Les champs sont similaires à
functions, sauf qu’il n’y a pas de champtype.