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:

  1. Aktualisieren Sie die App, um neue Features aufzunehmen.

  2. Wenn Sie eine neue Version der App erstellen und derzeit zwei Versionen für die App definiert sind:

    1. Vergewissern Sie sich, dass derzeit keine Verbraucher die Version verwenden.

    2. Geben Sie die Version der App ein, die Sie ersetzen möchten.

  3. 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.

  4. Testen Sie die neue Version, indem Sie die App in Ihrem Testkonto installieren.

  5. 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;
Copy

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;
Copy

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
Copy

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.

../../_images/na-upgrade-statuses.png

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
Copy

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:

  • Der Anbieter hat das Freigabeangebot gelöscht

  • Der Anbieter hat den Zugriff auf das private Freigabeangebot manuell aus dem Konto des Verbrauchers entfernt

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