アプリを ROOT_LOCATION から FROM に移行する¶
Streamlitオブジェクトを変換するには、FROM パラメーターで CREATEORREPLACESTREAMLIT を使用します。簡単にするために、この手順ではウェアハウスランタイムを使用することを想定しています。コンテナランタイム(プレビュー)にアップグレードする場合は、互換性を保つためにアプリコードを変更する必要があります。ランタイム環境間の移行 ページをご参照ください。
アプリコードがコンテナランタイムと互換性がある場合は、 CREATEORREPLACESTREAMLIT コマンドに次のパラメーターを追加して、このプロシージャを変更できます。
RUNTIME_NAME = 'SYSTEM$ST_CONTAINER_RUNTIME_PY3_11'
COMPUTE_POOL = my_compute_pool
EXTERNAL_ACCESS_INTEGRATIONS = (pypi_access_integration)
ROOT_LOCATION から FROM にアプリを移行するには、次のステップを実行します。
アプリの現在の構成を確認するには、次のコマンドを実行します。
DESCRIBE STREAMLIT streamlit_db.streamlit_schema.my_app;
streamlit_db.streamlit_schema.my_appをStreamlitオブジェクトに置換します。後のステップで使用するために、テキストエディターを開き、次の値をメモします。後のステップで使用する値を特定して置き換えることができるように、サンプル値を示します。
列
値
namemy_apptitleMy Streamlit Approot_location@db1.schema1/my_app_foldermain_filestreamlit_app.pyquery_warehousemy_warehouseuser_packagesstreamlit==1.45.0, pandas==2.2.0import_urls@db2.schema2/packages/package1.zip, @db3.schema3/packages/package2.zipexternal_access_integrationeai_name_1, eai_name_2external_access_secretssecret1, secret2Streamlitオブジェクトが
root_location列を返さなかった場合、アプリは FROM パラメーターでを使用して作成され、変換を必要としません。エントリポイントファイルがアプリのソースディレクトリのルートにあることを確認します。(コンテナランタイムを使用する場合は、このステップをスキップできます。)
エントリポイントファイルは、前のステップの
main_file値で指定されます。FROM を使用してアプリを作成するには、main_fileは、ソースディレクトリのルートでファイルを宣言する必要があります。エントリポイントファイルがサブディレクトリにある場合は、続行する前にアプリのファイルを再配置し、それに応じてアプリのコードを更新する必要があります。アプリを変換するには、 FROM パラメーターで CREATEORREPLACESTREAMLIT を使用します。
最も単純なケースでは、アプリの
title、user_packages、import_urls、external_access_integrationおよびexternal_access_secretsにNull値が含まれる可能性があります。この場合、以下のコマンドを実行し、プレースホルダーをアプリの値に置き換えることができます。CREATE OR REPLACE STREAMLIT my_app FROM '@db1.schema1/my_app_folder' MAIN_FILE = 'streamlit_app.py' QUERY_WAREHOUSE = my_warehouse;
アプリにオプションのパラメーターの非NULL値がある場合は、そのパラメーターを CREATEORREPLACESTREAMLIT コマンドに含めます。例:
CREATE OR REPLACE STREAMLIT my_app FROM '@db1.schema1/my_app_folder' MAIN_FILE = 'streamlit_app.py' TITLE = 'My Streamlit App' QUERY_WAREHOUSE = my_warehouse IMPORTS = ('@db2.schema2/packages/package1.zip', '@db3.schema3/packages/package2.zip') EXTERNAL_ACCESS_INTEGRATION = ('eai_name_1', 'eai_name_2') SECRETS = ('secret1', 'secret2');
アプリがロードされない場合は、依存関係を確認してください。
依存関係管理の詳細については、 Streamlitアプリの依存関係を管理する をご参照ください。