Création et test d’un objet APPLICATION

Cette rubrique décrit comment créer un objet APPLICATION à partir d’un paquet d’application.

À propos de la création et du test d’objets APPLICATION

Le Snowflake Native App Framework permet au fournisseur de créer un objet APPLICATION dans le même compte que le paquet d’application. Cela permet aux fournisseurs de tester un Snowflake Native App avant de le publier auprès des consommateurs. Il permet également aux fournisseurs de tester l”Snowflake Native App sur un seul compte, sans avoir à alterner entre les comptes fournisseur et consommateur.

Privilèges requis pour créer et tester un objet APPLICATION

Pour créer un objet APPLICATION à partir d’un paquet d’application, vous devez disposer des privilèges suivants accordés à votre rôle :

  • Le privilège au niveau du compte CREATE APPLICATION accordé à votre rôle.

  • Le privilège au niveau de l’objet INSTALL accordé sur le paquet d’application.

Les exemples suivants montrent comment utiliser la commande GRANT <privilèges> pour attribuer ces privilèges à votre compte :

GRANT CREATE APPLICATION ON ACCOUNT TO ROLE provider_role;
GRANT INSTALL ON APPLICATION PACKAGE hello_snowflake_package
  TO ROLE provider_role;
Copy

Utilisation du privilège DEVELOP

Par défaut, le rôle utilisé pour créer un paquet d’application dispose des autorisations nécessaires pour exécuter la commande CREATE APPLICATION afin de créer un objet APPLICATION basé sur le paquet d’application.

Toutefois, dans certains environnements de développement, vous devrez peut-être autoriser des utilisateurs ayant d’autres rôles à créer et à tester un paquet d’application. Pour ce faire, accordez à un rôle le privilège au niveau de l’objet DEVELOP sur le paquet d’application.

Le privilège au niveau du compte DEVELOP fournit les privilèges nécessaires pour créer et tester un objet APPLICATION basé sur un paquet d’application. Le privilège DEVELOP permet à un utilisateur d’effectuer les tâches suivantes à l’aide du paquet d’application sur lequel il a obtenu un accès :

  • Créer une version d’un objet APPLICATION en fonction d’une version ou d’un niveau de correctif spécifié dans le paquet d’application.

  • Mettre à niveau une version d’un paquet d’application à l’aide de la commande ALTER APPLICATION.

  • Créez et mettez à niveau un objet APPLICATION en utilisant des fichiers sur une zone de préparation nommée.

  • Activez le mode débogage sur un objet APPLICATION créé en mode développement.

Pour attribuer le privilège DEVELOP à un rôle spécifique, utilisez la commande GRANT <privilèges> comme indiqué dans l’exemple suivant :

GRANT DEVELOP ON APPLICATION PACKAGE hello_snowflake_package TO ROLE other_dev_role;
Copy

Note

Le privilège au niveau de l’objet DEVELOP est spécifique à un seul paquet d’application. Vous devez exécuter GRANT <privilèges> sur chaque application à laquelle vous souhaitez attribuer le privilège DEVELOP.

Processus de création et de test d’une application

Le Snowflake Native App Framework propose différentes manières de créer un objet APPLICATION à partir d’un paquet d’application. Cela vous permet de tester une Snowflake Native App avant de la publier auprès des consommateurs. La méthode que vous utilisez dépend des parties de l’objet APPLICATION que vous souhaitez tester.

Les étapes suivantes décrivent un processus typique de test d’un objet APPLICATION :

  1. Créer un objet APPLICATION en utilisant le contenu d’une zone de préparation.

    Cela vous permet de tester rapidement une nouvelle version d’un script d’installation ou d’un fichier de code d’application. Reportez-vous à Création d’une application à l’aide de fichiers en zone de préparation pour plus d’informations.

  2. Créer un objet APPLICATION à partir d’une version ou d’un correctif.

    Après avoir défini une version ou un correctif pour un paquet d’application, vous pouvez tester cette version en créant un objet APPLICATION utilisant cette version. Reportez-vous à Création d’une application à partir d’un niveau de version ou de correctif.

  3. Mettre à niveau un objet APPLICATION.

    Après avoir vérifié qu’une version d’un paquet d’application fonctionne correctement, vous pouvez mettre à niveau un objet APPLICATION existant vers la nouvelle version. Vous pouvez procéder à une mise à niveau de deux manières :

    • Mise à niveau d’une application en utilisant une zone de préparation (compte unique)

    • Mise à niveau d’une application à partir d’une version (compte unique)

  4. Créer un objet APPLICATION directement à partir d’un paquet d’application.

    Après avoir vérifié que l’objet APPLICATION installée fonctionne correctement, vous pouvez créer un objet APPLICATION à partir d’un paquet d’application sans spécifier de version ni de fichiers en zone de préparation. L’objet APPLICATION est ainsi créé à l’aide de la directive de version par défaut.

    Reportez-vous à Création d’une application à l’aide de fichiers en zone de préparation pour plus d’informations.

  5. Installez une Snowflake Native App à partir d’une annonce.

    Après avoir vérifié dans votre compte que le paquet d’application et l’objet APPLICATION fonctionnent correctement, vous pouvez ajouter le paquet d’application à une annonce et tester l’installation à l’aide de Snowsight.

    Reportez-vous à Création d’une application à l’aide de fichiers en zone de préparation pour plus d’informations.

Création d’une application

Le Snowflake Native App Framework vous permet d’installer un objet APPLICATION directement dans votre compte pour tester une Snowflake Native App avant qu’elle ne soit partagée avec les clients. La commande CREATE APPLICATION prend en charge différentes syntaxes pour la création d’un objet APPLICATION.

Note

Les sections suivantes supposent que vous avez créé un paquet d’application, ainsi que le fichier manifeste et le script d’installation requis.

Création d’une application à l’aide de fichiers en zone de préparation

Vous pouvez créer un objet APPLICATION à l’aide d’un fichier manifeste et d’un script d’installation téléchargés dans une zone de préparation nommée. Cela vous permet de tester les modifications apportées à ces fichiers sans devoir ajouter une version à un paquet d’application.

Utilisez la commande CREATE APPLICATION pour créer un objet APPLICATION à l’aide de fichiers en zone de préparation, comme le montre l’exemple suivant :

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package
  USING '@hello_snowflake_code.core.hello_snowflake_stage';
Copy

Création d’une application à partir d’un niveau de version ou de correctif

Après avoir spécifié une version ou un niveau de correctif dans un paquet d’application, vous pouvez créer un objet APPLICATION basé sur cette version ou ce niveau de correctif.

Pour créer un objet APPLICATION à partir d’une version spécifique, utilisez la commande CREATE APPLICATION comme indiqué dans l’exemple suivant :

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package
  USING VERSION v1_0;
Copy

Pour créer un objet APPLICATION à partir d’un niveau de correctif spécifique, utilisez la commande CREATE APPLICATION comme indiqué dans l’exemple suivant :

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package
  USING VERSION v1_0 PATCH 2;
Copy

Création d’une application basée sur une directive de version

Après avoir spécifié une directive de version dans un paquet d’application, vous pouvez créer un objet APPLICATION basé sur la directive de version. Il peut s’agir d’une directive de version personnalisée ou de la directive de version par défaut.

Pour créer un paquet d’application sur la base d’une directive de version, utilisez la commande CREATE APPLICATION comme indiqué dans l’exemple suivant :

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package;
Copy

Mise à niveau d’une application à l’aide d’une zone de préparation

Pour mettre à niveau un objet APPLICATION à l’aide de fichiers sur une zone de préparation nommée, utilisez la commande ALTER APPLICATION comme indiqué dans l’exemple suivant :

ALTER APPLICATION HelloSnowflake
  UPGRADE USING @CODEDATABASE.CODESCHEMA.AppCodeStage;
Copy

Mise à niveau d’une application à partir d’une version ou d’un correctif

Pour mettre à niveau un objet APPLICATION qui a été créée à partir d’une version spécifique, utilisez la commande ALTER APPLICATION comme indiqué dans l’exemple suivant :

ALTER APPLICATION HelloSnowflake
 UPGRADE USING VERSION "v1_1";
Copy

Affichage des objets APPLICATION disponibles

Pour voir une liste des objets APPLICATION disponibles sur votre compte, utilisez la commande SHOW APPLICATIONS comme indiqué dans l’exemple suivant :

SHOW APPLICATIONS
Copy

À propos du mode développement

Lorsque vous créez un objet APPLICATION à partir d’un paquet d’application en spécifiant une version ou des fichiers d’application sur une zone de préparation nommée, l’objet APPLICATION est considéré comme étant en mode développement.

Le mode développement vous permet de tester et de dépanner un objet APPLICATION au sein d’un même compte. En mode développement, vous pouvez créer et tester un objet APPLICATION selon une version spécifique d’un paquet d’application. Vous pouvez également créer et tester un objet APPLICATION à l’aide de fichiers en zone de préparation. Vous pouvez ainsi tester rapidement les modifications apportées au script d’installation ou à la logique d’application.

Le mode développement offre un mode de débogage supplémentaire qui vous permet de vérifier le statut interne d’un objet APPLICATION qu’un consommateur ne pourrait pas voir autrement.

En mode développement, par exemple, l’exécution des commandes SHOW ou DESC sur des objets de l’objet APPLICATION n’affichera que les objets que le consommateur a été autorisé à voir. Cependant, en mode DEBUG, vous pouvez voir tous les objets de l’objet APPLICATION.

Activation du mode débogage

Le Snowflake Native App Framework vous permet de tester un objet APPLICATION en mode débogage. Le mode débogage vous permet de voir et de modifier tous les objets au sein de l’objet APPLICATION. Les objets qui ne sont pas visibles par un consommateur, par exemple les objets non attribués à un rôle de base de données ou les objets de contenu partagé, sont visibles dans ce mode.

L’utilisation d’un objet APPLICATION en mode débogage nécessite les éléments suivants :

  • L’objet APPLICATION doit être créée en mode développement, ce qui signifie qu’elle doit être basée sur une version spécifique ou sur des fichiers sur une zone de préparation.

  • Vous devez explicitement activer le mode débogage sur l’objet APPLICATION.

Note

Le mode débogage ne peut être activé ou désactivé que pour un objet APPLICATION créé en mode développement au sein du même compte qui contient le paquet d’application.

Pour activer le mode débogage sur un objet APPLICATION, utilisez la commande ALTER APPLICATION comme indiqué dans l’exemple suivant :

ALTER APPLICATION hello_snowflake_app SET DEBUG_MODE = TRUE;
Copy

Cette commande active le mode débogage pour un objet APPLICATION installé nommé hello_snowflake_app. De même, pour désactiver le mode débogage, utilisez la même commande comme indiqué dans l’exemple suivant :

ALTER APPLICATION hello_snowflake_app SET DEBUG_MODE = FALSE;
Copy

Cette commande désactive le mode débogage pour l’objet APPLICATION nommée hello_snowflake_app.

Note

Pour exécuter cette commande, vous devez disposer du privilège OWNERSHIP sur l’objet APPLICATION. Vous devez également avoir le privilège DEVELOP sur le paquet d’application.

En outre, l’objet APPLICATION doit être créé en mode développement et dans le même compte que le paquet d’application.

Définition d’une application comme contexte actif

Pour définir un objet APPLICATION comme contexte actif et actuel d’une session, exécutez la commande USE APPLICATION comme indiqué dans l’exemple suivant :

USE APPlICATION hello_snowflake_app;
Copy

Note

Pour exécuter cette commande, vous devez disposer du privilège USAGE accordé sur l’objet APPLICATION à votre rôle.

Vue des détails d’une application installée

Pour voir les détails d’un objet APPLICATION, exécutez la commande DESCRIBE APPLICATION comme indiqué dans l’exemple suivant :

DESC APPLICATION hello_snowflake_app;
Copy

En mode développement, cette commande n’affiche que les schémas exposés au consommateur par le biais des rôles de la base de données de l’application.

En mode débogage, cette commande affiche tous les schémas de l’instance et du paquet d’application.