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
--force-replace
--prune / --no-prune
--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
Arguments¶
None
Options¶
--replaceReplaces procedure or function if there were changes in the definition. It only uploads new and overwrites existing files, but does not remove any files already on the stage. Default: False.
--force-replaceReplace this object, even if the state didn’t change. Default: False.
--prune / --no-pruneRemove contents of the stage before uploading artifacts. Default: False.
-p, --project TEXTPath where the Snowflake project is stored. Defaults to the current working directory.
--env TEXTString in the format key=value. Overrides variables from the env section used for templates. Default: [].
--connection, -c, --environment TEXTName of the connection, as defined in your
config.tomlfile. Default:default.--host TEXTHost address for the connection. Overrides the value specified for the connection.
--port INTEGERPort for the connection. Overrides the value specified for the connection.
--account, --accountname TEXTName assigned to your Snowflake account. Overrides the value specified for the connection.
--user, --username TEXTUsername to connect to Snowflake. Overrides the value specified for the connection.
--password TEXTSnowflake password. Overrides the value specified for the connection.
--authenticator TEXTSnowflake authenticator. Overrides the value specified for the connection.
--workload-identity-provider TEXTWorkload identity provider (AWS, AZURE, GCP, OIDC). Overrides the value specified for the connection.
--private-key-file, --private-key-path TEXTSnowflake private key file path. Overrides the value specified for the connection.
--token TEXTOAuth token to use when connecting to Snowflake.
--token-file-path TEXTPath to file with an OAuth token to use when connecting to Snowflake.
--database, --dbname TEXTDatabase to use. Overrides the value specified for the connection.
--schema, --schemaname TEXTDatabase schema to use. Overrides the value specified for the connection.
--role, --rolename TEXTRole to use. Overrides the value specified for the connection.
--warehouse TEXTWarehouse to use. Overrides the value specified for the connection.
--temporary-connection, -xUses a connection defined with command line parameters, instead of one defined in config. Default: False.
--mfa-passcode TEXTToken to use for multi-factor authentication (MFA).
--enable-diagWhether to generate a connection diagnostic report. Default: False.
--diag-log-path TEXTPath for the generated report. Defaults to system temporary directory. Default: <system_temporary_directory>.
--diag-allowlist-path TEXTPath to a JSON file that contains allowlist parameters.
--oauth-client-id TEXTValue of client id provided by the Identity Provider for Snowflake integration.
--oauth-client-secret TEXTValue of the client secret provided by the Identity Provider for Snowflake integration.
--oauth-authorization-url TEXTIdentity Provider endpoint supplying the authorization code to the driver.
--oauth-token-request-url TEXTIdentity Provider endpoint supplying the access tokens to the driver.
--oauth-redirect-uri TEXTURI to use for authorization code redirection.
--oauth-scope TEXTScope requested in the Identity Provider authorization request.
--oauth-disable-pkceDisables Proof Key for Code Exchange (PKCE). Default:
False.--oauth-enable-refresh-tokensEnables a silent re-authentication when the actual access token becomes outdated. Default:
False.--oauth-enable-single-use-refresh-tokensWhether to opt-in to single-use refresh token semantics. Default:
False.--client-store-temporary-credentialStore the temporary credential.
--format [TABLE|JSON|JSON_EXT|CSV]Specifies the output format. Default: TABLE.
--verbose, -vDisplays log entries for log levels
infoand higher. Default: False.--debugDisplays log entries for log levels
debugand higher; debug logs contain additional information. Default: False.--silentTurns off intermediate output to console. Default: False.
--enhanced-exit-codesDifferentiate exit error codes based on failure type. Default: False.
--helpDisplays 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
--replaceoption.Note
If you want to update objects and files, even if they did not change, you can use the
--force-replaceoption.Creates a stage in the database specified for your connection. If no stage is defined, the command creates a stage named
deployments.If the
--pruneoption was specified, removes existing content from the stage used by defined procedures and function objects.Uploads the new artifacts.
Creates the objects specified then
snowflake.ymlfile 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() |
╰──────────────────────────────────────────────────────────────────╯