snow snowpark build¶
Erstellt die für das Snowpark-Projekt erforderlichen Artefakte. Die Artefakte können mit dem Befehl deploy
verwendet werden. Für jedes Verzeichnis in Artefakte wird eine .zip Datei erstellt. Alle Abhängigkeiten, die nicht von Anaconda stammen, sind in der dependencies.zip-Datei zusammengefasst.
Syntax¶
snow snowpark build
--ignore-anaconda
--allow-shared-libraries
--index-url <index_url>
--skip-version-check
--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¶
--ignore-anaconda
Sucht nicht nach Paketen im Snowflake-Anaconda-Kanal. Standard: false
--allow-shared-libraries
Erlaubt freigegeben Bibliotheken (.so), wenn Sie Pakete verwenden, die über PIP installiert wurden. Standard: false
--index-url TEXT
Basis-URL des Python Package Index, der für die Paketsuche verwendet wird. Diese sollte auf ein Repository verweisen, das mit PEP 503 (die einfache Repository-API) kompatibel ist, oder auf ein lokales Verzeichnis, das im gleichen Format angelegt ist.
--skip-version-check
Versionsvergleich von Abhängigkeiten zwischen Anforderungen und Anaconda wird übersprungen. Standard: false
-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¶
Die
app.zip
enthält alles, was für die Ausführung der Funktionen und Prozeduren im Projekt benötigt wird, abgesehen von den Paketen, die über den Snowflake-Anaconda-Kanal verfügbar sind und die Sie direkt aus Snowflake aufrufen können.Der Befehl durchsucht
requirements.txt
nach Paketen, die im Conda-Kanal verfügbar sind. Bei diesem Prozess wird die Dateirequirements.snowflake.txt
erstellt, die die im dem Conda-Kanal verfügbaren Projektabhängigkeiten enthält, die später vom Befehlsnow snowpark deploy
verwendet werden.Standardmäßig sucht der Befehl nach der Datei
snowflake.yml
im aktuellen Verzeichnis. Alternativ können Sie mit der Option--project
auch einen anderen Pfad angeben.Dieser Befehl lädt automatisch Abhängigkeiten herunter und fügt sie zusammen mit dem Quellcode des Projekts (angegeben durch das Feld
src
in der Dateisnowflake.yml
) in eine Datei namensapp.zip
ein.Wenn Sie einen anderen Python-Paketindex als PyPi verwenden möchten, geben Sie ihn mit der Option
--index-url
an.Sie können die Option
--skip-version-check
verwenden, um Versionsanforderungen zwischen Projektabhängigkeiten und dem Anaconda-Kanal zu überspringen.Sie können die Option
--ignore-anaconda
verwenden, um alle erforderlichen Abhängigkeiten in die Dateiapp.zip
aufzunehmen, auch die, die im Snowflake-Anaconda-Kanal verfügbar sind. Die Abhängigkeiten werden nicht von Anaconda heruntergeladen, sondern von PyPi.Die Option
--allow-shared-libraries
überprüft, ob eines der von PyPi heruntergeladenen Pakete native Abhängigkeiten verwendet, was zu Problemen führen kann, da Snowpark derzeit nur native Abhängigkeiten für Pakete aus dem Conda-Kanal unterstützt.
Beispiele¶
Erstellen eines Projekts, das sich im aktuellen Verzeichnis befindet:
snow snowpark build
Resolving dependencies from requirements.txt No external dependencies. Preparing artifacts for source code Creating: app.zip Build done.
Erstellen eines Projekts, das sich in einem anderen Verzeichnis befindet:
ls
project_dir some_other_dir some_file.txt
snow snowpark build -p project_dir
Resolving dependencies from requirements.txt No external dependencies. Preparing artifacts for source code Creating: app.zip Build done.
Erstellen eines Projekts in einem Verzeichnis, das keine Projektdefinitionsdatei
snowflake.yml
enthält:ls
project_dir some_other_dir some_file.txt
snow snowpark build
╭─ Error ──────────────────────────────────────────────────────────╮ Cannot find project definition (snowflake.yml). Please provide a path to the project or run this command in a valid project directory. ╰──────────────────────────────────────────────────────────────────╯
Erstellen eines Projekts mit nativen Bibliotheken:
snow snowpark build --ignore-anaconda --allow-shared-libraries
2024-04-16 16:05:52 ERROR Following dependencies utilise shared libraries, not supported by Conda: 2024-04-16 16:05:52 ERROR contourpy pillow numpy kiwisolver fonttools matplotlib 2024-04-16 16:05:52 ERROR You may still try to create your package with --allow-shared-libraries, but the might not work. 2024-04-16 16:05:52 ERROR You may also request adding the package to Snowflake Conda channel 2024-04-16 16:05:52 ERROR at https://support.anaconda.com/ Build done. Artifact path: /Path/to/current/dir/project_dir/app.zip
Erstellen eines Projekts und Einschließen aller Abhängigkeiten:
snow snowpark build --ignore-anaconda
Resolving dependencies from requirements.txt No external dependencies. Preparing artifacts for source code Creating: app.zip Build done.