snow snowpark deploy¶
Deploys procedures and functions defined in project. Deploying the project alters all objects defined in it. By default, if any of the objects exist already the commands will fail unless --replace
flag is provided. Required artifacts are deployed before creating functions or procedures. Dependencies are deployed once to every stage specified in definitions.
Syntax¶
snow snowpark deploy
--replace
--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
Arguments¶
None
Options¶
--replace
Replaces procedure or function, even if no detected changes to metadata. Default: False.
-p, --project TEXT
Path where Snowflake project resides. Defaults to current working directory.
--env TEXT
String in format of key=value. Overrides variables from env section used for templates. Default: [].
--connection, -c, --environment TEXT
Name of the connection, as defined in your
config.toml
file. Default:default
.--host TEXT
Host address for the connection. Overrides the value specified for the connection.
--port INTEGER
Port for the connection. Overrides the value specified for the connection.
--account, --accountname TEXT
Name assigned to your Snowflake account. Overrides the value specified for the connection.
--user, --username TEXT
Username to connect to Snowflake. Overrides the value specified for the connection.
--password TEXT
Snowflake password. Overrides the value specified for the connection.
--authenticator TEXT
Snowflake authenticator. Overrides the value specified for the connection.
--private-key-file, --private-key-path TEXT
Snowflake private key file path. Overrides the value specified for the connection.
--token-file-path TEXT
Path to file with an OAuth token that should be used when connecting to Snowflake.
--database, --dbname TEXT
Database to use. Overrides the value specified for the connection.
--schema, --schemaname TEXT
Database schema to use. Overrides the value specified for the connection.
--role, --rolename TEXT
Role to use. Overrides the value specified for the connection.
--warehouse TEXT
Warehouse to use. Overrides the value specified for the connection.
--temporary-connection, -x
Uses connection defined with command line parameters, instead of one defined in config. Default: False.
--mfa-passcode TEXT
Token to use for multi-factor authentication (MFA).
--enable-diag
Run Python connector diagnostic test. Default: False.
--diag-log-path TEXT
Diagnostic report path. Default: <temporary_directory>.
--diag-allowlist-path TEXT
Diagnostic report path to optional allowlist.
--format [TABLE|JSON]
Specifies the output format. Default: TABLE.
--verbose, -v
Displays log entries for log levels
info
and higher. Default: False.--debug
Displays log entries for log levels
debug
and higher; debug logs contain additional information. Default: False.--silent
Turns off intermediate output to console. Default: False.
--help
Displays the help text for this command.
Usage notes¶
The snow snowpark deploy
command does the following:
Checks to see whether the objects listed for deployment already exist. If the objects exist, you must use the
--replace
option.Creates a stage in the database specified for your connection. If no stage is defined, the command creates a stage named
deployments
.Uploads the
app.zip
file to the stage.Creates the objects specified then
snowflake.yml
file by executing the SQL CREATE PROCEDURE or CREATE FUNCTION queries.
The command deploys the source code and dependencies from the most recent build. If you modified the code or added any requirements since the last build, you must run the snow snowpark build command again before deploying the new version.
Examples¶
The following example shows how to deploy functions and procedures in the current directory.
snow snowpark deploy
+-----------------------------------------------------------------------------------+
| object | type | status |
|----------------------------------------------------+-----------+------------------|
| MY_DATABASE.PUBLIC.HELLO_PROCEDURE(name string) | procedure | packages updated |
| MY_DATABASE.PUBLIC.TEST_PROCEDURE() | procedure | created |
| MY_DATABASE.PUBLIC.HELLO_FUNCTION(name string) | function | packages updated |
+-----------------------------------------------------------------------------------+
The following example shows what happens when objects already exist and you deploy without specifying the --replace
option.
snow snowpark deploy
╭─ Error ──────────────────────────────────────────────────────────╮
│ Following objects already exists. Consider using --replace. |
│ function: MY_DATABASE.PUBLIC.HELLO_FUNCTION(string) |
│ procedure: MY_DATABASE.PUBLIC.HELLO_PROCEDURE(string) |
│ procedure: MY_DATABASE.PUBLIC.TEST_PROCEDURE() |
╰──────────────────────────────────────────────────────────────────╯