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
  --channel <channel>
  --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>
  --oauth-client-id <oauth_client_id>
  --oauth-client-secret <oauth_client_secret>
  --oauth-authorization-url <oauth_authorization_url>
  --oauth-token-request-url <oauth_token_request_url>
  --oauth-redirect-uri <oauth_redirect_uri>
  --oauth-scope <oauth_scope>
  --oauth-disable-pkce
  --oauth-enable-refresh-tokens
  --oauth-enable-single-use-refresh-tokens
  --client-store-temporary-credential
  --format <format>
  --verbose
  --debug
  --silent
  --enhanced-exit-codes
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

--channel TEXT

Der Name des Release-Kanals, der beim Erstellen oder Aktualisieren einer Anwendungsinstanz aus einer Release-Richtlinie verwendet werden soll. Erfordert, dass das Kennzeichen --from-release-directive gesetzt ist. Wenn nicht gesetzt, wird der Standardkanal verwendet.

--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, mit der gearbeitet werden soll, wenn definition_version 2 oder höher ist.

--app-entity-id TEXT

Die ID der Anwendungsentität, mit der gearbeitet werden soll, wenn die definition_version 2 oder höher ist.

-p, --project TEXT

Pfad, unter dem das Snowflake-Projekt gespeichert ist. Standardmäßig wird das aktuelle Verzeichnis als Arbeitsverzeichnis verwendet.

--env TEXT

Zeichenfolge im Format Schlüssel=Wert. Überschreibt die Variablen aus dem Abschnitt env, 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

Ob ein Verbindungsdiagnosebericht erstellt werden soll. Standard: false

--diag-log-path TEXT

Pfad für den generierten Bericht. Standardmäßig wird das temporäre Verzeichnis des Systems verwendet. Standard: <system_temporary_directory>.

--diag-allowlist-path TEXT

Pfad zu einer JSON-Datei, die allowlist-Parameter enthält.

--oauth-client-id TEXT

Wert der Client-ID, die vom Identitätsanbieter für die Snowflake-Integration bereitgestellt wird.

--oauth-client-secret TEXT

Wert des Client-Geheimnisses, das vom Identitätsanbieter für die Snowflake-Integration bereitgestellt wird.

--oauth-authorization-url TEXT

Endpunkt des Identitätsanbieters, der den Autorisierungscode an den Treiber liefert.

--oauth-token-request-url TEXT

Endpunkt des Identitätsanbieters, der die Zugriffstoken für den Treiber bereitstellt.

--oauth-redirect-uri TEXT

Für die Umleitung des Autorisierungscodes zu verwendende URI.

--oauth-scope TEXT

Bereich, der in der Autorisierungsanfrage des Identitätsanbieters angefordert wird.

--oauth-disable-pkce

Deaktiviert den Proof Key For Code Exchange (PKCE). Standard: False.

--oauth-enable-refresh-tokens

Ermöglicht eine stille Neuauthentifizierung, wenn das aktuelle Zugriffstoken veraltet ist. Standard: False.

--oauth-enable-single-use-refresh-tokens

Ob Sie sich für die Semantik des einmaligen Aktualisierungs-Tokens entscheiden. Standard: False.

--client-store-temporary-credential

Speichern der temporären Anmeldeinformationen.

--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

--enhanced-exit-codes

Exit-Fehlercodes nach Art des Fehlers unterscheiden. 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
  • Um eine Anwendung aus der Release-Richtlinie eines nicht standardmäßigen Release-Kanals zu erstellen, führen Sie Folgendes aus:

    snow app run --from-release-directive --channel ALPHA --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