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>
  --workload-identity-provider <workload_identity_provider>
  --private-key-file <private_key_file>
  --token <token>
  --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
Argumente¶
Keine
Optionen¶
--ignore-anacondaSucht nicht nach Paketen im Snowflake-Anaconda-Kanal. Standard: false
--allow-shared-librariesErlaubt freigegeben Bibliotheken (.so), wenn Sie Pakete verwenden, die über PIP installiert wurden. Standard: false
--index-url TEXTBasis-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-checkVersionsvergleich von Abhängigkeiten zwischen Anforderungen und Anaconda wird übersprungen. Standard: false
-p, --project TEXTPfad, unter dem das Snowflake-Projekt gespeichert ist. Standardmäßig wird das aktuelle Verzeichnis als Arbeitsverzeichnis verwendet.
--env TEXTZeichenfolge im Format Schlüssel=Wert. Überschreibt die Variablen aus dem Abschnitt env, die für Vorlagen verwendet werden. Standard: [].
--connection, -c, --environment TEXTName der Verbindung, wie in Ihrer
config.toml-Datei definiert. Standard:Standard.--host TEXTHost-Adresse für die Verbindung. Überschreibt den für die Verbindung angegebenen Wert.
--port INTEGERPort für die Verbindung. Überschreibt den für die Verbindung angegebenen Wert.
--account, --accountname TEXTName, der Ihrem Snowflake-Konto zugewiesen wurde. Überschreibt den für die Verbindung angegebenen Wert.
--user, --username TEXTBenutzername für die Verbindung zu Snowflake. Überschreibt den für die Verbindung angegebenen Wert.
--password TEXTSnowflake-Kennwort. Überschreibt den für die Verbindung angegebenen Wert.
--authenticator TEXTSnowflake-Authentifikator. Überschreibt den für die Verbindung angegebenen Wert.
--workload-identity-provider TEXTWorkload-Identitätsanbieter (AWS, AZURE, GCP, OIDC). Überschreibt den für die Verbindung angegebenen Wert.
--private-key-file, --private-key-path TEXTDateipfad zum privaten Snowflake-Schlüssel. Überschreibt den für die Verbindung angegebenen Wert.
--token TEXTOAuth-Token, das bei der Verbindung mit Snowflake verwendet werden soll.
--token-file-path TEXTPfad zur Datei mit einem OAuth-Token, das bei der Verbindung mit Snowflake verwendet werden soll.
--database, --dbname TEXTZu verwendende Datenbank. Überschreibt den für die Verbindung angegebenen Wert.
--schema, --schemaname TEXTZu verwendendes Datenbankschema. Überschreibt den für die Verbindung angegebenen Wert.
--role, --rolename TEXTZu verwendende Rolle. Überschreibt den für die Verbindung angegebenen Wert.
--warehouse TEXTZu verwendendes Warehouse. Überschreibt den für die Verbindung angegebenen Wert.
--temporary-connection, -xVerwendet eine mit Befehlszeilenparametern definierte Verbindung anstelle einer in config definierten. Standard: false
--mfa-passcode TEXTFür die mehrstufige Authentifizierung (MFA) zu verwendendes Token.
--enable-diagOb ein Verbindungsdiagnosebericht erstellt werden soll. Standard: false
--diag-log-path TEXTPfad für den generierten Bericht. Standardmäßig wird das temporäre Verzeichnis des Systems verwendet. Standard: <system_temporary_directory>.
--diag-allowlist-path TEXTPfad zu einer JSON-Datei, die allowlist-Parameter enthält.
--oauth-client-id TEXTWert der Client-ID, die vom Identitätsanbieter für die Snowflake-Integration bereitgestellt wird.
--oauth-client-secret TEXTWert des Client-Geheimnisses, das vom Identitätsanbieter für die Snowflake-Integration bereitgestellt wird.
--oauth-authorization-url TEXTEndpunkt des Identitätsanbieters, der den Autorisierungscode an den Treiber liefert.
--oauth-token-request-url TEXTEndpunkt des Identitätsanbieters, der die Zugriffstoken für den Treiber bereitstellt.
--oauth-redirect-uri TEXTFür die Umleitung des Autorisierungscodes zu verwendende URI.
--oauth-scope TEXTBereich, der in der Autorisierungsanfrage des Identitätsanbieters angefordert wird.
--oauth-disable-pkceDeaktiviert den Proof Key For Code Exchange (PKCE). Standard:
False.--oauth-enable-refresh-tokensErmöglicht eine stille Neuauthentifizierung, wenn das aktuelle Zugriffstoken veraltet ist. Standard:
False.--oauth-enable-single-use-refresh-tokensOb Sie sich für die Semantik des einmaligen Aktualisierungs-Tokens entscheiden. Standard:
False.--client-store-temporary-credentialSpeichern der temporären Anmeldeinformationen.
--format [TABLE|JSON|JSON_EXT|CSV]Gibt das Ausgabeformat an. Standard: TABLE.
--verbose, -vZeigt Protokolleinträge für die Protokolliergrade
infound höher an. Standard: false--debugZeigt Protokolleinträge für die Protokollebenen
debugund höher an; Debug-Protokolle enthalten zusätzliche Informationen. Standard: false--silentSchaltet Zwischenausgaben auf der Konsole aus. Standard: false
--enhanced-exit-codesExit-Fehlercodes nach Art des Fehlers unterscheiden. Standard: false
--helpZeigt den Hilfetext für diesen Befehl an.
Nutzungshinweise¶
Die
app.zipenthä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.txtnach Paketen, die im Conda-Kanal verfügbar sind. Bei diesem Prozess wird die Dateirequirements.snowflake.txterstellt, die die im dem Conda-Kanal verfügbaren Projektabhängigkeiten enthält, die später vom Befehlsnow snowpark deployverwendet werden.Standardmäßig sucht der Befehl nach der Datei
snowflake.ymlim aktuellen Verzeichnis. Alternativ können Sie mit der Option--projectauch 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
srcin der Dateisnowflake.yml) in eine Datei namensapp.zipein.Wenn Sie einen anderen Python-Paketindex als PyPi verwenden möchten, geben Sie ihn mit der Option
--index-urlan.Sie können die Option
--skip-version-checkverwenden, um Versionsanforderungen zwischen Projektabhängigkeiten und dem Anaconda-Kanal zu überspringen.Sie können die Option
--ignore-anacondaverwenden, um alle erforderlichen Abhängigkeiten in die Dateiapp.zipaufzunehmen, 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.txtsnow 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.ymlenthält:ls
project_dir some_other_dir some_file.txtsnow 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.