CREATE APPLICATION

Erstellt eine Snowflake Native App basierend auf einem Anwendungspaket oder einem Freigabeangebot. Anbieter verwenden diesen Befehl, um eine App in ihrem Entwicklungskonto zu installieren.

Wenn dieser Befehl ausgeführt wird, wird das Setup-Skript ausgeführt, um die App zu erstellen.

Siehe auch:

ALTER APPLICATION, DESCRIBE APPLICATION, DROP APPLICATION, SHOW APPLICATIONS

Syntax

CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
   [ USING RELEASE CHANNEL { QA | ALPHA | DEFAULT } ]
   [ COMMENT = '<string_literal>' ]
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
   [ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
   [ WITH FEATURE POLICY = <policy_name> ]

CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
  USING <path_to_version_directory>
  [ DEBUG_MODE = { TRUE | FALSE } ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [, ...] ) ]
  [ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
  [ WITH FEATURE POLICY = <policy_name> ]


CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
  USING VERSION  <version_identifier> [ PATCH <patch_num> ]
  [ DEBUG_MODE = { TRUE | FALSE } ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
  [ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
  [ WITH FEATURE POLICY = <policy_name> ]

CREATE APPLICATION <name> FROM LISTING <listing_name>
   [ USING RELEASE CHANNEL { QA | ALPHA | DEFAULT } ]
   [ COMMENT = '<string_literal>' ]
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
   [ BACKGROUND_INSTALL = { TRUE | FALSE } ]
   [ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
   [ WITH FEATURE POLICY = <policy_name> ]
Copy

Erforderliche Parameter

name

Gibt den Bezeichner für die App an. Dieser muss für Ihr Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

FROM APPLICATION PACKAGE package_name

Gibt den Namen des Anwendungspakets an, das zum Erstellen der App verwendet wird. Wenn Sie diese Klausel verwenden möchten, um eine Anwendung aus einem Anwendungspaket ohne Angabe eines Stagingbereichs oder von Version/Patch zu erstellen, muss für das Anwendungspaket eine Standard-Freigaberichtlinie definiert werden.

Diese Klausel kann nur verwendet werden, um eine Anwendung in demselben Konto wie das Anwendungspaket zu erstellen. Diese Klausel kann nicht verwendet werden, um eine Anwendung im Entwicklungsmodus zu erstellen.

FROM LISTING listing_name

Gibt den Namen des Freigabeangebots an, das das Anwendungspaket enthält, das zur Erstellung der App verwendet wurde.

USING RELEASE CHANNEL QA | ALPHA | DEFAULT

Gibt den Release-Kanal an, der im Anwendungspaket oder im Freigabeangebot definiert ist, das zum Erstellen der App verwendet wurde. Wenn Sie diese Klausel nicht angeben, wird der Standard-Release-Kanal verwendet.

  • QA gibt den Release-Kanal für die Qualitätssicherung an.

  • ALPHA gibt den Alpha-Release-Kanal an.

  • DEFAULT gibt den Standard-Release-Kanal an.

Diese Klausel kann nur verwendet werden, wenn Sie eine App aus einem Anwendungspaket erstellen, für das eine Release-Richtlinie definiert ist, oder wenn Sie eine App aus einem Freigabeangebot erstellen.

USING path_to_version_directory

Gibt den Pfad zu dem Stagingbereich an, der die von der App benötigten Dateien enthält.

USING version [ PATCH patch_num ]

Gibt die Version und optional den Patch an, die in dem Anwendungspaket definiert sind, das zum Erstellen der Anwendung verwendet wurde.

Optionale Parameter

COMMENT = 'string_literal'

Gibt einen Kommentar für die App an.

Standard: Kein Wert

DEBUG_MODE = { TRUE | FALSE }

Aktiviert oder deaktiviert Debug-Modus für die zu erstellende App. Der Debug-Modus ermöglicht es einem Anbieter, den Inhalt des Anwendungsobjekts anzuzeigen.

  • TRUE aktiviert den Debug-Modus für die installierte App.

  • FAlSE deaktiviert den Debug-Modus für die installierte App.

Bemerkung

Sie können den Debug-Modus nur unter den folgenden Bedingungen aktivieren:

  • Die App befindet sich in demselben Konto wie das Anwendungspaket.

  • Die App wird auf Basis einer bestimmten Version oder aus Dateien in einem benannten Stagingbereich erstellt.

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.

Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.

Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente.

BACKGROUND_INSTALL = { TRUE | FALSE }

Erstellt im Hintergrund die App aus einem Freigabeangebot. Wenn Sie diese Klausel angeben, kehrt der Befehl sofort zur Eingabeaufforderung zurück, und der Installationsprozess wird im Hintergrund fortgesetzt. Um diesen Status der Installation zu überwachen, verwenden Sie den Befehl DESCRIBE APPLICATION.

Bemerkung

Wenn diese Klausel verwendet wird, wird die App auch dann erstellt, wenn der Befehl fehlschlägt. Verwenden Sie in diesem Fall den Befehl DROP APPLICATION, um das Objekt zu löschen, bevor Sie den Befehl CREATE APPLICATION erneut ausführen.

Diese Klausel wird hauptsächlich von Snowsight verwendet, um eine Snowflake Native App im Hintergrund zu installieren. Die Installation im Hintergrund ermöglicht es dem Verbraucher, während der Installation des Freigabeangebots in Snowsight an andere Stellen zu navigieren. Ein Anbieter kann diese Klausel verwenden, um die Installation einer Snowflake Native App aus einem Freigabeangebot zu testen, bevor das Angebot veröffentlicht wird.

AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE }

Aktiviert Protokollierung und Ereignisfreigabe in der App.

WITH FEATURE POLICY = policy_name

Erstellen Sie die Anwendung mit der angegebenen Feature-Richtlinie. Wenn die Anwendung versucht, ein Objekt zu erstellen, das die Feature-Richtlinie verbietet (z. B. eine Datenbank), schlägt der Befehl fehl.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE APPLICATION

Konto

DEVELOP

Anwendungspaket

INSTALL

Anwendungspaket

IMPORT SHARE

CREATE APPLICATION

Konto

Diese Berechtigungen sind erforderlich, um eine Anwendung in einem anderen Konto als dem Konto zu erstellen, welches das Anwendungspaket enthält.

APPLY FEATURE POLICY

APPLY oder OWNERSHIP

Konto

Feature-Richtlinie

Diese Berechtigungen sind erforderlich, um eine Feature-Richtlinie anzuwenden, wenn Sie die Anwendung mit der WITH FEATURE POLICY-Klausel erstellen.

Nutzungshinweise

  • Um eine App direkt aus einem Anwendungspaket zu erstellen, müssen Sie eine Standard-Release-Richtlinie in dem Anwendungspaket angeben.

  • Die App unterscheidet sich in den folgenden Punkten von einer Datenbank:

    • Eine App darf nicht transient sein.

    • Die Rolle mit der OWNERSHIP-Berechtigung für die App hat die folgenden Möglichkeiten und Einschränkungen:

      • Die Rolle kann die Datenbank löschen oder die Eigenschaft COMMENT sowie alle App-spezifischen Eigenschaften ändern.

      • Die Rolle kann den Inhalt der App nur anzeigen oder ändern, wenn den Anwendungsrollen entsprechende Berechtigungen erteilt wurden.

      • Kann kein Objekt auf Datenbankebene erstellen, wie ein Schema oder eine Datenbankrolle.

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „User“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

  • CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

Beispiele

CREATE APPLICATION hello_snowflake_app
  FROM APPLICATION PACKAGE hello_snowflake_package
  USING VERSION v1;
Copy
+---------------------------------------------------------+
| status                                                  |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+
CREATE APPLICATION hello_snowflake_app
  FROM APPLICATION PACKAGE hello_snowflake_package
  USING '@hello_snowflake_code.core.hello_snowflake_stage';
Copy
+---------------------------------------------------------+
| status                                                  |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+