Erstellen und Verwalten eines Anwendungspakets

Unter diesem Thema wird beschrieben, wie Anbieter ein Anwendungspaket zur Entwicklung einer Snowflake Native App erstellen können.

Informationen zum Anwendungspaket

Ein Anwendungspaket ist ein Container, der die von einer Snowflake Native App genutzten Dateninhalte und die Anwendungslogik umfasst. Ein Anwendungspaket enthält außerdem Informationen zu den für eine App definierten Versionen und Patches.

Jede Version einer App erfordert ihre eigene Version des Manifests und des Setup-Skripts:

Manifest-Datei:

Die Manifest-Datei enthält Informationen, die das Anwendungspaket benötigt, um einen Snowflake Native App zu erstellen und zu verwalten. Dazu gehören der Speicherort des Setup-Skripts, die Definitionen der Versionen und die Konfigurationsinformationen für die App.

Weitere Informationen dazu finden Sie unter Manifest-Datei für eine App erstellen.

Setup-Skript:

Das Setup-Skript enthält SQL-Anweisungen, die bei der Installation der App ausgeführt werden, entweder im Konto des Verbrauchers oder lokal während Entwicklung und Test.

Weitere Informationen dazu finden Sie unter Create the setup script.

Bemerkung

Sie können ein Anwendungspaket erstellen, ohne die Manifest-Datei oder das Setup-Skript zu erstellen. Um jedoch eine App zu entwickeln oder zu testen, müssen Sie diese Dateien in einen Stagingbereich hochladen, damit sie für das Anwendungspaket zugänglich sind.

Allgemeine Informationen zu Release-Kanälen

Release-Kanäle verwalten den Release-Lebenszyklus von Snowflake Native Apps. Sie ermöglichen es Anbietern, Versionen einer App zu erstellen und zu verwalten und die App in verschiedenen Entwicklungsphasen für alle Verbraucher oder bestimmte Gruppen von Verbrauchern zu veröffentlichen.

Vorsicht

Wenn Sie ein Anwendungspaket erstellen, sind die Release-Kanäle standardmäßig aktiviert. Nachdem Release-Kanäle für ein Anwendungspaket aktiviert wurden, können sie nicht mehr deaktiviert werden.

Weitere Informationen zur Verwendung von Release-Kanälen zur Verwaltung des Release-Lebenszyklus einer App finden Sie unter Veröffentlichen einer App über Release-Kanäle.

Um den bisherigen Prozess der Verwaltung von Versionen und Patches zu verwenden, müssen Sie die Release-Kanäle bei der Erstellung des Anwendungspakets explizit deaktivieren. Für die Entwicklung neuer Apps empfiehlt Snowflake jedoch die Verwendung von Release-Kanälen zur Verwaltung des Release-Lebenszyklus Ihrer Apps.

Informationen zur Verwendung der älteren Features für die Verwaltung von Versionen und Patches finden Sie unter Develop a new version of an app (Legacy).

Erforderliche Berechtigungen zum Erstellen eines Anwendungspakets

Um ein Anwendungspaket zu erstellen, muss Ihre Rolle über die globale Berechtigung CREATE APPLICATION PACKAGE verfügen.

Anwendungspaket erstellen

Sie können ein Anwendungspaket mit einer der folgenden Methoden erstellen:

Erstellen eines Anwendungspakets mit Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Projects » App packages aus.

  3. Wählen Sie Create, und klicken Sie dann im rechten Fensterbereich auf App Package.

  4. Geben Sie einen Namen für Ihr Anwendungspaket ein.

  5. Wählen Sie den vorgesehenen Verbraucher für das Anwendungspaket aus:

    • Wählen Sie Distribute to accounts outside of your organization aus, um das Anwendungspaket außerhalb Ihrer Organisation zur Verfügung zu stellen. Wenn Sie diese Option auswählen, wird ein automatischer Sicherheitsscan für jede in Ihrem Anwendungspaket definierte Version und jeden definierten Patch gestartet.

    • Wählen Sie Distribute to accounts in your organization aus, um das Anwendungspaket innerhalb Ihrer Organisation zur Verfügung zu stellen. Der automatische Sicherheitsscan wird nicht gestartet.

  6. (Optional) Geben Sie Kommentare für das Anwendungspaket ein. Diese Kommentare sind für den Verbraucher nicht sichtbar.

  7. Wählen Sie Add aus.

Anwendungspaket mit SQL-Befehlen erstellen

Um ein Anwendungspaket mit SQL zu erstellen, verwenden Sie den Befehl CREATE APPLICATION PACKAGE wie im folgenden Beispiel gezeigt:

CREATE APPLICATION PACKAGE my_application_package;
Copy

Dieser Befehl erstellt ein Anwendungspaket namens my_application_package in Ihrem Snowflake Konto. Standardmäßig sind Release-Kanäle für das Anwendungspaket aktiviert.

Nachdem Sie ein Anwendungspaket erstellt haben, verwenden Sie den Befehl SHOW APPLICATION PACKAGES, um die Liste der verfügbaren Anwendungspakete anzuzeigen.

Erstellen eines Anwendungspakets mit Snowflake CLI

Wenn Sie eine App mit Snowflake CLI entwickeln, wird das Anwendungspaket erstellt, wenn Sie den Befehl snow app run ausführen. Dieser Befehl erstellt ein Anwendungspaket in Ihrem Snowflake-Konto, lädt Codedateien in einen Stagingbereich hoch und erstellt oder aktualisiert dann eine App aus dem Anwendungspaket.

Erteilen der erforderlichen Berechtigungen für ein Anwendungspaket

Bei einigen Aufgaben im Zusammenhang mit der Erstellung oder Verwendung eines Anwendungspakets sind bestimmte Berechtigungen für das Anwendungspaket erforderlich. Die folgende Tabelle beschreibt die Berechtigungen, die zum Ausführen der Aufgaben erforderlich sind:

Berechtigung

Aufgabe

ATTACH LISTING

Hinzufügen eines Anwendungspakets zu einem Freigabeangebot

DEVELOP

Erstellen eines APPLICATION-Objekts im Entwicklungsmodus aus dem Anwendungspaket

INSTALL

Erstellen eines APPLICATION-Objekts auf Basis des Anwendungspakets

MANAGE RELEASES

Angeben einer Freigaberichtlinie, Anzeigen von Version und Patch-Level

MANAGE VERSIONS

Hinzufügen einer Version und eines Patch-Levels zu einem Anwendungspaket

OWNERSHIP

Ausführen aller oben genannten Aufgaben

Erteilen von Berechtigungen für ein Anwendungspaket mit Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Projects » App packages aus.

  3. Wählen Sie das Anwendungspaket aus, und wählen Sie dann die Registerkarte Settings aus.

  4. Wählen Sie im Bereich Privileges das Bearbeitungssymbol neben der Berechtigung aus, die Sie zuweisen möchten.

  5. Wählen Sie Add Role aus, und wählen Sie dann die Rolle aus, der Sie die Berechtigung zuweisen möchten.

  6. Wählen Sie Save aus.

Die Rolle wird neben der Berechtigung angezeigt.

Erteilen von Berechtigungen für ein Anwendungspaket mit SQL-Befehlen

Um einer Rolle mit SQL eine Berechtigung für das Anwendungspaket zuzuweisen, verwenden Sie den Befehl GRANT <Berechtigungen> … TO ROLE wie im folgenden Beispiel gezeigt:

GRANT MANAGE RELEASES ON APPLICATION PACKAGE hello_snowflake_package TO ROLE app_release_mgr;
Copy

Mit diesem Befehl wird der Rolle app_release_mgr die Berechtigung MANAGE RELEASES zugewiesen. Sie können denselben Befehl verwenden, um die anderen Berechtigungen zuzuweisen, die für ein Anwendungspaket verfügbar sind.

Standard-Release-Richtlinie für ein Anwendungspaket festlegen

Eine Release-Richtlinie bestimmt die Version und den Patch einer App, die einem Verbraucher zur Verfügung stehen, wenn er die App installiert oder wenn eine installierte App automatisch aktualisiert wird. Informationen zur Festlegung der Release-Richtlinien finden Sie unter Set the release directive for an app (Legacy).

Verbrauchern die Installation mehrerer Instanzen einer App erlauben

Anbieter können ein Anwendungspaket so konfigurieren, dass Verbraucher mehrere Instanzen einer Anwendung installieren können.

Um mehrere Instanzen einer Anwendung zu aktivieren, verwenden Sie die MULTIPLE_INSTANCES = TRUE-Klausel der Befehle CREATE APPLICATION PACKAGE oder ALTER APPLICATION PACKAGE.

If multiple instances are allowed for an app, consumers can install a maximum of 30 instances of the app in their account.

You cannot set this property for an application package that is included in a trial listing. An app installed from a paid listing can’t have multiple instances using the DEFAULT release channel.

Vorsicht

Nachdem die Eigenschaft MULTIPLE_INSTANCES auf TRUE eingestellt wurde, kann sie nicht mehr aufgehoben oder auf FALSE eingestellt werden.

Eigentümerschaft an einem Anwendungspaket übertragen

Nachdem Sie ein Anwendungspaket erstellt haben, können Sie die Eigentümerschaft an dem Anwendungspaket auf eine andere Rolle auf Kontoebene übertragen.

Übertragung der Eigentümerschaft über Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Projects » App packages aus.

  3. Wählen Sie neben dem Anwendungspaket, für das Sie die Eigentümerschaft übertragen möchten, aus, und wählen Sie dann Transfer Ownership aus.

  4. Wählen Sie unter Transfer to die neue Rolle auf Kontoebene aus.

  5. Wählen Sie Transfer aus.

Eigentümerschaft mit SQL-Befehlen übertragen

Um die Eigentümerschaft an einem Anwendungspaket mithilfe von SQL auf eine andere Rolle auf Kontoebene zu übertragen, verwenden Sie den Befehl GRANT OWNERSHIP wie im folgenden Beispiel gezeigt:

GRANT OWNERSHIP ON APPLICATION PACKAGE hello_snowflake_package TO ROLE native_app_dev;
Copy

Ein Anwendungspaket löschen

Anbieter mit der Berechtigung OWNERSHIP für ein Anwendungspaket können dieses aus einem Konto entfernen. Sie können jedoch kein Anwendungspaket entfernen, das derzeit einem Freigabeangebot zugeordnet ist.

Nach dem Entfernen ist das Anwendungspaket im Anbieterkonto nicht mehr verfügbar.

Vorsicht

Nach dem Entfernen eines Freigabeangebots und des angehängten Anwendungspakets kann der Verbraucher die Snowflake Native App, die aus dem Anwendungspaket erstellt wurde, zwar anzeigen, aber nicht mehr darauf zugreifen. Wenn ein Verbraucher versucht, auf die Snowflake Native App zuzugreifen, wird eine Fehlermeldung angezeigt, die besagt, dass das Anwendungspaket entfernt wurde.

Entfernen eines Anwendungspakets mit Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Projects » App packages aus.

  3. Wählen Sie neben dem Anwendungspaket, das Sie entfernen möchten, aus, und wählen Sie dann Drop aus.

Löschen eines Anwendungspaket mit SQL-Befehlen

Um ein Anwendungspaket mit SQL zu entfernen, führen Sie den Befehl DROP APPLICATION PACKAGE wie im folgenden Beispiel aus:

DROP APPLICATION PACKAGE hello_snowflake_package;
Copy