Erstellen und Testen eines APPLICATION-Objekts

Unter diesem Thema wird beschrieben, wie Sie ein APPLICATION-Objekt aus einem Anwendungspaket erstellen.

Allgemeine Informationen zum Erstellen und Testen eines APPLICATION-Objekts

Das Snowflake Native App Framework ermöglicht es Anbietern, ein APPLICATION-Objekt in demselben Konto wie das Anwendungspaket zu erstellen. Auf diese Weise können Anbieter eine Snowflake Native App testen, bevor Sie sie für Verbraucher veröffentlichen. Außerdem können Anbieter die Snowflake Native App in einem einzigen Konto testen, ohne zwischen Anbieter- und Verbraucherkonten wechseln zu müssen.

Erforderliche Berechtigungen zum Erstellen und Testen eines APPLICATION-Objekts

Um ein APPLICATION-Objekt aus einem Anwendungspaket zu erstellen, müssen Ihrer Rolle folgende Berechtigungen erteilt worden sein:

  • Die Berechtigung CREATE APPLICATION auf Konto-Ebene für Ihre Rolle.

  • Die Berechtigung INSTALL auf Objektebene für das Anwendungspaket.

Die folgenden Beispiele zeigen, wie Sie Ihrem Konto mit dem Befehl GRANT <Berechtigungen> diese Berechtigungen erteilen:

GRANT CREATE APPLICATION ON ACCOUNT TO ROLE provider_role;
GRANT INSTALL ON APPLICATION PACKAGE hello_snowflake_package
  TO ROLE provider_role;
Copy

Verwenden der Berechtigung DEVELOP

Standardmäßig verfügt die Rolle, mit der Sie ein Anwendungspaket erstellen, über die Berechtigungen zum Ausführen des Befehls CREATE APPLICATION, mit dem ein APPLICATION-Objekt auf Basis des Anwendungspakets erstellt wird.

In einigen Entwicklungsumgebungen müssen Sie jedoch Benutzern mit anderen Rollen erlauben, ein Anwendungspaket zu erstellen und zu testen. Erteilen Sie dazu einer Rolle die DEVELOP-Berechtigung auf Objektebene für das Anwendungspaket.

Die DEVELOP-Berechtigung auf Kontoebene stellt die notwendigen Berechtigungen bereit, um ein APPLICATION-Objekt auf Grundlage eines Anwendungspakets zu erstellen und zu testen. Ein Benutzer mit DEVELOP-Berechtigung kann mithilfe des Anwendungspakets, auf das er Zugriff erhalten hat, folgende Aufgaben ausführen:

  • Erstellen einer Version eines APPLICATION-Objekts auf Basis einer Version oder eines Patchlevels, wie im Anwendungspaket angegeben

  • Aktualisieren einer Version eines Anwendungspakets mit dem Befehl ALTER APPLICATION

  • Erstellen und Aktualisieren eines APPLICATION-Objekts mithilfe von Dateien in einem benannten Stagingbereich

  • Aktivieren Sie den Debug-Modus für ein APPLICATION-Objekt, das im Entwicklungsmodus erstellt wurde.

Um einer bestimmten Rolle die DEVELOP-Berechtigung zu erteilen, verwenden Sie den Befehl GRANT <Berechtigungen> wie im folgenden Beispiel gezeigt:

GRANT DEVELOP ON APPLICATION PACKAGE hello_snowflake_package TO ROLE other_dev_role;
Copy

Bemerkung

Die DEVELOP-Berechtigung auf Objektebene ist spezifisch für ein einzelnes Anwendungspaket. Sie müssen GRANT <Berechtigungen> auf jeder Anwendung ausführen, für die Sie die DEVELOP-Berechtigung zuweisen möchten.

Workflow für das Erstellen und Testen einer Anwendung

Das Snowflake Native App Framework bietet verschiedene Möglichkeiten, um ein APPLICATION-Objekt aus einem Anwendungspaket zu erstellen. Auf diese Weise können Sie eine Snowflake Native App testen, bevor Sie sie für Verbraucher veröffentlichen. Welche Methode Sie verwenden, hängt davon ab, welche Teile eines APPLICATION-Objekts Sie testen möchten.

Die folgenden Schritte beschreiben einen typischen Workflow für das Testen eines APPLICATION-Objekts:

  1. Erstellen Sie ein APPLICATION-Objekt unter Verwendung von Inhalten in einem Stagingbereich.

    So können Sie schnell eine neue Version eines Setup-Skripts oder einer Anwendungscodedatei testen. Weitere Informationen dazu finden Sie unter Erstellen einer Anwendung über Stagingdateien.

  2. Erstellen Sie ein APPLICATION-Objekt aus einer Version oder einem Patch.

    Nachdem Sie eine Version oder einen Patch für ein Anwendungspaket definiert haben, können Sie diese Version testen, indem Sie ein APPLICATION-Objekt aus dieser Version erstellen. Weitere Informationen dazu finden Sie unter Erstellen einer Anwendung aus einer Version oder einem Patch-Level.

  3. Aktualisieren Sie ein APPLICATION-Objekt.

    Nachdem Sie sich vergewissert haben, dass eine Version eines Anwendungspakets korrekt funktioniert, können Sie ein vorhandenes APPLICATION-Objekt auf die neue Version aktualisieren. Für das Ausführen des Upgrades gibt es zwei Möglichkeiten:

    • Aktualisieren einer Anwendung über einen Stagingbereich (Einzelkonto)

    • Aktualisieren einer Anwendung aus einer Version (Einzelkonto)

  4. Erstellen Sie ein APPLICATION-Objekt direkt aus einem Anwendungspaket.

    Nachdem Sie überprüft haben, ob das installierte APPLICATION-Objekt korrekt funktioniert, können Sie ein APPLICATION-Objekt aus einem Anwendungspaket erstellen, ohne eine Version oder Stagingdateien anzugeben. Dadurch wird das APPLICATION-Objekt unter Verwendung der Standard-Freigaberichtlinie erstellt.

    Weitere Informationen dazu finden Sie unter Erstellen einer Anwendung über Stagingdateien.

  5. Installieren Sie eine Snowflake Native App aus einem Freigabeangebot.

    Nachdem Sie sich in Ihrem Konto vergewissert haben, dass sowohl das Anwendungspaket als auch das APPLICATION-Objekt korrekt funktionieren, können Sie das Anwendungspaket zu einem Freigabeangebot hinzufügen und die Installation mit Snowsight testen.

    Weitere Informationen dazu finden Sie unter Erstellen einer Anwendung über Stagingdateien.

Erstellen einer Anwendung

Das Snowflake Native App Framework bietet Ihnen die Möglichkeit, ein APPLICATION-Objekt direkt in Ihrem Konto zu installieren, um eine Snowflake Native App vor der Freigabe für Kunden zu testen. Der Befehl CREATE APPLICATION unterstützt verschiedene Syntaxvarianten für das Erstellen eines APPLICATION-Objekts.

Bemerkung

In den folgenden Abschnitten wird davon ausgegangen, dass Sie ein Anwendungspaket sowie die erforderliche Manifest-Datei und das Setup-Skript erstellt haben.

Erstellen einer Anwendung über Stagingdateien

Sie können ein APPLICATION-Objekt mithilfe einer Manifest-Datei und eines Setup-Skripts erstellen, die in einen benannten Stagingbereich hochgeladen wurden. So können Sie Änderungen an diesen Dateien testen, ohne eine Version zu einem Anwendungspaket hinzufügen zu müssen.

Verwenden Sie den Befehl CREATE APPLICATION, um ein APPLICATION-Objekt unter Verwendung von Stagingdateien zu erstellen, wie im folgenden Beispiel gezeigt:

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package
  USING '@hello_snowflake_code.core.hello_snowflake_stage';
Copy

Erstellen einer Anwendung aus einer Version oder einem Patch-Level

Nachdem Sie eine Version oder einen Patch-Level in einem Anwendungspaket definiert haben, können Sie ein APPLICATION-Objekt erstellen, das auf dieser Version oder diesem Patch-Level basiert.

Um ein APPLICATION-Objekt aus einer bestimmten Version zu erstellen, verwenden Sie den Befehl CREATE APPLICATION, wie im folgenden Beispiel gezeigt:

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package
  USING VERSION v1_0;
Copy

Um ein APPLICATION-Objekt aus einem bestimmten Patch-Level zu erstellen, verwenden Sie den Befehl CREATE APPLICATION, wie im folgenden Beispiel gezeigt:

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package
  USING VERSION v1_0 PATCH 2;
Copy

Erstellen einer Anwendung auf Basis einer Freigaberichtlinie

Nachdem Sie eine Freigaberichtlinie für Ihr Anwendungspaket festgelegt haben, können Sie ein APPLICATION-Objekt auf Basis der Freigaberichtlinie erstellen. Dies kann eine kundenspezifische Freigaberichtlinie oder die Standard-Freigaberichtlinie sein.

Um ein Anwendungspaket auf Basis einer Freigaberichtlinie zu erstellen, verwenden Sie den Befehl CREATE APPLICATION, wie im folgenden Beispiel gezeigt:

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package;
Copy

Aktualisieren einer Anwendung über einen Stagingbereich

Um ein APPLICATION-Objekt mithilfe von in einem benannten Stagingbereich befindlichen Dateien zu aktualisieren, verwenden Sie den Befehl ALTER APPLICATION, wie im folgenden Beispiel gezeigt:

ALTER APPLICATION HelloSnowflake
  UPGRADE USING @CODEDATABASE.CODESCHEMA.AppCodeStage;
Copy

Aktualisieren einer Anwendung aus einer Version oder einem Patch

Um ein APPLICATION-Objekt zu aktualisieren, das aus einer bestimmten Version erstellt wurde, verwenden Sie den Befehl ALTER APPLICATION, wie im folgenden Beispiel gezeigt:

ALTER APPLICATION HelloSnowflake
 UPGRADE USING VERSION "v1_1";
Copy

Anzeigen der verfügbaren APPLICATION-Objekte

Um eine Liste der APPLICATION-Objekte anzuzeigen, die in Ihrem Konto verfügbar sind, verwenden Sie den Befehl SHOW APPLICATIONS, wie im folgenden Beispiel gezeigt:

SHOW APPLICATIONS
Copy

Allgemeine Informationen zum Entwicklungsmodus

Wenn Sie ein APPLICATION-Objekt aus einem Anwendungspaket installieren, indem Sie eine Version oder Anwendungsdateien in einem benannten Stagingbereich angeben, wird das APPLICATION-Objekt als im Entwicklungsmodus befindlich betrachtet.

Im Entwicklungsmodus können Sie ein APPLICATION-Objekt mit nur einem Konto testen und Fehler beheben. Im Entwicklungsmodus können Sie ein APPLICATION-Objekt erstellen und testen, das auf einer bestimmten Version eines Anwendungspakets basiert. Sie können ein APPLICATION-Objekt auch mithilfe von Anwendungsdateien in einem Stagingbereich erstellen und testen. So können Sie Änderungen am Setup-Skript oder an der Anwendungslogik schnell testen.

Der Entwicklungsmodus bietet einen zusätzlichen Debug-Modus, mit dem Sie den internen Status eines APPLICATION-Objekts überprüfen können, den ein Verbraucher sonst nicht einsehen könnte.

Wenn Sie im Entwicklungsmodus z. B. die Befehle SHOW oder DESC für Objekte innerhalb des APPLICATION-Objekts ausführen, werden nur die Objekte angezeigt, für die dem Verbraucher die Berechtigungen zum Anzeigen erteilt wurden. Im DEBUG-Modus können Sie jedoch alle Objekte innerhalb des APPLICATION-Objekts sehen.

Aktivieren des Debug-Modus

Mit dem Snowflake Native App Framework können Sie ein APPLICATION-Objekt im Debug-Modus testen. Im Debug-Modus können Sie alle Objekte innerhalb des APPLICATION-Objekts anzeigen und ändern. In diesem Modus sind Objekte sichtbar, die als Verbraucher nicht sichtbar wären, z. B. Objekte, die keiner Datenbankrolle zugewiesen sind, oder freigegebene Inhaltsobjekte.

Das Verwenden eines APPLICATION-Objekts im Debug-Modus erfordert Folgendes:

  • Das APPLICATION-Objekt muss im Entwicklungsmodus erstellt werden, d. h. es muss auf einer bestimmten Version oder auf in einem Stagingbereich befindlichen Anwendungsdateien basieren.

  • Sie müssen den Debug-Modus explizit für das APPLICATION-Objekt einstellen.

Bemerkung

Der Debug-Modus kann nur für APPLICATION-Objekte aktiviert/deaktiviert werden, die im Entwicklungsmodus innerhalb des Kontos erstellt wurden, das auch das Anwendungspaket enthält.

Um den Debug-Modus für ein APPLICATION-Objekt zu aktivieren, verwenden Sie den Befehl ALTER APPLICATION, wie im folgenden Beispiel gezeigt:

ALTER APPLICATION hello_snowflake_app SET DEBUG_MODE = TRUE;
Copy

Dieser Befehl aktiviert den Debug-Modus für eine APPLICATION-Objekt namens hello_snowflake_app. Um den Debug-Modus zu deaktivieren, verwenden Sie denselben Befehl, wie im folgenden Beispiel:

ALTER APPLICATION hello_snowflake_app SET DEBUG_MODE = FALSE;
Copy

Dieser Befehl deaktiviert den Debug-Modus für das APPLICATION-Objekt namens hello_snowflake_app.

Bemerkung

Um diesen Befehl auszuführen, müssen Sie die OWNERSHIP-Berechtigung für das APPLICATION-Objekt haben. Sie müssen auch die DEVELOP-Berechtigung für das Anwendungspaket haben.

Außerdem muss das APPLICATION-Objekt im Entwicklungsmodus und in demselben Konto wie das Anwendungspaket erstellt werden.

Festlegen einer Anwendung als aktiven Kontext

Um ein APPLICATION-Objekt als aktiven, aktuellen Kontext für eine Sitzung festzulegen, führen Sie den Befehl USE APPLICATION aus, wie im folgenden Beispiel gezeigt:

USE APPlICATION hello_snowflake_app;
Copy

Bemerkung

Um diesen Befehl auszuführen, muss Ihre Rolle die USAGE-Berechtigung für das APPLICATION-Objekt haben.

Anzeigen von Details zu einer installierten Anwendung

Um Details zu einem APPLICATION-Objekt anzuzeigen, führen Sie den Befehl DESCRIBE APPLICATION aus, wie im folgenden Beispiel gezeigt:

DESC APPLICATION hello_snowflake_app;
Copy

Im Entwicklungsmodus zeigt dieser Befehl nur die Schemas an, die für den Verbraucher über die App-Datenbankrollen zugänglich sind.

Im Debug-Modus zeigt dieser Befehl alle Schemas in der Instanz und im Anwendungspaket an.