Mettre à niveau une application à l’aide de canaux de version¶
Cette rubrique fournit des informations sur la manière de mettre à niveau une Snowflake Native App en utilisant les canaux de version.
À propos des mises à niveau de l’application¶
Le Snowflake Native App Framework permet aux fournisseurs de mettre à niveau une application vers une nouvelle version ou un nouveau correctif.
Les fournisseurs peuvent lancer la mise à niveau d’une application vers une nouvelle version ou un nouveau correctif en paramétrant la directive de version sur le canal de version. Lorsque la directive de version est modifiée, Snowflake met automatiquement à niveau toutes les instances installées de la version actuelle de l’application vers la version spécifiée par la directive de version.
Lorsque le fournisseur lance une mise à niveau, Snowflake ajoute chaque application à mettre à niveau à une file d’attente. Chaque application est mise à jour au fur et à mesure de la disponibilité des ressources. Le processus de mise à niveau peut prendre un certain temps pour s’achever sur l’ensemble des versions installées de l’application. Pour accélérer le processus de mise à niveau, les consommateurs peuvent également lancer manuellement la mise à niveau d’une application lorsqu’une nouvelle version ou un correctif est disponible.
Note
Après le début du processus de mise à niveau d’une application, les consommateurs ne peuvent plus mettre à jour manuellement l’application.
Considérations à prendre en compte lors de la mise à niveau d’une application avec plusieurs versions¶
Lorsqu’un fournisseur publie une nouvelle version d’une application, Snowflake s’assure que seule la version précédente de l’application est active. Par exemple, si un fournisseur a publié les versions v1 et v2 d’une application, Snowflake s’assure que seule la v2 est actuellement installée sur le compte d’un consommateur avant de procéder à la mise à niveau vers la v3. Cela exige que toutes les applications installées utilisant la version v1 soient migrées vers la version v2.
Ainsi, le script d’installation de l’application ne doit tenir compte que des différences entre la v2 et la v3. Le script d’installation n’est rétrocompatible qu’avec la version la plus récente de l’application. Si un fournisseur apporte un changement d’état à l’application, par exemple en créant une nouvelle table ou en ajoutant des colonnes à une table, les fournisseurs n’ont plus qu’à s’assurer qu’il n’y a pas de problème de compatibilité entre deux versions.
En revanche, lorsqu’un fournisseur crée un nouveau correctif pour une version d’une application, le Snowflake Native App Framework n’impose aucune restriction quant au nombre de correctifs actifs en cours d’exécution. Les fournisseurs doivent éviter de modifier l’état d’une application dans un correctif afin d’éviter toute incompatibilité entre plusieurs correctifs.
Considérations à prendre en compte lors de la suppression d’une version d’une application après une mise à niveau¶
Bien qu’une application puisse être mise à niveau dans le compte du consommateur, il se peut que la version précédente de l’application contienne encore du code en cours d’exécution. Les fournisseurs ne peuvent pas retirer la version précédente de l’application du canal de version tant que tous les codes en cours d’exécution de la version précédente n’ont pas été exécutés. Cela s’applique à toutes les versions installées de l’application sur l’ensemble des comptes consommateurs. Si une seule mise à niveau échoue, les fournisseurs doivent corriger la raison de l’échec de la mise à niveau avant de pouvoir supprimer la version.
Mises à niveau dans les régions¶
Pour des informations sur la mise à niveau d’une application dans plusieurs régions, voir Mise à niveau d’une application dans plusieurs régions.
Workflow de mise à niveau d’une application¶
Un fournisseur met à niveau une application via le workflow suivant :
Mettez à jour l’application pour y inclure toute nouvelle fonction.
Si vous créez une nouvelle version de l’application et que deux versions sont actuellement définies pour l’application :
Assurez-vous qu’aucun consommateur n’utilise actuellement cette version.
Déposez la version de l’application que vous remplacez.
Créez une nouvelle version ou un nouveau correctif pour les modifications apportées au canal de version.
Si la propriété DISTRIBUTION du paquet d’application est définie sur EXTERNAL, l’analyse de sécurité automatisée est lancée. L’analyse de sécurité doit s’effectuer correctement avant que la mise à niveau puisse avoir lieu.
Testez la nouvelle version en installant l’application dans votre compte de test.
Mettez à jour la directive de version pour la version ou le correctif.
Cette opération lance une mise à niveau automatisée qui mettra à jour toutes les instances installées de la version précédente. Un fournisseur peut avertir le consommateur qu’une mise à niveau est disponible et lui demander de mettre à niveau manuellement l’application.
Définir une date et une heure de début d’une mise à niveau¶
Les fournisseurs peuvent définir une date et une heure qui spécifient le début d’une mise à niveau automatique. Cette date et cette heure sont définies dans la directive de version (par défaut ou personnalisée) à l’aide de la clause UPGRADE_AFTER de la commande ALTER APPLICATION PACKAGE. Les directives de version par défaut et personnalisées sont prises en charge.
La date et l’heure de la mise à niveau peuvent être n’importe quel type de date et d’heure valide. Si l’horodatage est déjà dépassé, la mise à niveau est immédiatement planifiée. Cela revient à ne pas définir la clause UPGRADE_AFTER.
Vous ne pouvez utiliser la clause UPGRADE_AFTER que si vous définissez la version et le correctif. Cette clause ne peut pas être utilisée pour modifier uniquement la date et l’heure de la mise à niveau.
Définir la date et l’heure de mise à niveau pour la directive de version par défaut¶
Pour définir la date et l’heure de mise à jour pour la directive de version par défaut :
ALTER APPLICATION PACKAGE hello_snowflake_package MODIFY RELEASE CHANNEL DEFAULT SET DEFAULT RELEASE DIRECTIVE VERSION = 'v1_0' PATCH = '2' UPGRADE_AFTER = '2025-04-06T11:00:00Z'
Cette commande définit la date et l’heure de mise à niveau du correctif 2 ou de la version v1_0 du canal de version DEFAULT sur le 6 avril 2025 à 11 h 00.
Note
Il s’agit de la date et de l’heure auxquelles la mise à niveau peut commencer. La mise à niveau réelle peut avoir lieu plus tard, en fonction du nombre d’applications mises à niveau, du nombre de comptes de consommateurs, etc.
Définir la date et l’heure de mise à niveau pour la directive de version personnalisée¶
Pour définir la date et l’heure de mise à niveau d’une directive de version par défaut :
ALTER APPLICATION PACKAGE hello_snowflake_package MODIFY RELEASE CHANNEL DEFAULT SET DEFAULT RELEASE DIRECTIVE VERSION = 'v1_0' PATCH = '2' UPGRADE_AFTER = '2025-04-06T11:00:00Z'
Cette commande définit la date et l’heure de mise à niveau du correctif 2 ou de la version v1_0 du canal de version DEFAULT sur le 6 avril 2025 à 11 h 00.
Note
Il s’agit de la date et de l’heure auxquelles la mise à niveau peut commencer. La mise à niveau réelle peut avoir lieu plus tard, en fonction du nombre d’applications mises à niveau, du nombre de comptes de consommateurs, etc.
Modifier la date et l’heure de mise à niveau pour une directive de version personnalisée¶
Pour modifier la date et l’heure de mise à niveau pour une directive de version par défaut :
ALTER APPLICATION PACKAGE hello_snowflake_package MODIFY RELEASE CHANNEL DEFAULT SET DEFAULT RELEASE DIRECTIVE ACCOUNTS = ( USER_ACCOUNT.snowflakecomputing.com ) VERSION = 'v1_0' PATCH = '2' UPGRADE_AFTER = '2025-04-06T11:00:00Z'
Cette commande modifie la date et l’heure de mise à niveau du correctif 2 ou de la version v1_0 du canal de version DEFAULT sur le 6 avril 2025 à 11 h 00.
Note
Il s’agit de la date et de l’heure auxquelles la mise à niveau peut commencer. La mise à niveau réelle peut avoir lieu plus tard, en fonction du nombre d’applications mises à niveau, du nombre de comptes de consommateurs, etc.
Démarrer une mise à niveau¶
Le processus de mise à niveau démarre automatiquement lorsqu’un fournisseur met à jour la directive de version (par défaut ou personnalisée) du canal de version pour qu’elle pointe vers une nouvelle version ou un nouveau correctif. Utilisez la commande ALTER APPLICATION PACKAGE … RELEASE DIRECTIVE pour paramétrer la directive de version comme indiqué dans les exemples suivants :
ALTER APPLICATION PACKAGE my_application_package
MODIFY RELEASE CHANNEL DEFAULT
SET DEFAULT RELEASE DIRECTIVE
VERSION = v2
PATCH = 0;
Cette commande définit la directive de version par défaut sur la version v2 et le correctif 0 pour le canal de version par défaut.
ALTER APPLICATION PACKAGE my_application_package
MODIFY RELEASE CHANNEL DEFAULT
SET RELEASE DIRECTIVE my_custom_release_directive
ACCOUNTS = ( USER_ACCOUNT.snowflakecomputing.com )
VERSION = v2
PATCH = 0;
Cette commande définit la directive de version personnalisée nommée my_custom_release_directive sur la version v2 et le correctif 0 pour le compte USER_ACCOUNT. snowflakecomputing.com.
Pour plus d’informations, voir Set the release directive for an app (Legacy).
Mise à niveau manuelle d’une application¶
Les mises à niveau manuelles permettent à un consommateur de mettre à jour son programme d’installation plus rapidement que les mises à niveau automatisées. Lorsqu’une nouvelle version ou un nouveau correctif est disponible, un fournisseur peut demander au consommateur d’effectuer une mise à niveau manuelle.
Le consommateur effectue une mise à niveau manuelle en exécutant le programme ALTER APPLICATION. Cette commande lance la mise à niveau d’une version installée ou d’un correctif d’une application en utilisant la directive de version spécifiée dans le canal de version.
Pour mettre à niveau une Snowflake Native App installée à la dernière version disponible, un consommateur peut utiliser la clause UPGRADE de la commande ALTER APPLICATION pour modifier l’application :
ALTER APPLICATION <name> UPGRADE
Mise à niveau d’une application dans plusieurs régions¶
Après la mise à niveau d’une application, les modifications apportées à l”Snowflake Native App dans le compte du consommateur peuvent ne pas être visibles tant que l’actualisation des régions distantes n’est pas effectuée.
Vous pouvez utiliser le Vue APPLICATION_STATE dans le schéma Utilisation de Data Sharing pour contrôler le statut. Si la mise à niveau n’est pas terminée plus d’un jour après la première actualisation suivant la mise à niveau, il se peut qu’il y ait un problème avec le processus d’actualisation. Contactez l’assistance Snowflake.
Si un fournisseur publie une Snowflake Native App via Exécution automatique inter-Cloud, les mises à niveau automatisées peuvent prendre un certain temps en fonction de plusieurs facteurs, notamment :
La valeur de la planification d’actualisation.
Le nombre d’instances installées de l’application.
Le nombre de régions dans lesquelles l’application est déployée.
Si la mise à niveau contient une correction urgente qui doit être mise à jour dans une région distante, le fournisseur peut réduire la fréquence d’actualisation de l’annonce à une valeur plus petite. Consultez Gestion et suivi des paramètres d’exécution automatique pour obtenir des informations sur le paramétrage de la fréquence d’actualisation au niveau du compte.
Prudence
La réduction de la fréquence d’actualisation peut augmenter les coûts associés à la réplication.
États de mise à niveau¶
Au cours du processus de mise à niveau, l’application passe par différents états. Le diagramme suivant montre les états possibles lors de la mise à niveau de la version précédente, v1, vers une nouvelle version, v2.
Note
Bien que ce diagramme montre une mise à niveau pour une version, il s’applique également aux mises à niveau de correctifs.
Le tableau suivant présente chaque zone de préparation de la procédure de mise à niveau pour une application dans la même région que celle où se trouve le paquet d’application :
Zone de préparation |
Description |
|
|---|---|---|
1 |
L’application est désactivée ? |
Si l’application est désactivée, aucune mise à niveau n’est possible. |
2 |
Définir les directives de version sur v2.0 |
Le fournisseur définit la directive de version sur v2.0. |
3 |
Éligible à la mise à niveau |
Snowflake effectue des contrôles pour vérifier que l’application est éligible à la mise à niveau. Ces contrôles consistent notamment à vérifier que l’application n’est pas désactivée, que le paquet d’application est disponible, que la version et le correctif sont valables pour la mise à niveau, que le compte du consommateur est valide, etc. |
4 |
Obtenir un emplacement de mise à niveau ? |
En fonction du nombre d’applications en cours de mise à niveau, du nombre de comptes de consommateurs, etc. il se peut qu’ils doivent attendre avant de commencer le processus de mise à niveau. |
5 |
Le script d’installation s’est-il déroulé correctement ? |
Lorsque la mise à niveau commence, Snowflake exécute le script d’installation. En cas d’erreur non détectée, l’exécution du script d’installation s’arrête. Snowflake remet l’application en file d’attente pour une nouvelle mise à niveau en fonction du nombre de tentatives configurées. |
6 |
La version est-elle mise à jour ? |
Snowflake vérifie si la mise à niveau concerne une version ou un correctif. Si la mise à niveau concerne une version, Snowflake effectue des contrôles supplémentaires et attend que tous les travaux de l’ancienne version de l’appli soient terminés. |
Le tableau suivant présente le processus de mise à niveau pour les applications déployées dans des régions distantes :
Zone de préparation |
Description |
|
|---|---|---|
7 |
Directive de version v2.0 répliquée dans une région distante |
Lorsqu’un fournisseur définit la directive de version pour une application déployée dans une région distante, la directive de version est propagée au paquet d’application déployé dans la région distante. |
8 |
Région active pour la version v2.0 ? |
Lorsque la plupart des applications de la région principale ont été mises à niveau, Snowflake envoie des messages à la région distante pour commencer la mise à niveau des applications. |
9 |
Commencer le processus de mise à niveau |
Commencez le processus de mise à niveau de l’application comme décrit dans le tableau précédent. |
La tableau suivant décrit chacun des états possibles du processus de mise à niveau :
État |
Description |
|---|---|
DISABLED |
L’application est désactivée et ne peut pas être mise à niveau. |
QUEUED |
L’application est dans la file d’attente pour être mise à niveau en fonction du nombre d’applications et de comptes de consommateurs. |
UPGRADING |
L’application est en cours de mise à niveau. |
COMPLETED |
L’application a été mise à niveau avec succès. |
QUEUED_RETRY |
Le script de configuration ou un autre contrôle a échoué et l’application est renvoyée dans la file d’attente de mise à niveau. |
FAILED |
La mise à niveau de l’application a échoué. Les mises à niveau peuvent échouer du côté du fournisseur, par exemple en raison d’une erreur dans le script d’installation. Les mises à niveau peuvent également échouer du côté du consommateur si l’application est désactivée, si le compte du consommateur est inactif, etc. |
Contrôler l’état d’une mise à niveau¶
Pour voir l’état de la mise à niveau d’une application, utilisez la rubrique Vue APPLICATION_STATE.
Par exemple, dans une situation où vous avez mis à niveau la directive de version par défaut et souhaitez voir si toutes les applications ont atteint la version cible. Pour trouver les instances d’application qui n’ont pas encore terminé la mise à niveau, utilisez la requête de l’exemple suivant :
SELECT * FROM snowflake.data_sharing_usage.APPLICATION_STATE
Cette vue comprend des colonnes spécifiques aux mises à niveau, notamment l’état de mise à niveau et la région dans laquelle l’application est déployée. Pour des informations sur les états de mise à niveau, voir États de mise à niveau.
Résoudre les problèmes de mise à niveau¶
Le Snowflake Native App Framework fournit plusieurs moyens de résoudre les problèmes liés à la mise à niveau, comme décrit dans les sections suivantes :
Identifier les erreurs de mise à niveau¶
Les consommateurs peuvent utiliser la commande DESCRIBE APPLICATION pour voir les messages d’erreur relatifs aux échecs de mise à niveau. Cette commande permet de connaître les erreurs qui se sont produites au cours du processus de mise à niveau.
Les fournisseurs peuvent utiliser le Vue APPLICATION_STATE pour voir les messages d’erreur concernant les échecs de mise à niveau. Grâce à cette vue, les fournisseurs peuvent diagnostiquer les problèmes liés à des applications spécifiques. Pour plus d’informations, voir Contrôler l’état d’une mise à niveau.
Utiliser la journalisation et le traçage des événements¶
Si la journalisation et le traçage des événements est configuré pour l’application, les fournisseurs peuvent interroger la table des événements pour diagnostiquer les problèmes liés à la mise à niveau de l’application.
Pour plus d’informations, voir Voir les journaux et les événements dans la table d’événements.
Contrôler l’état des services d’une application¶
Pour voir les informations sur le statut d’un pool de calcul ou d’un service dans une application, les consommateurs peuvent utiliser les fonctions système suivantes :
Les consommateurs peuvent transmettre ces informations aux fournisseurs. Les fournisseurs peuvent également configurer le partage d’événements pour qu’il renvoie ces informations.
Applications désactivées¶
Lorsqu’une application installée dans le compte du consommateur est désactivée, elle n’est plus utilisable. Une application installée sur le compte d’un consommateur peut être désactivée pour de multiples raisons, notamment :
Problèmes liés au paquet d’application
Problèmes liés à l’application installée
Problèmes avec le compte consommateur
Les fournisseurs comme les consommateurs doivent éviter les situations où une application reste désactivée pendant une période prolongée. Les applications désactivées peuvent devenir inutilisables et doivent être réinstallées
Mise à niveau d’une application désactivée¶
Les applications désactivées ne font pas partie du processus normal de mise à niveau et ne peuvent pas être mises à niveau. Si une application désactivée est réactivée, elle est automatiquement mise à niveau vers la version et le correctif de la directive de version. Toutefois, si la version ou le correctif n’est plus disponible, l’application ne peut pas être mise à niveau et doit être réinstallée.
Par exemple, si une application désactivée est de la version v1, mais que les versions actuelle et précédente du canal de version sont v2 et v3, l’application ne peut pas être mise à niveau et est inutilisable.
Raisons pour lesquelles une application peut être désactivée¶
Vous pouvez consulter la colonne DISABLEMENT_REASONS de Vue APPLICATION_STATE pour connaître les raisons pour lesquelles une application est désactivée. Le tableau suivant répertorie les valeurs possibles pour la colonne DISABLEMENT_REASONS :
Valeur |
Description du statut |
Est-ce récupérable ? |
|---|---|---|
MANUALLY_DISABLED |
L’application est désactivée par Snowflake |
Oui. Pour réactiver l’application, contactez le support Snowflake. |
ACCOUNT_INACTIVE |
Le compte devient inactif en étant verrouillé ou suspendu, ce qui rend l’application indisponible. Dans cet état, un consommateur ne peut exécuter aucune requête SQL dans leur compte et l’application ne peut pas être mise à niveau. |
Oui. L’application est automatiquement réactivée si le verrouillage ou la suspension du compte est supprimé |
PACKAGE_VERSION_IS_MISSING |
La version du paquet d’application pour l’application a été supprimée par le fournisseur. |
Non. L’application ne peut plus être utilisée et doit être supprimée et réinstallée à partir d’une annonce ou d’un paquet d’application valide. |
CMK_ACCESS_DENIED |
Le consommateur gère lui-même la clé de chiffrement (ENCRYPT_USE_CMK_KMS est activé) et Snowflake n’a pas accès à cette clé. |
Oui. Pour réactiver l’application, assurez-vous que la configuration du fournisseur Cloud permet de récupérer le CMK est correcte et que Snowflake a accès à la clé. |
LISTING_ACCESS_REVOKED |
L’annonce utilisée pour créer l’application n’est plus disponible. Les raisons possibles de ce statut incluent :
|
Peut-être. La récupérabilité dépend de la raison pour laquelle l’accès a été révoqué. Par exemple, si l’annonce a été supprimée, elle ne peut pas être récupérée. Si un compte consommateur a été supprimé manuellement de l’annonce privée, l’accès à l’annonce et à l’application peut être restauré. |
LISTING_TRIAL_USAGE_EXCEEDED |
L’application a dépassé la limite d’utilisation pour une annonce d’essai basée sur l’utilisation. |
Non |
LISTING_PAYMENT_REQUIRED |
L’annonce utilisée pour installer l’application est une annonce payante et nécessite un paiement pour une utilisation ultérieure. |
Oui. Le consommateur doit configurer correctement le paiement de l’application. |
LISTING_TRIAL_TIME_EXCEEDED |
L’application a dépassé la durée de l’essai. |
Non |
APPLICATION_PACKAGE_NOT_AVAILABLE |
Le paquet d’application utilisé pour créer l’application n’existe plus. Il est possible que le fournisseur ait supprimé le paquet d’application correspondant. |
Non |
APPLICATION_PACKAGE_DISABLED |
Le paquet d’application utilisé pour créer l’application est désactivé par Snowflake. |
Oui. L’application est réactivée si Snowflake réactive le paquet d’application. |
APPLICATION_SUSPENDED |
Les ressources de l’application, par exemple les tâches, les services et les pools de calcul, sont suspendues en raison de la désactivation de l’application. Les objets suspendus restent suspendus jusqu’à ce que l’application soit réactivée et qu’il n’y ait aucune autre raison pour laquelle l’application a été désactivée. |
Oui |
APPLICATION_SUSPEND_RESUME_IN_PROGRESS |
Les ressources de l’application, par exemple les tâches, les services et les pools de calcul, reprennent actuellement. |
Oui |