Versionierung, Patches und Upgrades für eine Anwendung¶
Unter diesem Thema wird beschrieben, wie Sie Versionen und Patches zu einer Anwendung hinzufügen, die mit dem Native Apps Framework erstellt wurde. Unter diesem Thema wird außerdem beschrieben, wie Sie ein versioniertes Schema verwenden, um eine nahtlose Aktualisierung der Anwendungsdateien und des Setup-Skripts Ihrer Anwendung sicherzustellen.
Allgemeine Informationen zu Versionen, Patches und Upgrades¶
Das Native Apps Framework stellt Funktionalität zur Verfügung, mit der Sie Ihre Anwendung aktualisieren oder Probleme beheben können. Außerdem bietet es eine Möglichkeit, Anwendungen nach ihrer Installation in einem Verbraucherkonto nahtlos zu aktualisieren.
Allgemeine Informationen zu Versionen und Patches¶
Im Allgemeinen verwenden Sie neue Versionen, um neue Features oder Verhaltensänderungen für eine Anwendung einzuführen. Der Upgrade- (und Rollback-)Prozess von einer Hauptversion zu einer anderen Hauptversion stellt sicher, dass kein Code einer früheren Version mehr ausgeführt werden kann. Das bedeutet, dass das Setup-Skript nur mit der unmittelbar vorhergehenden Hauptversion kompatibel sein muss.
Patches gelten als Vollversionen der Anwendung, d. h. sie werden durch ein Setup-Skript genau so definiert wie eine Hauptversion. Im Gegensatz zu Vollversions-Upgrades gibt es jedoch keine Beschränkungen hinsichtlich der Reihenfolge, in der der Anbieter diese installieren kann, und auch nicht hinsichtlich der Anzahl der Patches, deren Code gleichzeitig ausgeführt werden kann.
Zu einer gegebenen Version können mehrere Patches hinzugefügt werden. Anders als bei Versionen gibt es keine Einschränkungen bei der Installation eines Patches auf der aktuell installierten Version. Das bedeutet, dass der Code von mehreren verschiedenen Patches gleichzeitig ausgeführt werden kann, wenn diese in schneller Folge installiert werden. Das bedeutet auch, dass eine neue Version mit allen möglichen in Ausführung befindlichen Patches der Vorgängerversion kompatibel sein muss.
Erstellen von Versionen und Patches¶
Die Versionsinformationen für eine Anwendung werden im Anwendungspaket angegeben.
Hinzufügen einer Version zu einem Anwendungspaket¶
Das folgende Beispiel zeigt, wie Sie den Befehl ALTER APPLICATION PACKAGE verwenden, um einem Anwendungspaket eine Version hinzuzufügen.
ALTER APPLICATION PACKAGE MyAppPackage
ADD VERSION v1_0
USING '@dev_stage/v1_0'
LABEL = 'MyApp Version 1.0';
In diesem Beispiel ist v1_0
ein Bezeichner für die Version, die für den Verbraucher bei der Installation der Anwendung nicht sichtbar ist. Der Verbraucher sieht die Versionsinformationen, die in der Klausel LABEL-Klausel definiert sind.
Es können nur zwei Versionen einer Anwendung gleichzeitig existieren. Wenn Sie zum Beispiel v1_0 und v1_1 in einer Anwendung definiert haben, müssen Sie v1_0 löschen, um v1_2 erstellen zu können. Sie können jedoch mehrere Patches für eine einzige Version haben.
Sie können den Versionsnamen und die Bezeichnung in der Datei manifest.yml
definieren, oder Sie geben diese Informationen direkt mit dem Befehl ALTER APPLICATION PACKAGE an. Wenn Sie die Informationen sowohl in der Datei manifest.yml
als auch mit dem SQL-Befehl definieren, haben die im SQL-Befehl angegebenen Werte Vorrang vor den in der manifest.yml
-Datei angegebenen Werten.
Hinzufügen eines Patches zu einem Anwendungspaket¶
Neben dem Erstellen von Versionen für eine App können Sie auch Patches für eine bestimmte Version erstellen. Wie die Versionen haben auch die App-Patches ihre eigenen Anwendungsdateien.
Um einen neuen Patch für ein Anwendungspaket zu erstellen, verwenden Sie im Befehl ALTER APPLICATION PACKAGE die Klausel ADD PATCH FOR VERSION, wie im folgenden Beispiel gezeigt:
ALTER APPLICATION PACKAGE MyAppPackage ADD PATCH
FOR VERSION V1_0
USING '@dev_stage/v1_0_p1;
Wenn Sie die erste Version zu einem Anwendungspaket hinzufügen, wird dieser Version die Patchnummer 0 zugewiesen. Wenn Sie weitere Patches hinzufügen, erhöht Snowflake die Patchnummer um 1.
Bemerkung
Sie können die Patchnummer nicht selbst festlegen. Snowflake verwaltet die Patchnummern intern.
Anzeigen der Versionen und Patches eines Anwendungspakets¶
Als Anbieter können Sie die für eine Anwendung definierten Versionen und Patches anzeigen, indem Sie den Befehl SHOW VERSIONS auf dem Anwendungspaket ausführen.
Mit dem folgenden Befehl werden die Versionen und Patches angezeigt, die für ein Anwendungspaket namens HelloSnowflakePackage
definiert wurden:
SHOW VERSIONS IN APPLICATION PACKAGE HelloSnowflakePackage;
Entfernen einer Version aus einem Anwendungspaket¶
Um eine Version aus einem Anwendungspaket zu entfernen, verwenden Sie im Befehl ALTER APPLICATION PACKAGE die Klausel DROP VERSION, wie im folgenden Beispiel gezeigt:
ALTER APPLICATION PACKAGE HelloSnowflakePackage
DROP VERSION v1_0;
Bemerkung
Das Löschen einer Version, die zu diesem Zeitpunkt noch von einer installierten Anwendung verwendet wird, kann dazu führen, dass diese Version so lange nicht verwendbar ist, bis die installierte Anwendung aktualisiert wird.
Dieser Befehl ist erst dann abgeschlossen, wenn alle Anwendungen auf eine neue Version aktualisiert wurden. Seien Sie vorsichtig, wenn Sie eine Version löschen, die aktuell von einem Verbraucherkonto verwendet wird.
Festlegen der Freigaberichtlinie für ein Anwendungspaket¶
Nachdem Sie eine Version zu einem Anwendungspaket hinzugefügt haben, können Sie eine Freigaberichtlinie für das Anwendungspaket angeben. Mit der Freigaberichtlinien wird festgelegt, welche Version der Anwendung einem Verbraucher zur Verfügung gestellt wird, wenn dieser die Anwendung installiert.
Allgemeine Informationen zu Freigaberichtlinien¶
Sie können für ein Anwendungspaket eine Standard-Freigaberichtlinie festlegen. Die Standard-Freigaberichtlinie gibt die Version an, die bei Installation einer Anwendung bei allen Verbrauchern angewendet wird. Wenn Sie beispielsweise von einer Anwendung eine Version V1 und eine Version V2 erstellt haben, können Sie durch Festlegen von V2 in der Standard-Freigaberichtlinie sicherstellen, dass ein Verbraucher bei der Installation der Anwendung die Version V2 installiert.
Sie können zu einem Anwendungspaket auch eine kundenspezifische Freigaberichtlinie hinzufügen. Mit kundenspezifischen Freigaberichtlinien können Sie festlegen, welche Version einer Anwendung von bestimmten Snowflake-Konten installiert wird.
Wenn Sie beispielsweise von einer Anwendung eine Version V2 und eine Version V3 erstellt haben, können Sie V2 als Standard-Release festlegen, und dann können Sie über eine kundenspezifische Freigaberichtlinie festlegen, dass bei bestimmten Konten V3 freigegeben wird. Ein typischer Anwendungsfall für kundenspezifische Freigaberichtlinien ist die Freigabe einer Anwendung für das Verbraucherkonto, das Sie zum Testen verwenden.
Bemerkung
Wenn Sie sowohl eine Standard- als auch eine kundenspezifische Freigaberichtlinie angeben, hat die kundenspezifische Freigaberichtlinie immer Vorrang. Im obigen Beispiel können Verbraucherkonten, die in der kundenspezifischen Freigaberichtlinie angegeben sind, nur Version V3 der Anwendung installieren.
Das Definieren einer Freigaberichtlinie für ein Anwendungspaket ist erforderlich, damit Sie Folgendes tun können:
Installieren einer Anwendung im Verbraucherkonto
Erstellen eines privaten Freigabeangebots für ein Anwendungspaket
Erforderliche Berechtigungen zum Festlegen der Freigaberichtlinie¶
Für das Angeben einer Freigaberichtlinie ist die Berechtigung MANAGE RELEASES oder die Eigentümerschaft an dem Anwendungspaket erforderlich.
GRANT MANAGE RELEASES ON APPLICATION PACKAGE HelloSnowflakePackage
TO ROLE release_mgr;
Festlegen der Standard-Freigaberichtlinie für ein Anwendungspaket¶
Verwenden Sie zum Festlegen der Standard-Freigaberichtlinie den Befehl ALTER APPLICATION PACKAGE mit SET DEFAULT RELEASE DIRECTIVE, wie im folgenden Beispiel gezeigt:
ALTER APPLICATION PACKAGE HelloSnowflakePackage
SET DEFAULT RELEASE DIRECTIVE
VERSION = v1_0
PATCH = 2;
Um die Standard-Freigaberichtlinie für ein Anwendungspaket zu aktualisieren, führen Sie den Befehl ALTER APPLICATION PACKAGE erneut mit SET DEFAULT RELEASE DIRECTIVE aus, wobei Sie neue Werte für VERSION und PATCH angeben.
Hinzufügen einer kundenspezifischen Freigaberichtlinie zu einem Anwendungspaket¶
Um eine kundenspezifische Freigaberichtlinie hinzuzufügen, verwenden Sie den Befehl ALTER APPLICATION PACKAGE mit SET RELEASE DIRECTIVE. Verwenden Sie die Klausel ACCOUNTS, um die Konten anzugeben, für die diese Freigaberichtlinie gelten soll. Beispiel:
ALTER APPLICATION PACKAGE HelloSnowflakePackage
SET RELEASE DIRECTIVE HelloSnowflakePackage_Custom
ACCOUNTS = (CONSUMER_ORG.CONSUMER_ACCOUNT)
VERSION = v1_0
PATCH = 0;
Nachdem Sie eine kundenspezifische Freigaberichtlinie zu einem Anwendungspaket hinzugefügt haben, können Sie für die Freigaberichtlinie Version und Patch aktualisieren, indem Sie ALTER APPLICATION PACKAGE mit MODIFY RELEASE DIRECTIVE ausführen und die neuen Werte für VERSION und PATCH angeben.
Sie können jedoch nicht die Konten ändern, die der Freigaberichtlinie zugeordnet sind. Um die Organisation und das Konto zu ändern, die einer Freigaberichtlinie zugeordnet sind, gehen Sie wie folgt vor:
Entfernen Sie die Freigaberichtlinie aus dem Anwendungspaket, indem Sie den Befehl ALTER APPLICATION PACKAGE mit UNSET RELEASE DIRECTIVE ausführen.
Fügen Sie die Freigaberichtlinie wieder zum Anwendungspaket hinzu, indem Sie den Befehl ALTER APPLICATION PACKAGE mit SET RELEASE DIRECTIVE ausführen und dabei mit der Klausel ACCOUNTS die Liste der Konten angeben.
Aktualisieren der kundenspezifischen Freigaberichtlinie eines Anwendungspakets¶
Um die Version oder den Patch für eine kundenspezifische Freigaberichtlinie zu aktualisieren, verwenden Sie den Befehl ALTER APPLICATION PACKAGE mit MODIFY RELEASE DIRECTIVE wie im folgenden Beispiel gezeigt:
ALTER APPLICATION PACKAGE HelloSnowflakePackage
MODIFY RELEASE DIRECTIVE HelloSnowflakePackage_Custom
VERSION = v1_0
PATCH = 0;
Entfernen einer kundenspezifischen Freigaberichtlinie aus einem Anwendungspaket¶
Um eine kundenspezifische Freigaberichtlinie aus einem Anwendungspaket zu entfernen, verwenden Sie den Befehl ALTER APPLICATION PACKAGE mit UNSET RELEASE DIRECTIVE wie im folgenden Beispiel gezeigt:
ALTER APPLICATION PACKAGE HelloSnowflakePackage
UNSET RELEASE DIRECTIVE HelloSnowflakePackage_Custom;
Freigeben von Versionen und Patches¶
Wenn Sie eine Anwendung aus einem Anwendungspaket im Entwicklungsmodus installieren, werden die Version und der Patch explizit angegeben. Anders ist dies jedoch bei einer normalen Installation einer Anwendung, wie z. B.:
CREATE APPLICATION HelloSnowflake
FROM APPLICATION PACKAGE HelloSnowflakePackage
In diesem Fall bestimmt die Freigaberichtlinie die Version, die bei der Ausführung dieses Befehls installiert wird.