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
  --channel <channel>
  --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>
  --workload-identity-provider <workload_identity_provider>
  --private-key-file <private_key_file>
  --token <token>
  --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>
  --oauth-client-id <oauth_client_id>
  --oauth-client-secret <oauth_client_secret>
  --oauth-authorization-url <oauth_authorization_url>
  --oauth-token-request-url <oauth_token_request_url>
  --oauth-redirect-uri <oauth_redirect_uri>
  --oauth-scope <oauth_scope>
  --oauth-disable-pkce
  --oauth-enable-refresh-tokens
  --oauth-enable-single-use-refresh-tokens
  --client-store-temporary-credential
  --format <format>
  --verbose
  --debug
  --silent
  --enhanced-exit-codes
Arguments¶
Aucun(e)
Options¶
--version TEXTLa 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 INTEGERLe numéro de correctif sous la
--versiondé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-directiveCré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.
--channel TEXTLe nom du canal de version à utiliser lors de la création ou de la mise à niveau d’une instance d’application à partir d’une directive de version. Exige que le paramètre
--from-release-directivesoit edéfini. S’il n’est pas défini, le canal par défaut sera utilisé.--interactive / --no-interactiveLorsqu’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.
--forceLorsqu’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-validateLorsqu’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 TEXTL’ID de l’entité du paquet sur laquelle opérer lorsque definition_version est la 2 ou supérieure.
--app-entity-id TEXTL’ID de l’entité d’application sur laquelle opérer la definition_version est la 2 ou supérieure.
-p, --project TEXTChemin où le projet Snowflake est stocké. La valeur par défaut est le répertoire de travail actuel.
--env TEXTChaîne au format clé=valeur. Remplace les variables de la section env utilisées pour les modèles. Par défaut : [].
--connection, -c, --environment TEXTNom de la connexion, tel que défini dans votre fichier
config.toml. Défaut :défaut.--host TEXTAdresse de l’hôte pour la connexion. Remplace la valeur spécifiée pour la connexion.
--port INTEGERPort pour la connexion. Remplace la valeur spécifiée pour la connexion.
--account, --accountname TEXTNom attribué à votre compte Snowflake. Remplace la valeur spécifiée pour la connexion.
--user, --username TEXTNom d’utilisateur pour se connecter à Snowflake. Remplace la valeur spécifiée pour la connexion.
--password TEXTMot de passe Snowflake. Remplace la valeur spécifiée pour la connexion.
--authenticator TEXTAuthentificateur Snowflake. Remplace la valeur spécifiée pour la connexion.
--workload-identity-provider TEXTFournisseur d’identité de charge de travail (AWS, AZURE, GCP, OIDC). Remplace la valeur spécifiée pour la connexion.
--private-key-file, --private-key-path TEXTChemin du fichier de clé privée Snowflake. Remplace la valeur spécifiée pour la connexion.
--token TEXTJeton OAuth à utiliser lors de la connexion à Snowflake.
--token-file-path TEXTChemin d’accès au fichier contenant un jeton OAuth à utiliser lors de la connexion à Snowflake.
--database, --dbname TEXTBase de données à utiliser. Remplace la valeur spécifiée pour la connexion.
--schema, --schemaname TEXTSchéma de la base de données à utiliser. Remplace la valeur spécifiée pour la connexion.
--role, --rolename TEXTRôle à utiliser. Remplace la valeur spécifiée pour la connexion.
--warehouse TEXTEntrepôt à utiliser. Remplace la valeur spécifiée pour la connexion.
--temporary-connection, -xUtilise une connexion définie avec les paramètres de la ligne de commande, au lieu d’une connexion définie dans la configuration. Par défaut : false.
--mfa-passcode TEXTJeton à utiliser pour l’authentification multifactorielle (MFA)
--enable-diagIndique s’il faut générer un rapport de diagnostic de la connexion. Par défaut : false.
--diag-log-path TEXTChemin d’accès au rapport généré. Il s’agit du répertoire temporaire du système par défaut. Par défaut : <system_temporary_directory>.
--diag-allowlist-path TEXTChemin d’accès à un fichier JSON contenant les paramètres de la liste d’autorisations.
--oauth-client-id TEXTValeur de l’identifiant du client fourni par le fournisseur d’identité pour l’intégration dans Snowflake.
--oauth-client-secret TEXTValeur du secret du client fourni par le fournisseur d’identité pour l’intégration dans Snowflake.
--oauth-authorization-url TEXTPoint de terminaison du fournisseur d’identité fournissant le code d’autorisation au pilote.
--oauth-token-request-url TEXTPoint de terminaison du fournisseur d’identité fournissant les jetons d’accès au pilote.
--oauth-redirect-uri TEXTURI à utiliser pour la redirection du code d’autorisation.
--oauth-scope TEXTChamp d’application demandé dans la requête d’autorisation du fournisseur d’identité.
--oauth-disable-pkceDésactive la clé de preuve pour l’échange de code (PKCE). Par défaut :
False.--oauth-enable-refresh-tokensPermet une réauthentification silencieuse lorsque le jeton d’accès actuel n’est plus valable. Par défaut :
False.--oauth-enable-single-use-refresh-tokensIndique s’il faut choisir une sémantique de jeton d’actualisation à usage unique. Par défaut :
False.--client-store-temporary-credentialEnregistrez les identifiants de connexion temporaires.
--format [TABLE|JSON|JSON_EXT|CSV]Spécifie le format de sortie. Par défaut : TABLE.
--verbose, -vAffiche les entrées de journal pour les niveaux de journalisation
infoet supérieurs. Par défaut : false.--debugAffiche les entrées de journal pour les niveaux de journalisation
debuget supérieurs ; les journaux de débogage contiennent des informations supplémentaires. Par défaut : false.--silentDésactive la sortie intermédiaire vers la console. Par défaut : false.
--enhanced-exit-codesDifférenciez les codes d’erreur de sortie en fonction du type d’erreur. Par défaut : false.
--helpAffiche 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.artifactsdans 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.ymlet le(s) script(s) d’installation correspondant(s).Tous les fichiers spécifiés sous
nativeapp.project.artifactsdoivent 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 runaprè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
--forcepour 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
--forcen’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
V1et le correctif12sont 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"
Pour créer une application à partir de la directive de version d’un canal de version non confirguré par défaut, exécutez :
snow app run --from-release-directive --channel ALPHA --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