Créer une définition de projet Snowpark

Le fichier snowflake.yml contient les déclarations de fonctions et de procédures pour un projet Snowpark.

Note

Actuellement, le fichier de définition du projet Snowpark doit être nommé snowflake.yml.

L’extrait suivant montre un exemple de fichier de définition de projet Snowpark : avec deux fonctions et deux procédures. La fonction hello_function utilise les capacités externes de Snowpark.

definition_version: '2'

mixins:
  snowpark_shared:
    artifacts:
      - dest: my_snowpark_project
        src: app/
    stage: dev_deployment

entities:

  hello_function:
    type: function
    identifier:
      name: hello_function
    handler: functions.hello_function
    signature:
      - name: name
        type: string
    returns: string
    external_access_integrations:
      - my_external_access
    secrets:
        cred: my_cred_name
    meta:
      use_mixins:
        - snowpark_shared

  hello_procedure:
    type: procedure
    identifier:
      name: hello_procedure
    handler: procedures.hello_procedure
    signature:
      - name: name
        type: string
    returns: string
    meta:
      use_mixins:
        - snowpark_shared

  test_procedure:
    type: procedure
    identifier:
      name: test_procedure
    handler: procedures.test_procedure
    signature: ''
    returns: string
    meta:
      use_mixins:
        - snowpark_shared
Copy

Prudence

Les fichiers se trouvant dans le répertoire d’un projet sont traités par Snowflake CLI et peuvent être téléchargés vers Snowflake lors de l’exécution d’autres commandes snow snowpark. Vous devez faire preuve de prudence lorsque vous placez des informations sensibles dans les fichiers d’un répertoire de projet.

Propriétés des objets de fonction et de procédure

Le tableau suivant décrit les propriétés utilisées par les fonctions et les procédures.

Propriétés des objets de fonction et de procédure

Propriété

Définition

identifier

optional, string

Identificateur Snowflake facultatif pour l’entité. La valeur peut avoir les formes suivantes :

  • Texte d’identificateur de chaîne

    identifer: my-snowpark-id
    
    Copy

    Les identificateurs entre guillemets et sans guillemets sont pris en charge. Pour utiliser des identificateurs entre guillemets, incluez les guillemets dans la valeur de YAML (par exemple, ’”Ma fonction Snowpark”’).

  • Objet

    identifer:
      name: my-snowpark-id
      schema: my-schema # optional
      database: my-db # optional
    
    Copy

    Note

    Une erreur se produit si vous spécifiez schema ou database et que vous utilisez un nom complet dans la propriété name (tel que mydb.schema1.my-app).

type

optional, string

Doit être au choix : function ou procedure.

artifacts

requis, séquence de chaînes

Liste des ressources requises.

handler

required, string

Implémentation par la fonction ou la procédure de l’objet contenu dans le module défini dans snowpark.src. Par exemple, functions.hello_function fait référence à la fonction hello_function du fichier <src>/functions.py.

returns

required, string

Type SQL du résultat. Consultez la liste des types disponibles.

signature

required, sequence

Le paramètre signature décrit les arguments consécutifs transmis à l’objet. Chacun d’entre eux doit préciser son nom et son type, par exemple :

signature:
  - name: "first_argument"
    type: int
  - name: "second_argument"
    default: "default value"
    type: string
Copy

Si une fonction ou une procédure ne prend aucun argument, cette valeur est une chaîne vide (signature: "").

Vérifiez la colonne Type SQL des types disponibles. Pour en savoir plus sur la syntaxe des arguments nommés et facultatifs, consultez Appeler une UDF qui a des arguments optionnels.

runtime

optional, string

Version de Python à utiliser lors de l’exécution de la procédure ou de la fonction. Par défaut : « 3.8 ».

external_access_integrations

optional, string sequence

Noms des intégrations d’accès externe nécessaires pour que le code du handler (gestionnaire) de cette procédure puisse accéder aux réseaux externes. Voir CREATE PROCEDURE pour plus de détails.

secrets

optional, dictionary

Attribue les noms des secrets aux variables afin que vous puissiez utiliser les variables pour référencer les secrets lors de la récupération des informations des secrets dans le code du gestionnaire. Voir CREATE PROCEDURE pour plus de détails.

imports

optional, string sequence

Zone de préparation et chemin d’accès aux fichiers en zone de préparation que vous souhaitez importer. Voir CREATE PROCEDURE pour plus de détails.

execute_as_caller

optional, bool

Disponible uniquement pour les procédures. Déterminez si la procédure est exécutée avec les privilèges du propriétaire (vous) ou avec les privilèges de l’appelant. Par défaut : False (privilèges du propriétaire).