ALTER STREAMLIT¶
Modifie les propriétés d’un objet Streamlit existant.
- Voir aussi :
CREATE STREAMLIT, SHOW STREAMLITS, DESCRIBE STREAMLIT, DROP STREAMLIT
Syntaxe¶
ALTER STREAMLIT [ IF EXISTS ] <name> SET
[ MAIN_FILE = '<filename>']
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ RUNTIME_NAME = '<runtime_name>' ]
[ COMPUTE_POOL = <compute_pool_name> ]
[ COMMENT = '<string_literal>']
[ TITLE = '<app_title>' ]
[ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
[ SECRETS = ( '<snowflake_secret_name>' = <snowflake_secret> [ , ... ] ) ]
ALTER STREAMLIT [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER STREAMLIT <name> COMMIT
ALTER STREAMLIT <name> PUSH [ TO <git_branch_uri> ]
[
{
GIT_CREDENTIALS = <snowflake_secret>
| USERNAME = <git_username> PASSWORD = <git_password>
}
NAME = <git_author_name>
EMAIL = <git_author_email>
]
[ COMMENT = <git_push_comment> ]
ALTER STREAMLIT <name> ABORT
ALTER STREAMLIT <name> PULL
ALTER STREAMLIT <name> ADD LIVE VERSION FROM LAST
For Streamlit objects created with ROOT_LOCATION, only the following syntax is supported:
Important
ROOT_LOCATION is a legacy parameter and may be deprecated in a future release. For Streamlit apps created using ROOT_LOCATION, multi-file editing and Git integration are not supported.
ALTER STREAMLIT [ IF EXISTS ] <name> SET
[ ROOT_LOCATION = '<stage_path_and_root_directory>' ]
[ MAIN_FILE = '<path_to_main_file>']
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ COMMENT = '<string_literal>']
[ TITLE = '<app_title>' ]
[ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
ALTER STREAMLIT [ IF EXISTS ] <name> RENAME TO <new_name>
Paramètres¶
nameIdentificateur de l’objet Streamlit. Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.
SET ...Spécifie les propriétés à définir pour l’objet Streamlit :
MAIN_FILE = 'filename'Specifies the Streamlit entrypoint file. The requirements depend on the runtime type:
Warehouse runtimes: The file must be in the root of the source directory specified in FROM. Only a filename is allowed, not a path.
Container runtimes: The file can be in the root or a subdirectory. You can specify a relative path from the root of the source directory, like
'subdir/my_app.py'.If your app was created with ROOT_LOCATION instead of FROM, then MAIN_FILE can be a path relative to ROOT_LOCATION even though ROOT_LOCATION only supports warehouse runtimes.
QUERY_WAREHOUSE = warehouse_nameSpecifies the warehouse used by the Streamlit app. The behavior depends on the runtime type:
Warehouse runtimes: Specifies the warehouse to run the app code and execute SQL queries. This is the code warehouse. It’s recommended to manually switch to a different warehouse within your app code for queries.
Container runtimes: Specifies the warehouse to execute SQL queries issued by the app. The app code runs on the compute pool specified by COMPUTE_POOL.
RUNTIME_NAME = 'runtime_name'Specifies the runtime environment for the Streamlit app. Use this to change the runtime from warehouse to container, from container to warehouse, or from one version to another. Runtime names follow the pattern
SYSTEM$ST_<type>_RUNTIME_PY<version>.Warehouse runtimes: Run the app in a virtual warehouse. Each viewer gets a personal instance of the app. The following warehouse runtimes are valid:
SYSTEM$ST_WAREHOUSE_RUNTIME_PY3_9SYSTEM$ST_WAREHOUSE_RUNTIME_PY3_10SYSTEM$ST_WAREHOUSE_RUNTIME_PY3_11
Container runtimes: Run the app in a Snowpark Container Services compute pool. All viewers share a single, long-running instance of the app. The following container runtimes are valid:
SYSTEM$ST_CONTAINER_RUNTIME_PY3_11
Important
When changing from a warehouse runtime to a container runtime, you must also set the COMPUTE_POOL parameter as appropriate. Container runtimes require a compute pool.
COMPUTE_POOL = compute_pool_nameSpecifies the compute pool where the Streamlit app runs. This parameter is required when using a container runtime and is ignored for warehouse runtimes.
COMMENT = 'string_literal'Ajoute un commentaire ou écrase un commentaire existant pour l’objet Streamlit.
TITLE = 'app_title'Ajoute un titre à afficher dans l’application Streamlit Snowsight.
IMPORTS = ( 'stage_path_and_file_name_to_read' [ , ... ] )The location (stage), path, and name of the file(s) to import. This only applies to warehouse runtimes and is ignored for container runtimes.
EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )Les noms des intégrations d’accès externe nécessaires pour que le code de l’application Streamlit puisse accéder aux réseaux externes.
For container runtimes, external access integrations are required to install packages from external package indexes like PyPI. For all runtime types, external access integrations enable the app to make outbound network requests.
SECRETS = ( 'snowflake_secret_name' = snowflake_secret [ , ... ] )Maps Snowflake secrets to secret names that can be referenced in the Streamlit app code. The secret name (left side) is how you reference the secret in your code, and the secret object (right side) is the identifier of the Snowflake secret.
For example:
SECRETS = ('api_key' = my_database.my_schema.my_secret)Secrets are only available in warehouse runtimes through the
_snowflakemodule and must be associated with an external access integration in EXTERNAL_ACCESS_INTEGRATIONS. In container runtimes, this parameter isn’t supported and you must create SQL functions to access secrets instead. For more information, see Manage secrets and configure your Streamlit app.ROOT_LOCATION = 'stage_path_and_root_directory'Specifies the root stage name and prefix containing the Streamlit Python files, media files, and
environment.ymlfile. This parameter must point to a single directory inside a named internal stage.
RENAME TO new_nameSpecifies the new identifier for the Streamlit object. The identifier must be unique for the schema where the object was created.
Pour plus de détails sur les identificateurs, voir Exigences relatives à l’identificateur.
COMMITValide les modifications en attente dans la version LIVE vers une nouvelle version LAST. Immédiatement après la validation, la version LIVE est identique à la version LAST.
PUSHPousse les dernières modifications validées vers le référentiel Git, en utilisant la branche stockée dans la version de base si
TO git_branch_urin’est pas spécifié.If the base version is not based on a Git branch, this throws an error.
TO git_branch_uriPousse les modifications validées vers la branche spécifiée.
GIT_CREDENTIALS = snowflake_secretSpécifie le secret Snowflake contenant les identifiants de connexion à utiliser pour s’authentifier auprès du référentiel.
USERNAME = git_usernameSpécifie un nom d’utilisateur Git.
PASSWORD = git_passwordSpécifie un mot de passe Git.
NAME = git_author_nameSpécifie le nom de l’auteur git à utiliser.
EMAIL = git_author_emailSpécifie une adresse électronique valide à utiliser comme nom d’auteur git.
COMMENT = git_push_commentSpécifie un commentaire à inclure dans le push git.
ABORTSupprime la version live actuelle de l’application, y compris toutes les modifications apportées dans Snowsight qui n’ont pas été validées.
PULLExtrait les dernières modifications. Vous devez annuler la version live actuelle avant d’extraire.
ADD LIVE VERSION FROM LASTCrée une nouvelle version live de l’application sur la base de la dernière version validée.
Lorsque le propriétaire d’une application Streamlit ouvre l’application dans Snowsight et qu’il n’existe pas de version live, cette commande est exécutée automatiquement. Si un autre utilisateur consulte l’application et qu’une version live n’existe pas, une erreur est renvoyée.
Exigences en matière de contrôle d’accès¶
If your role does not own the objects in the following table, then your role must have the listed privileges on those objects:
Privilège |
Objet |
Notes |
|---|---|---|
OWNERSHIP |
Objet Streamlit que vous modifiez |
|
USAGE |
Warehouse used by the Streamlit app |
This privilege is only required if you set a new value for QUERY_WAREHOUSE. |
USAGE |
Compute pool used by the Streamlit app |
This privilege is only required if you set a new value for COMPUTE_POOL. |
USAGE |
External access integrations used by the Streamlit app |
This privilege is only required if you set a new value for EXTERNAL_ACCESS_INTEGRATIONS. |
USAGE |
Secrets used by the Streamlit app |
This privilege is only required if you set a new value for SECRETS. |
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes sur l’utilisation¶
Si vous supprimez la version live de l’application, un utilisateur ne peut pas consulter l’application tant que vous n’avez pas effectué l’une des actions suivantes :
Exécutez ALTER STREAMLIT … ADD LIVE VERSION FROM LAST sur l’objet Streamlit.
Consultez l’application dans Snowsight avec le rôle qui possède l’application.
If you run the ALTER STREAMLIT command while viewing a Streamlit app in Snowsight, the app reflects the changes differently depending on the runtime type:
Warehouse runtime: The app doesn’t reflect the changes until you select Run.
Container runtime: The app reflects the changes immediately when you next interact with the app.
Si vous souhaitez que vos modifications soient prises en compte dans l’application, vous devez recharger ou redémarrer l’application.
When migrating from warehouse runtime to container runtime:
You must set both RUNTIME_NAME and COMPUTE_POOL.
Your app must use Python 3.11 and Streamlit 1.49 or later.
Ensure your app code is thread-safe and optimized for concurrent viewers.
Replace
get_active_session()withst.connection("snowflake").Replace
_snowflakemodule with native Python equivalents.
For a complete migration checklist, see Migrating between runtime environments.
Concernant les métadonnées :
Attention
Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.
Examples¶
Change the query warehouse¶
To change the warehouse used by a Streamlit app, run the ALTER STREAMLIT command as shown in the following example:
ALTER STREAMLIT my_app
SET QUERY_WAREHOUSE = new_warehouse;
Migrate from a warehouse runtime to a container runtime¶
To migrate a Streamlit app from warehouse runtime to container runtime, run the ALTER STREAMLIT command as shown in the following example:
ALTER STREAMLIT my_app SET
RUNTIME_NAME = 'SYSTEM$ST_CONTAINER_RUNTIME_PY3_11'
COMPUTE_POOL = my_compute_pool
EXTERNAL_ACCESS_INTEGRATIONS = (pypi_access_integration);
Container runtimes require an external access integration to install packages from external package indexes like PyPI. Otherwise, they can only use the default, pre-installed packages. For more information, see Manage dependencies for your Streamlit app.
Add secrets to an existing warehouse-runtime app¶
To add secrets to an existing warehouse-runtime Streamlit app, run the ALTER STREAMLIT command as shown in the following example:
ALTER STREAMLIT my_app SET
EXTERNAL_ACCESS_INTEGRATIONS = (my_access_integration)
SECRETS = ('api_key' = my_database.my_schema.my_api_secret);
Secrets are only available in warehouse runtimes and must be associated with an external access integration. Container-runtime Streamlit apps must use SQL functions to access secrets. For more information, see Manage secrets and configure your Streamlit app.
Rename a Streamlit app¶
To rename a Streamlit app, run the ALTER STREAMLIT command as shown in the following example:
ALTER STREAMLIT old_app_name
RENAME TO new_app_name;
