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
Copy

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 Datei requirements.snowflake.txt erstellt, die die im dem Conda-Kanal verfügbaren Projektabhängigkeiten enthält, die später vom Befehl snow 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 Datei snowflake.yml) in eine Datei namens app.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 Datei app.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
    
    Copy
    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
    
    Copy
    project_dir    some_other_dir    some_file.txt
    
    snow snowpark build -p project_dir
    
    Copy
    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
    
    Copy
    project_dir    some_other_dir    some_file.txt
    
    snow snowpark build
    
    Copy
    ╭─ 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
    
    Copy
    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
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.