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
Copy

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 eine manifest.yml-Datei und zugehörige Setup-Skripte enthalten.

  • Alle unter nativeapp.project.artifacts angegebenen Dateien müssen vor dem Aufrufen von snow 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 Anwendungspakets EXTERNAL 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"
    
    Copy
  • 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"
    
    Copy

    Hier werden die Version V1 und der Patch 12 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"
    
    Copy
  • 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
    
    Copy