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
Copy

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.

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 fichier manifest.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’appeler snow 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 est EXTERNAL, 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"
    
    Copy
  • 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"
    
    Copy

    Ici, la version V1 et le correctif 12 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"
    
    Copy
  • 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
    
    Copy