snow app run¶
Crée un paquet d’application dans votre compte Snowflake, télécharge des fichiers de code dans sa zone de préparation, puis crée ou met à niveau un objet d’application à partir du paquet d’application.
Syntaxe¶
snow app run
--version <version>
--patch <patch>
--from-release-directive
--interactive / --no-interactive
--force
--validate / --no-validate
--package-entity-id <package_entity_id>
--app-entity-id <app_entity_id>
--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
Arguments¶
Aucun
Options¶
--version TEXT
La version définie dans un paquet d’application existant à partir duquel vous voulez créer un objet d’application. Les noms de l’objet d’application et du paquet d’application sont déterminés à partir du fichier de définition du projet.
--patch INTEGER
Le numéro de correctif sous la
--version
définie dans un paquet d’application existant qui doit être utilisé pour créer un objet d’application. Les noms de l’objet d’application et du paquet d’application sont déterminés à partir du fichier de définition du projet.--from-release-directive
Crée ou met à niveau un objet d’application vers la version et le correctif spécifiés par la directive de version applicable à votre compte Snowflake. La commande échoue si aucune directive de version n’existe pour votre compte Snowflake pour un paquet d’application donné, qui est déterminé à partir du fichier de définition du projet. Valeur par défaut : non définie. Par défaut : false.
--interactive / --no-interactive
Lorsqu’elle est activée, cette option affiche des invites même si l’entrée et la sortie standard ne sont pas des terminaux. La valeur par défaut est True dans un environnement shell interactif et False dans le cas contraire.
--force
Lorsqu’elle est activée, cette option permet à la commande d’approuver implicitement toutes les invites qui se présentent. Vous devez activer cette option si le mode interactif n’est pas spécifié et si vous souhaitez effectuer des actions potentiellement destructrices. La valeur par défaut est « non définie ». Par défaut : false.
--validate / --no-validate
Lorsqu’elle est activée, cette option déclenche la validation du script d’installation SQL d’une Snowflake Native App déployée. Par défaut : True.
--package-entity-id TEXT
L’ID de l’entité du paquet sur laquelle opérer lorsque definition_version est la 2 ou supérieure.
--app-entity-id TEXT
L’ID de l’entité de l’application sur laquelle opérer lorsque definition_version est la 2 ou supérieure.
-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¶
Note
Cette commande n’accepte pas les dérogations à votre fichier config.toml
en matière de rôle ou d’entrepôt. Veuillez plutôt les ajouter à la définition de l’application native dans snowflake.yml
ou snowflake.local.yml
.
Cette commande s’appuie sur la définition du projet résolu pour déterminer la zone de préparation vers laquelle télécharger les fichiers, les fichiers à télécharger et le nom des objets à créer. Pour obtenir des références sur les valeurs par défaut, veuillez consulter les notes sur l’utilisation de À propos des projets Snowflake Native App et snow app init. Vous pouvez également les modifier selon vos préférences, mais il vous incombe de vérifier s’il n’y a pas de conflit avec des objets existants dans votre compte.
Les objets créés par Snowflake CLI sont marqués d’un commentaire spécial
GENERATED_BY_SNOWCLI
.Le(s) rôle(s) utilisé(s) pour créer le paquet d’application et l’instance doit(vent) disposer des privilèges de compte appropriés pour travailler avec des Snowflake Native Applications. Voir Création d’un paquet d’application et Installer et tester une application localement pour en savoir plus.
Par défaut, la commande snow app run
crée un paquet d’application dans votre compte Snowflake, télécharge les fichiers de code dans sa zone de préparation, valide le SQL du script d’installation puis crée (ou met à niveau) une instance en mode développement de cette application. Vous devez garder à l’esprit les points suivants lorsque vous exécutez la commande par défaut :
Tous les fichiers spécifiés sous
nativeapp.project.artifacts
dans le(s) fichier(s) de définition du projet sont téléchargés vers la zone de préparation Snowflake. Cet artefact doit comprendre un fichiermanifest.yml
et le(s) script(s) d’installation correspondant(s).Tous les fichiers spécifiés sous
nativeapp.project.artifacts
doivent avoir été compilés et empaquetés séparément, si nécessaire, avant d’appelersnow app run
. Snowflake CLI n’offre aucune fonction pour effectuer ces tâches intermédiaires à votre place, vous avez donc le contrôle total de votre processus de construction en l’exécutant dans vos propres scripts.Snowflake CLI utilise le nom du paquet d’application, le nom de la zone de préparation et le nom de l’application par défaut lors de la création de ces objets.
Les exécutions ultérieures de
snow app run
après la première comparent l’état des fichiers téléchargés aux fichiers de votre répertoire local et ne téléchargent sélectivement que les fichiers modifiés pour vous faire gagner du temps. Si des fichiers ont été modifiés, l’application est mise à niveau en fonction du nouveau contenu de la zone de préparation.Si le paquet d’application existe déjà et que sa propriété de distribution est
INTERNAL
, la commande vérifie si le paquet a été créé par Snowflake CLI. Dans le cas contraire, la commande génère une erreur. Si la distribution du paquet d’application estEXTERNAL
, aucune vérification de ce type n’est effectuée.La commande vous avertit si le paquet d’application avec lequel vous travaillez a une valeur de distribution différente de celle définie dans la définition de votre projet résolu, mais poursuit l’exécution.
L’instance d’application est créée ou mise à niveau en mode développement. Plus précisément, elle utilise les fichiers en zone de préparation.
Si vous spécifiez une option --version
, --patch
ou --from-release-directive
, cette commande met à niveau votre instance d’application existante ou en crée une si l’application n’existe pas. Dans ce cas, elle ne crée pas de paquet d’application.
Si Snowflake CLI n’est pas en mesure de mettre à jour votre application pour une raison quelconque, par exemple en essayant de mettre à niveau une application initialement installée en mode fichiers détachés pour utiliser des directives de version, il tente de supprimer l’application existante et d’en créer une nouvelle à l’aide de la stratégie d’installation souhaitée. La commande vous invite à confirmer la suppression avant d’effectuer l’action.
Si vous ne souhaitez pas interagir avec la commande et préférez forcer toutes les actions, utilisez l’option
--force
pour ignorer toutes les invites, ce qui équivaut à un oui à toutes les entrées demandant si l’on doit procéder à des actions destructrices.Snowflake CLI tente de déterminer si vous exécutez les commandes dans un interpréteur interactif. Si
--force
n’est pas fourni et que vous exécutez des commandes dans l’interpréteur de commandes interactif, il choisit automatiquement l’option interactive pour vous.Si vous voulez forcer Snowflake CLI à interagir avec vous même si vous n’êtes pas dans un interpréteur interactif, utilisez l’option
--interactive
.
Exemples¶
Ces exemples supposent que vous avez apporté les modifications nécessaires à vos fichiers de code et que vous les avez ajoutés à vos fichiers snowflake.yml
ou snowflake.local.yml
.
Si vous souhaitez créer un paquet d’application et une application à l’aide de fichiers en zone de préparation, vous pouvez exécuter :
cd my_app_project my_app_project_build_script.sh snow app run --connection="dev"
Si vous disposez déjà d’un paquet d’application avec une version et un correctif, que vous souhaitez créer une application à partir de cette version et de ce correctif, et que vous appelez le mode interactif, vous pouvez exécuter :
snow app run --version V1 --patch 12 --interactive --connection="dev"
Ici, la version
V1
et le correctif12
sont utilisés à titre d’exemple uniquement.Si vous disposez d’une directive de version existante sur un paquet d’application et que vous souhaitez créer une application à partir de celle-ci en contournant le mode interactif, vous pouvez exécuter :
snow app run --from-release-directive --force --connection="dev"
Cet exemple montre comment transmettre plusieurs variables d’environnement à l’aide de l’option
--env
:snow app run --env source_folder="src/app" --env stage_name=mystage