Eine App aktualisieren¶
Unter diesem Thema finden Sie Informationen zum Upgrade einer Snowflake Native App.
Allgemeine Informationen zu Upgrades¶
Das Snowflake Native App Framework ermöglicht es Anbietern, eine App auf eine neue Version oder einen neuen Patch zu aktualisieren. Wie sich Upgrades in den Gesamtworkflow für die Entwicklung einer neuen Version oder eines Patches einer Anwendung einfügen, erfahren Sie unter Workflow für die Aktualisierung einer App.
Anbieter können ein Upgrade einer Anwendung auf eine neue Version oder einen neuen Patch initiieren, indem sie eine Release-Richtlinie für das Anwendungspaket festlegen. Wenn die Release-Richtlinie geändert wird, aktualisiert Snowflake automatisch alle installierten Instanzen der aktuellen Version der App auf die in der Release-Richtlinie angegebene Version.
Wenn der Anbieter ein Upgrade initiiert, fügt Snowflake jede zu aktualisierende App einer Warteschlange hinzu. Jede App wird aktualisiert, sobald Ressourcen verfügbar sind. Es kann eine Weile dauern, bis der Upgrade-Prozess für alle installierten Versionen der App abgeschlossen ist. Um den Upgrade-Prozess zu beschleunigen, können Verbraucher auch manuell ein Upgrade einer App initiieren, wenn eine neue Version oder ein neuer Patch verfügbar ist.
Bemerkung
Nachdem der Upgrade-Prozess für ihre App begonnen hat, können Verbraucher die App nicht mehr manuell aktualisieren.
Upgrade-Workflow¶
Ein Anbieter aktualisiert eine installierte App mithilfe des folgenden Workflows:
Aktualisieren Sie die App, um neue Features aufzunehmen.
Wenn Sie eine neue Version der App erstellen und derzeit zwei Versionen für die App definiert sind:
Vergewissern Sie sich, dass derzeit keine Verbraucher die Version verwenden.
Geben Sie die Version der App ein, die Sie ersetzen möchten.
Erstellen Sie eine neue Version oder einen neuen Patch für die Änderungen im Anwendungspaket.
Wenn die Eigenschaft DISTRIBUTION des Anwendungspakets auf
EXTERNAL
gesetzt ist, wird der automatische Sicherheitsscan initiiert. Der Sicherheitsscan muss bestanden werden, bevor das Upgrade durchgeführt werden kann.Testen Sie die neue Version, indem Sie die App in Ihrem Testkonto installieren.
Aktualisieren Sie die Release-Richtlinie für die Version oder den Patch.
Dadurch wird ein automatisches Upgrade initiiert, bei dem alle installierten Instanzen der vorherigen Version aktualisiert werden. Ein Anbieter kann den Verbraucher benachrichtigen, dass ein Upgrade verfügbar ist und ihn bitten, die App manuell zu aktualisieren.
Starten Sie ein Upgrade¶
Der Upgrade-Prozess startet automatisch, wenn ein Anbieter die Release-Richtlinie (Standard oder benutzerdefiniert) des Anwendungspakets aktualisiert, um auf eine neue Version oder einen neuen Patch zu verweisen. Verwenden Sie den Befehl ALTER APPLICATION PACKAGE … RELEASE DIRECTIVE, um die Release-Richtlinie wie in den folgenden Beispielen gezeigt zu setzen:
ALTER APPLICATION PACKAGE my_application_package SET DEFAULT RELEASE DIRECTIVE
VERSION = v2
PATCH = 0;
Dieser Befehl setzt die Standard-Release-Richtlinie auf Version v2
und Patch 0
.
ALTER APPLICATION PACKAGE my_application_package
SET RELEASE DIRECTIVE my_custom_release_directive
ACCOUNTS = ( USER_ACCOUNT.snowflakecomputing.com )
VERSION = v2
PATCH = 0;
Dieser Befehl setzt die kundenspezifische Release-Richtlinie mit dem Namen my_custom_release_directive
für das Konto USER_ACCOUNT. snowflakecomputing.com. auf die Version v2
und den Patch 0
.
Weitere Informationen dazu finden Sie unter Release-Richtlinie für eine App festlegen.
Manuelles Upgrade einer App¶
Mit manuellen Upgrades kann ein Verbraucher seine installierte App schneller aktualisieren als mit automatischen Upgrades. Wenn eine neue Version oder ein Patch verfügbar ist, kann ein Anbieter den Verbraucher auffordern, ein manuelles Upgrade durchzuführen.
Der Verbraucher führt ein manuelles Upgrade durch, indem er das Programm ALTER APPLICATION ausführt. Dieser Befehl initiiert das Upgrade einer installierten Version oder eines installierten Patches einer App unter Verwendung der im Anwendungspaket angegebenen Release-Richtlinie.
Um eine installierte Snowflake Native App auf die neueste verfügbare Version zu aktualisieren, kann ein Verbraucher die UPGRADE-Klausel des ALTER APPLICATION-Befehls verwenden, um das Anwendungsobjekt zu ändern:
ALTER APPLICATION <name> UPGRADE
Regionsübergreifendes Upgrade einer App¶
Nach dem Upgrade einer App sind Änderungen an der installierten Snowflake Native App im Benutzerkonto möglicherweise erst sichtbar, wenn die Aktualisierung in Remoteregionen durchgeführt wurde.
Sie können die Ansicht APPLICATION_STATE im Schema Nutzung von Data Sharing verwenden, um den Status zu überwachen. Wenn das Upgrade mehr als einen Tag nach der erstmaligen Aktualisierung (Refresh), die auf das Upgrade folgt, nicht abgeschlossen ist, liegt möglicherweise ein Problem mit dem Aktualisierungsprozess vor. Wenden Sie sich an den Snowflake-Support.
Wenn ein Anbieter eine Snowflake Native App mithilfe der Cloud-übergreifenden automatische Ausführung veröffentlicht hat, können automatische Upgrades abhängig von den folgenden Faktoren einige Zeit in Anspruch nehmen:
Wert für der Aktualisierungshäufigkeit im Aktualisierungszeitplan
Anzahl der installierten Instanzen der App
Anzahl der Regionen, in denen die App eingesetzt wird
Wenn das Upgrade eine dringende Korrektur enthält, die in einer Remoteregion aktualisiert werden muss, kann der Anbieter die Aktualisierungshäufigkeit des Freigabeangebots auf einen kleineren Wert reduzieren. Informationen zum Einstellen der Aktualisierungshäufigkeit auf Kontoebene finden Sie unter Überwachen und Verwalten der Einstellungen für die automatische Auftragsausführung.
Vorsicht
Das Verringern der Aktualisierungshäufigkeit kann zu einer Erhöhung der mit der Replikation verbundenen Kosten führen.
Upgrade-Status¶
Während des Upgrade-Prozesses durchläuft die App verschiedene Status. Das folgende Diagramm zeigt die möglichen Status beim Upgrade von der Vorgängerversion v1 auf eine neue Version v2.
Bemerkung
Obwohl dieses Diagramm ein Upgrade für eine Version zeigt, gilt es auch für Patch-Upgrades.

Die folgende Tabelle zeigt die einzelnen Stagingbereiche des Upgrade-Prozesses für eine App in derselben Region, in der sich das Anwendungspaket befindet:
Stagingbereich |
Beschreibung |
|
---|---|---|
1 |
Ist App deaktiviert? |
Wenn die App deaktiviert ist, ist kein Upgrade möglich. |
2 |
Release-Richtlinie auf v2.0 setzen |
Der Anbieter setzt die Release-Richtlinie auf v2.0. |
3 |
Berechtigt zum Upgrade |
Snowflake führt Überprüfungen durch, um sicherzustellen, dass die App für ein Upgrade geeignet ist. Diese Prüfungen umfassen die Überprüfung, ob die Anwendung nicht deaktiviert ist, ob das Anwendungspaket verfügbar ist, ob die Version und der Patch für das Upgrade gültig sind, ob das Verbraucherkonto gültig ist usw. |
4 |
Upgrade-Slot erhalten? |
Abhängig von der Anzahl der zu aktualisierenden Anwendungen, der Anzahl der Konten usw. kann es sein, dass sie warten müssen, bis der Upgrade-Prozess beginnt. |
5 |
Setup-Skript erfolgreich ausgeführt? |
Wenn das Upgrade beginnt, führt Snowflake das Setup-Skript aus. Wenn ein nicht abgefangener Fehler auftritt, wird die Ausführung des Setup-Skripts abgebrochen. Snowflake stellt die App basierend auf der Anzahl der konfigurierten Wiederholungsversuche erneut für ein Upgrade in die Warteschlange. |
6 |
Ist die Version aktualisiert? |
Snowflake prüft, ob es sich um ein Upgrade für eine Version oder einen Patch handelt. Wenn es sich um ein Versions-Upgrade handelt, führt Snowflake zusätzliche Prüfungen durch und wartet, bis alle Jobs der älteren Version der App abgeschlossen sind. |
Die folgende Tabelle zeigt den Upgrade-Prozess für Apps, die in Remote-Regionen eingesetzt werden:
Stagingbereich |
Beschreibung |
|
---|---|---|
7 |
Release-Richtlinie v2.0 in Remoteregion repliziert |
Wenn ein Anbieter die Release-Richtlinie für eine Anwendung festlegt, die in einer entfernten Region bereitgestellt wird, wird die Release-Richtlinie auf das in der entfernten Region bereitgestellte Anwendungspaket übertragen. |
8 |
Aktive Region für v2.0? |
Wenn die meisten Apps in der primären Region aktualisiert wurden, sendet Snowflake Nachrichten an die Remoteregion, um das App-Upgrade zu starten. |
9 |
Upgrade-Prozess beginnen |
Beginnen Sie den Upgrade-Prozess für die App wie in der vorherigen Tabelle beschrieben. |
Die folgende Tabelle beschreibt jeden der möglichen Status des Upgrade-Prozesses:
Status |
Beschreibung |
---|---|
DISABLED |
App ist deaktiviert und kann nicht aktualisiert werden. |
QUEUED |
Die App befindet sich in der Warteschlange für ein Upgrade, das auf der Anzahl der Apps und Verbraucherkonten basiert. |
UPGRADING |
App wird zur Zeit aktualisiert. |
COMPLETED |
App wurde erfolgreich aktualisiert. |
QUEUED_RETRY |
Das Setup-Skript oder eine andere Prüfung ist fehlgeschlagen und die App wird in die Upgrade-Warteschlange zurückgestellt. |
FAILED |
Die Aktualisierung der App ist fehlgeschlagen. Upgrades können auf Anbieterseite fehlschlagen, zum Beispiel aufgrund eines Fehlers im Setup-Skript. Upgrades können auch auf der Verbraucherseite fehlschlagen, wenn die App deaktiviert ist, das Konto des Verbrauchers inaktiv ist usw. |
Überwachen des Status eines Upgrades¶
Um den Upgrade-Status einer App anzuzeigen, verwenden Sie Ansicht APPLICATION_STATE.
Beispielsweise in einer Situation, in der Sie die Standard-Release-Richtlinie aktualisiert haben und sehen möchten, ob alle Apps die Zielversion erreicht haben. Um Anwendungsinstanzen zu finden, die das Upgrade noch nicht abgeschlossen haben, verwenden Sie die Abfrage im folgenden Beispiel:
SELECT * FROM snowflake.data_sharing_usage.APPLICATION_STATE
Diese Ansicht enthält Spalten, die für Upgrades spezifisch sind, einschließlich des Upgrade-Status und der Region, in der die App bereitgestellt wird. Informationen zum Upgrade-Status finden Sie unter Upgrade-Status.
Behandlung von Upgrade-Problemen¶
Das Snowflake Native App Framework bietet verschiedene Möglichkeiten zur Problembehandlung:
Identifizieren von Upgrade-Fehlern¶
Verbraucher können den Befehl DESCRIBE APPLICATION verwenden, um Fehlermeldungen zu fehlgeschlagenen Upgrades anzuzeigen. Dieser Befehl gibt Aufschluss über die Fehler, die während des Upgrade-Prozesses aufgetreten sind.
Anbieter können die Ansicht APPLICATION_STATE verwenden, um Fehlermeldungen zu fehlgeschlagenen Upgrades anzuzeigen. Mit dieser Ansicht können Anbieter Probleme mit bestimmten Anwendungen diagnostizieren. Weitere Informationen dazu finden Sie unter Überwachen des Status eines Upgrades.
Protokollierung und Ereignisablaufverfolgung verwenden¶
Wenn Protokollierung und Ablaufverfolgung für die App konfiguriert sind, können Anbieter die Ereignistabelle abfragen, um Probleme mit dem App-Upgrade zu diagnostizieren.
Weitere Informationen dazu finden Sie unter In Ereignistabelle gespeicherte Protokolleinträge und Ereignisse anzeigen.
Überwachen des Status der Dienste einer App¶
Um Informationen über den Status eines Computepools oder Dienstes innerhalb einer App anzuzeigen, können Verbraucher die folgenden Systemfunktionen verwenden:
Verbraucher können diese Informationen an die Anbieter weitergeben. Anbieter können die Ereignisfreigabe auch so konfigurieren, dass diese Informationen zurückgegeben werden.
Deaktivierte Apps¶
Wenn eine im Verbraucherkonto installierte App deaktiviert wird, ist sie nicht mehr nutzbar. Eine App, die auf einem Konto installiert ist, kann aus verschiedenen Gründen deaktiviert werden, z. B:
Probleme mit dem Anwendungspaket
Probleme mit der installierten Anwendung
Probleme mit dem Verbraucherkonto
Sowohl Anbieter als auch Verbraucher sollten Situationen vermeiden, in denen eine App über einen längeren Zeitraum deaktiviert bleibt. Deaktivierte Anwendungen können unbrauchbar werden und müssen neu installiert werden
Upgrade einer deaktivierten App¶
Deaktivierte Anwendungen sind nicht Teil des normalen Upgrade-Prozesses und können nicht aktualisiert werden. Wenn eine deaktivierte Anwendung wieder aktiviert wird, wird sie automatisch auf die Version und den Patch der Release-Richtlinie aktualisiert. Wenn die Version oder der Patch jedoch nicht mehr verfügbar ist, kann die App nicht mehr aktualisiert werden und muss neu installiert werden.
Wenn beispielsweise eine deaktivierte Anwendung auf der Version v1
ist, die aktuelle und die vorherige Version im Anwendungspaket aber v2
und v3
sind, kann die Anwendung nicht aktualisiert werden und ist unbrauchbar.
Gründe, warum eine App deaktiviert werden kann¶
Sie können die Spalte DISABLEMENT_REASONS auf Ansicht APPLICATION_STATE anzeigen, um die Gründe für die Deaktivierung einer App zu erfahren. In der folgenden Tabelle finden Sie eine Auflistung der möglichen Werte für die Spalte DISABLEMENT_REASONS:
Wert |
Statusbeschreibung |
Ist es wiederherstellbar? |
---|---|---|
MANUALLY_DISABLED |
Die App wird von Snowflake deaktiviert |
Ja. Um die App wieder zu aktivieren, wenden Sie sich an den Snowflake Support. |
ACCOUNT_INACTIVE |
Das Konto wird inaktiv, indem es gesperrt oder ausgesetzt wird, wodurch die App nicht mehr verfügbar ist. In diesem Status kann ein Verbraucher keine SQL-Abfragen in seinem Konto ausführen und die App kann nicht aktualisiert werden. |
Ja. Die App wird automatisch wieder aktiviert, wenn die Kontosperre oder -aussetzung aufgehoben wird. |
PACKAGE_VERSION_IS_MISSING |
Die Version des Anwendungspakets für die App wurde vom Anbieter gelöscht. |
Nein. Die App ist nicht mehr nutzbar und muss gelöscht und aus einem gültigen Freigabeangebot oder einem gültigen Paket neu installiert werden. |
CMK_ACCESS_DENIED |
Der Verbraucher verwaltet den Schlüssel für die Verschlüsselung selbst (ENCRYPT_USE_CMK_KMS ist aktiviert) und Snowflake hat keinen Zugriff auf diesen Schlüssel. |
Ja. Um die App wieder zu aktivieren, stellen Sie sicher, dass die Konfiguration des Cloud-Anbieters zum Abrufen des CMK korrekt ist und dass Snowflake Zugriff auf den Schlüssel hat. |
LISTING_ACCESS_REVOKED |
Das Freigabeangebot, das zur Erstellung der App verwendet wurde, ist nicht mehr verfügbar. Mögliche Gründe für diesen Status sind:
|
Möglicherweise. Die Wiederherstellbarkeit hängt von dem Grund ab, warum der Zugriff widerrufen wurde. Wenn das Freigabeangebot zum Beispiel gelöscht wurde, kann es nicht wiederhergestellt werden. Wenn ein Verbraucherkonto manuell aus dem privaten Freigabeangebot entfernt wurde, kann der Zugriff auf das Freigabeangebot und die App wiederhergestellt werden. |
LISTING_TRIAL_USAGE_EXCEEDED |
Die Anwendung hat die Nutzungsgrenze für ein nutzungsbasiertes Freigabeangebot überschritten. |
Nein |
LISTING_PAYMENT_REQUIRED |
Das Freigabeangebot, das zur Installation der App verwendet wird, ist ein kostenpflichtiges Freigabeangebot und erfordert eine Zahlung für die weitere Nutzung. |
Ja. Der Verbraucher muss die Zahlung für die App korrekt festlegen. |
LISTING_TRIAL_TIME_EXCEEDED |
Die Anwendung hat die Versuchsdauer überschritten. |
Nein |
APPLICATION_PACKAGE_NOT_AVAILABLE |
Das Anwendungspaket, mit dem die App erstellt wurde, existiert nicht mehr. Der Anbieter hat möglicherweise das entsprechende Anwendungspaket gelöscht. |
Nein |
APPLICATION_PACKAGE_DISABLED |
Das Anwendungspaket, das zur Erstellung der App verwendet wurde, wurde von Snowflake deaktiviert. |
Ja. Die Anwendung wird wieder aktiviert, wenn Snowflake das Anwendungspaket wieder aktiviert. |
APPLICATION_SUSPENDED |
Die Ressourcen der App, z. B. Aufgaben, Dienste und Computepools, sind aufgrund der Deaktivierung der App ausgesetzt. Die ausgesetzten Objekte bleiben ausgesetzt, bis die App wieder aktiviert wird und es keine anderen Gründe für die Deaktivierung der App gibt. |
Ja |
APPLICATION_SUSPEND_RESUME_IN_PROGRESS |
Die App-Ressourcen, z. B. Aufgaben, Dienste und Computepools, werden gerade wieder fortgesetzt. |
Ja |