snow app run¶
Erstellt ein Anwendungspaket in Ihrem Snowflake-Konto, lädt Codedateien in den zugehörigen Stagingbereich hoch und erstellt oder aktualisiert dann ein Anwendungsobjekt aus dem Anwendungspaket.
Syntax¶
snow app run
--version <version>
--patch <patch>
--from-release-directive
--interactive / --no-interactive
--force
--validate / --no-validate
--package-entity-id <package_entity_id>
--app-entity-id <app_entity_id>
--project <project_definition>
--env <env_overrides>
--connection <connection>
--host <host>
--port <port>
--account <account>
--user <user>
--password <password>
--authenticator <authenticator>
--private-key-file <private_key_file>
--token-file-path <token_file_path>
--database <database>
--schema <schema>
--role <role>
--warehouse <warehouse>
--temporary-connection
--mfa-passcode <mfa_passcode>
--enable-diag
--diag-log-path <diag_log_path>
--diag-allowlist-path <diag_allowlist_path>
--format <format>
--verbose
--debug
--silent
Argumente¶
Keine
Optionen¶
--version TEXT
Die in einem vorhandenen Anwendungspaket definierte Version, aus der Sie ein Anwendungsobjekt erstellen möchten. Die Namen der Anwendungsobjekte und Anwendungspakete werden aus der Projektdefinitionsdatei ermittelt.
--patch INTEGER
Die Nummer des Patches unter der angegebenen
--version
in einem vorhandenen Paket, das zur Erstellung eines Anwendungsobjekts verwendet werden soll. Die Namen der Anwendungsobjekte und Anwendungspakete werden aus der Projektdefinitionsdatei ermittelt.--from-release-directive
Erstellt oder aktualisiert ein Anwendungsobjekt auf die Version und den Patch, die in der für Ihr Snowflake-Konto geltenden Release-Richtlinie angegeben sind. Der Befehl schlägt fehl, wenn für Ihr Snowflake-Konto keine Release-Richtlinie für ein bestimmtes Anwendungspaket existiert, was anhand der Projektdefinitionsdatei ermittelt wird. Standard: nicht aktiviert. Standard: false
--interactive / --no-interactive
Wenn diese Option aktiviert ist, werden Eingabeaufforderungen auch dann angezeigt, wenn die Standardeingabe und -ausgabe keine Terminalgeräte sind. In einer interaktiven Shell-Umgebung ist der Standardwert True, andernfalls False.
--force
Wenn diese Option aktiviert ist, genehmigt der Befehl implizit jede Eingabeaufforderung, die auftaucht. Sie sollten diese Option aktivieren, wenn der interaktive Modus nicht angegeben ist und wenn Sie potenziell destruktive Aktionen ausführen möchten. Standard: nicht aktiviert. Standard: false
--validate / --no-validate
Wenn diese Option aktiviert ist, triggert sie die Validierung des Setup-Skripts einer bereitgestellten Snowflake Native App SQL. Standard: True.
--package-entity-id TEXT
Die ID der Paketentität, auf der die Operation ausgeführt werden soll, wenn definition_version 2 oder höher ist.
--app-entity-id TEXT
Die ID der Anwendungsentität, auf der die Operation ausgeführt werden soll, wenn definition_version 2 oder höher ist.
-p, --project TEXT
Pfad, in dem sich das Snowflake-Projekt befindet. Standardmäßig wird das aktuelle Verzeichnis verwendet.
--env TEXT
Zeichenfolge im Format von Schlüssel=Wert. Überschreibt Variablen aus dem env-Abschnitt, die für Vorlagen verwendet werden. Standard: [].
--connection, -c, --environment TEXT
Name der Verbindung, wie in Ihrer
config.toml
-Datei definiert. Standard:Standard
.--host TEXT
Host-Adresse für die Verbindung. Überschreibt den für die Verbindung angegebenen Wert.
--port INTEGER
Port für die Verbindung. Überschreibt den für die Verbindung angegebenen Wert.
--account, --accountname TEXT
Name, der Ihrem Snowflake-Konto zugewiesen wurde. Überschreibt den für die Verbindung angegebenen Wert.
--user, --username TEXT
Benutzername für die Verbindung zu Snowflake. Überschreibt den für die Verbindung angegebenen Wert.
--password TEXT
Snowflake-Kennwort. Überschreibt den für die Verbindung angegebenen Wert.
--authenticator TEXT
Snowflake-Authentifikator. Überschreibt den für die Verbindung angegebenen Wert.
--private-key-file, --private-key-path TEXT
Dateipfad zum privaten Snowflake-Schlüssel. Überschreibt den für die Verbindung angegebenen Wert.
--token-file-path TEXT
Pfad zur Datei mit einem OAuth-Token, das bei der Verbindung mit Snowflake verwendet werden soll.
--database, --dbname TEXT
Zu verwendende Datenbank. Überschreibt den für die Verbindung angegebenen Wert.
--schema, --schemaname TEXT
Zu verwendendes Datenbankschema. Überschreibt den für die Verbindung angegebenen Wert.
--role, --rolename TEXT
Zu verwendende Rolle. Überschreibt den für die Verbindung angegebenen Wert.
--warehouse TEXT
Zu verwendendes Warehouse. Überschreibt den für die Verbindung angegebenen Wert.
--temporary-connection, -x
Verwendet eine mit Befehlszeilenparametern definierte Verbindung anstelle einer in config definierten. Standard: false
--mfa-passcode TEXT
Für die mehrstufige Authentifizierung (MFA) zu verwendendes Token.
--enable-diag
Führt den Python-Konnektor-Diagnosetest aus. Standard: false
--diag-log-path TEXT
Pfad des Diagnoseberichts. Standard: <temporary_directory>.
--diag-allowlist-path TEXT
Pfad des Diagnoseberichts zur optionalen Zulassungsliste.
--format [TABLE|JSON]
Gibt das Ausgabeformat an. Standard: TABLE.
--verbose, -v
Zeigt Protokolleinträge für die Protokolliergrade
info
und höher an. Standard: false--debug
Zeigt Protokolleinträge für die Protokollebenen
debug
und höher an; Debug-Protokolle enthalten zusätzliche Informationen. Standard: false--silent
Schaltet Zwischenausgaben auf der Konsole aus. Standard: false
--help
Zeigt den Hilfetext für diesen Befehl an.
Nutzungshinweise¶
Bemerkung
Dieser Befehl akzeptiert keine Rollen- oder Warehouse-Überschreibungen in Ihrer config.toml
-Datei. Fügen Sie sie stattdessen der Native App-Definition in snowflake.yml
oder snowflake.local.yml
hinzu.
Dieser Befehl stützt sich auf die aufgelöste Projektdefinition, um den Stagingbereich, in den die Dateien hochgeladen werden sollen, die hochzuladenden Dateien und den Namen der zu erstellenden Objekte zu bestimmen. Hinweise zu den Standardeinstellungen finden Sie in den Nutzungshinweisen Allgemeine Informationen zu Snowflake Native App-Projekten und snow init. Sie können sie auch nach Ihren eigenen Vorstellungen ändern. Es liegt jedoch in Ihrer Verantwortung zu prüfen, ob es zu Konflikten mit bestehenden Objekten in Ihrem Konto kommt.
Die von Snowflake CLI erstellten Objekte sind mit einem speziellen Kommentar
GENERATED_BY_SNOWCLI
getaggt.Die Rollen, die zum Erstellen des Anwendungspakets und der Instanz verwendet werden, müssen über die entsprechenden Berechtigungen auf Kontoebene verfügen, um mit Snowflake Native Apps arbeiten zu können. Weitere Informationen dazu finden Sie unter Anwendungspaket erstellen und Eine App lokal installieren und testen.
Standardmäßig erstellt der snow app run
-Befehl ein Anwendungspaket in Ihrem Snowflake-Konto, lädt Codedateien in seinen Stagingbereich hoch, validiert das Setup-Skript SQL und erstellt (oder aktualisiert) dann eine Instanz dieser Anwendung im Entwicklungsmodus. Beachten Sie beim Ausführen des Standardbefehls Folgendes:
Alle Dateien, die in den Projektdefinitionsdateien unter
nativeapp.project.artifacts
angegeben sind, werden in den Snowflake-Stagingbereich hochgeladen. Dieses Artefakt muss einemanifest.yml
-Datei und zugehörige Setup-Skripte enthalten.Alle unter
nativeapp.project.artifacts
angegebenen Dateien müssen vor dem Aufrufen vonsnow app run
bereits kompiliert und ggf. separat gepackt worden sein. Snowflake CLI bietet kein Feature, um diese Zwischenaufgaben für Sie auszuführen, sodass Sie die volle Kontrolle über Ihren Build-Prozess haben, indem Sie ihn in Ihren eigenen Skripten ausführen.Snowflake CLI verwendet beim Erstellen dieser Objekte den Standardnamen des Anwendungspakets, den Namen des Stagingbereichs und den Anwendungsnamen.
Die Ausführungsläufe nach dem ersten Ausführungslauf von
snow app run
vergleichen den Zustand der hochgeladenen Dateien mit den Dateien in Ihrem lokalen Verzeichnis und laden selektiv nur die geänderten Dateien hoch, um Zeit zu sparen. Wenn sich Dateien geändert haben, wird die Anwendung auf der Grundlage der neuen Inhalte des Stagingbereichs aktualisiert.Wenn das Anwendungspaket bereits existiert und seine Verteilungseigenschaft
INTERNAL
lautet, prüft der Befehl, ob das Paket von Snowflake CLI erstellt wurde. Wenn dies nicht der Fall ist, gibt der Befehl einen Fehler aus. Wenn die Verteilung des AnwendungspaketsEXTERNAL
ist, wird keine solche Prüfung ausgeführt.Der Befehl warnt Sie zwar, wenn das verwendete Anwendungspaket einen anderen Wert für die Verteilung hat, als in Ihrer aufgelösten Projektdefinition festgelegt ist, setzt aber die Ausführung fort.
Die Anwendungsinstanz wird im Entwicklungsmodus erstellt oder aktualisiert. Genauer gesagt verwendet sie die Stagingdateien.
Wenn Sie die Option --version
, --patch
oder --from-release-directive
angeben, aktualisiert dieser Befehl Ihre vorhandene Anwendungsinstanz oder erstellt eine, wenn die Anwendung noch nicht existiert. In diesem Szenario wird kein Anwendungspaket erstellt.
Wenn Snowflake CLI aus irgendeinem Grund nicht in der Lage ist, Ihre Anwendung zu aktualisieren, z. B. wenn Sie versuchen, eine Anwendung, die ursprünglich im Lose-Dateien-Modus installiert wurde, nun mit einer Release-Richtlinien zu aktualisieren, dann wird versucht, die vorhandene Anwendung zu löschen und eine neue Anwendung mit der gewünschten Installationsstrategie zu erstellen. Der Befehl fordert Sie auf, das Löschen zu bestätigen, bevor Sie die Aktion ausführen.
Wenn Sie nicht mit dem Befehl interagieren und stattdessen alle Aktionen erzwingen möchten, verwenden Sie die Option
--force
, um alle Aufforderungen zu umgehen, was ein „Ja“ auf alle Eingaben bedeutet, die danach fragen, ob mit destruktiven Aktionen fortgefahren werden soll.Snowflake CLI versucht zu ermitteln, ob Sie die Befehle in einer interaktiven Shell ausführen. Wenn
--force
nicht angegeben ist und Sie Befehle in der interaktiven Shell ausführen, wird automatisch die interaktive Option verwendet.Wenn Sie Snowflake CLI zwingen möchten, mit Ihnen zu interagieren, auch wenn Sie sich nicht in einer interaktiven Shell befinden, verwenden Sie die Option
--interactive
.
Beispiele¶
Bei diesen Beispielen wird davon ausgegangen, dass Sie die erforderlichen Änderungen an Ihren Codedateien vorgenommen und sie zu Ihrer snowflake.yml
- oder snowflake.local.yml
-Dateien hinzugefügt haben.
Wenn Sie ein Anwendungspaket und eine Anwendung mit Stagingdateien erstellen möchten, können Sie Folgendes ausführen:
cd my_app_project my_app_project_build_script.sh snow app run --connection="dev"
Wenn Sie bereits über ein Anwendungspaket mit einer Version und einem Patch verfügen, aus dieser Version und dem Patch eine Anwendung erstellen möchten und den interaktiven Modus aufrufen möchten, können Sie Folgendes ausführen:
snow app run --version V1 --patch 12 --interactive --connection="dev"
Hier werden die Version
V1
und der Patch12
nur als Beispiel verwendet.Wenn Sie eine bestehende Release-Richtlinie auf ein Anwendungspaket gesetzt haben, daraus eine Anwendung erstellen und den interaktiven Modus umgehen möchten, können Sie Folgendes ausführen:
snow app run --from-release-directive --force --connection="dev"
Dieses Beispiel zeigt, wie Sie mehrere Variablen der Umgebung mit der
--env
-Option übergeben können:snow app run --env source_folder="src/app" --env stage_name=mystage