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. All deployed objects use the same artifact which is deployed only once.

Syntax¶

snow snowpark deploy
  --replace
  --project <project_definition>
  --env <env_overrides>
  --connection <connection>
  --account <account>
  --user <user>
  --password <password>
  --authenticator <authenticator>
  --private-key-path <private_key_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

Arguments¶

None

Options¶

--replace

Replaces procedure or function, even if no detected changes to metadata.

-p, --project TEXT

Path where the Snowpark project resides. Defaults to current working directory.

--env TEXT

String in format of key=value. Overrides variables from env section used for templating.

--connection, -c, --environment TEXT

Name of the connection, as defined in your config.toml. Default: default.

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

Snowflake private key path. Overrides the value specified for the connection.

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

--mfa-passcode TEXT

Token to use for multi-factor authentication (MFA).

--enable-diag

Run python connector diagnostic test.

--diag-log-path TEXT

Diagnostic report path.

--diag-allowlist-path TEXT

Diagnostic report path to optional allowlist.

--format [TABLE|JSON]

Specifies the output format.

--verbose, -v

Displays log entries for log levels info and higher.

--debug

Displays log entries for log levels debug and higher; debug logs contains additional information.

--silent

Turns off intermediate output to console.

--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
Copy
+-----------------------------------------------------------------------------------+
| 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
Copy
╭─ 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()                   |
╰──────────────────────────────────────────────────────────────────╯