snow snowpark build

Crée les artefacts requis pour le projet Snowpark. Les artefacts peuvent être utilisés par la commande deploy. Pour chaque répertoire dans les artefacts, un fichier .zip est créé. Toutes les dépendances hors Anaconda sont regroupées dans le fichier dependencies.zip.

Syntaxe

snow snowpark build
  --ignore-anaconda
  --allow-shared-libraries
  --index-url <index_url>
  --skip-version-check
  --project <project_definition>
  --env <env_overrides>
  --connection <connection>
  --host <host>
  --port <port>
  --account <account>
  --user <user>
  --password <password>
  --authenticator <authenticator>
  --private-key-file <private_key_file>
  --token-file-path <token_file_path>
  --database <database>
  --schema <schema>
  --role <role>
  --warehouse <warehouse>
  --temporary-connection
  --mfa-passcode <mfa_passcode>
  --enable-diag
  --diag-log-path <diag_log_path>
  --diag-allowlist-path <diag_allowlist_path>
  --format <format>
  --verbose
  --debug
  --silent
Copy

Arguments

Aucun

Options

--ignore-anaconda

Ne consulte pas les paquets sur le canal de Snowflake Anaconda. Par défaut : false.

--allow-shared-libraries

Autorise les bibliothèques partagées (.so) lors de l’utilisation de paquets installés par l’intermédiaire de PIP. Par défaut : false.

--index-url TEXT

URL de base de l’index des paquets Python à utiliser pour la recherche de paquets. Ceci doit pointer vers un référentiel conforme à PEP 503 (l’API de référentiel simple) ou vers un répertoire local présenté dans le même format.

--skip-version-check

Ne comparez pas les versions des dépendances entre les exigences et Anaconda. Par défaut : false.

-p, --project TEXT

Chemin où réside le projet Snowflake. La valeur par défaut est le répertoire de travail actuel.

--env TEXT

Chaîne au format clé=valeur. Remplace les variables de la section env utilisées pour les modèles. Par défaut : [].

--connection, -c, --environment TEXT

Nom de la connexion, tel que défini dans votre fichier config.toml. Défaut : défaut.

--host TEXT

Adresse de l’hôte pour la connexion. Remplace la valeur spécifiée pour la connexion.

--port INTEGER

Port pour la connexion. Remplace la valeur spécifiée pour la connexion.

--account, --accountname TEXT

Nom attribué à votre compte Snowflake. Remplace la valeur spécifiée pour la connexion.

--user, --username TEXT

Nom d’utilisateur pour se connecter à Snowflake. Remplace la valeur spécifiée pour la connexion.

--password TEXT

Mot de passe Snowflake. Remplace la valeur spécifiée pour la connexion.

--authenticator TEXT

Authentificateur Snowflake. Remplace la valeur spécifiée pour la connexion.

--private-key-file, --private-key-path TEXT

Chemin du fichier de clé privée Snowflake. Remplace la valeur spécifiée pour la connexion.

--token-file-path TEXT

Chemin vers un fichier avec un jeton OAuth qui doit être utilisé lors de la connexion à Snowflake.

--database, --dbname TEXT

Base de données à utiliser. Remplace la valeur spécifiée pour la connexion.

--schema, --schemaname TEXT

Schéma de la base de données à utiliser. Remplace la valeur spécifiée pour la connexion.

--role, --rolename TEXT

Rôle à utiliser. Remplace la valeur spécifiée pour la connexion.

--warehouse TEXT

Entrepôt à utiliser. Remplace la valeur spécifiée pour la connexion.

--temporary-connection, -x

Utilise la connexion définie avec les paramètres de la ligne de commande, au lieu de celle définie dans la configuration. Par défaut : false.

--mfa-passcode TEXT

Jeton à utiliser pour l’authentification multifactorielle (MFA)

--enable-diag

Exécutez le test de diagnostic du Python Connector. Par défaut : false.

--diag-log-path TEXT

Chemin d’accès au rapport de diagnostic. Par défaut : <temporary_directory>.

--diag-allowlist-path TEXT

Chemin d’accès au rapport de diagnostic vers la liste d’autorisations facultative.

--format [TABLE|JSON]

Spécifie le format de sortie. Par défaut : TABLE.

--verbose, -v

Affiche les entrées de journal pour les niveaux de journalisation info et supérieurs. Par défaut : false.

--debug

Affiche les entrées de journal pour les niveaux de journalisation debug et supérieurs ; les journaux de débogage contiennent des informations supplémentaires. Par défaut : false.

--silent

Désactive la sortie intermédiaire vers la console. Par défaut : false.

--help

Affiche le texte d’aide de cette commande.

Notes sur l’utilisation

  • app.zip contient tout ce qui est nécessaire pour exécuter les fonctions et les procédures du projet, à l’exception des paquets disponibles via le canal Anaconda de Snowflake, que vous pouvez appeler directement depuis Snowflake.

  • La commande analyse requirements.txt pour les paquets disponibles sur le canal Conda. Ce processus crée le fichier requirements.snowflake.txt qui contient les dépendances du projet disponibles sur le canal Conda, qui est ensuite utilisé par la commande snow snowpark deploy.

  • Par défaut, la commande recherche le fichier snowflake.yml dans le répertoire actuel. Vous pouvez également spécifier un chemin différent à l’aide de l’option --project.

  • Cette commande télécharge automatiquement les dépendances et les ajoute à un fichier appelé app.zip, ainsi que le code source du projet (spécifié par le champ src dans le fichier snowflake.yml.

  • Pour utiliser un Python Package Index différent de celui de PyPi, spécifiez-le à l’aide de l’option --index-url.

  • Vous pouvez utiliser l’option --skip-version-check pour sauter les exigences de version entre les dépendances du projet et le canal Anaconda.

  • Vous pouvez utiliser l’option --ignore-anaconda pour inclure toutes les dépendances requises dans le fichier app.zip, même celles disponibles dans le canal Snowflake Anaconda. Les dépendances ne sont pas téléchargées depuis Anaconda, mais depuis PyPi.

  • L’option --allow-shared-libraries vérifie si les paquets téléchargés à partir de PyPi utilisent des dépendances natives, ce qui peut poser des problèmes car Snowpark ne prend actuellement en charge que les dépendances natives pour les paquets provenant du canal Conda

Exemples

  • Construire un projet situé dans le répertoire actuel :

    snow snowpark build
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.
    
  • Construire un projet situé dans un répertoire différent :

    ls
    
    Copy
    project_dir    some_other_dir    some_file.txt
    
    snow snowpark build -p project_dir
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.
    
  • Construire un projet dans un répertoire sans définition de projet snowflake.yml :

    ls
    
    Copy
    project_dir    some_other_dir    some_file.txt
    
    snow snowpark build
    
    Copy
    ╭─ Error ──────────────────────────────────────────────────────────╮
      Cannot find project definition (snowflake.yml). Please provide
      a path to the project or run this command in a valid
      project directory.
    ╰──────────────────────────────────────────────────────────────────╯
    
  • Construire un projet avec des bibliothèques natives :

    snow snowpark build --ignore-anaconda --allow-shared-libraries
    
    Copy
    2024-04-16 16:05:52 ERROR Following dependencies utilise shared libraries, not supported by Conda:
    2024-04-16 16:05:52 ERROR contourpy
    pillow
    numpy
    kiwisolver
    fonttools
    matplotlib
    2024-04-16 16:05:52 ERROR You may still try to create your package with --allow-shared-libraries, but the might not work.
    2024-04-16 16:05:52 ERROR You may also request adding the package to Snowflake Conda channel
    2024-04-16 16:05:52 ERROR at https://support.anaconda.com/
    Build done. Artifact path: /Path/to/current/dir/project_dir/app.zip
    
  • Construire un projet et inclure toutes les dépendances :

    snow snowpark build --ignore-anaconda
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.