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
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é | Définition | 
|---|---|
| identifier optional, string | Identificateur Snowflake facultatif pour l’entité. La valeur peut avoir les formes suivantes : 
 | 
| type optional, string | Doit être au choix :  | 
| artifact_repository optional, string | Nom du référentiel d’artefacts. Snowflake dispose d’un référentiel d’artefacts par défaut appelé  Les paramètres  
 Pour les paquets qui dépendent d’architectures spécifiques, vous pouvez les définir dans le paramètre  test_function:
  type: "function"
  handler: "app.udf"
  identifier:
    name: "udf"
  stage: "dev_deployment"
  signature: ""
  returns: float
  artifact_repository: snowflake.snowpark.pypi_shared_repository
    - 'scikit-learn'
  artifacts:
    - "app.py"
  resource_constraint:
    architecture: 'x86'
Pour plus d’informations, voir Paquets conçus uniquement pour x86. | 
| artifact_repository_packages optional, string | Note Cette propriété a été abandonnée au profit de la propriété  | 
| packages optional, string | Liste des paquets à installer à partir du artifact_repository. Par exemple : artifact_repository: snowflake.snowpark.pypi_shared_repository
packages:
  - Faker
  - rich
  - pytest
 | 
| artifacts requis, séquence de chaînes | Liste des paires de fichiers source et destination à ajouter à la racine du déploiement. Vous pouvez utiliser les propriétés d’artefacts suivantes : 
 Si  Vous pouvez également transmettre une chaîne pour chaque élément au lieu d’un  | 
| handler required, string | Implémentation par la fonction ou la procédure de l’objet contenu dans le module défini dans  | 
| returns required, string | Type SQL du résultat. Consultez la liste des types disponibles. | 
| signature required, sequence | Le paramètre  signature:
  - name: "first_argument"
    type: int
  - name: "second_argument"
    default: "default value"
    type: string
Si une fonction ou une procédure ne prend aucun argument, cette valeur est une chaîne vide ( 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.9 ». | 
| 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. Pour plus de détails, voir le paramètre EXTERNAL_ACCESS_INTEGRATIONS dans CREATE PROCEDURE. | 
| 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 le paramètre SECRETS dans 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 le paramètre IMPORT dans 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). |