アプリを 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)
Copy

ROOT_LOCATION から FROM にアプリを移行するには、次のステップを実行します。

  1. アプリの現在の構成を確認するには、次のコマンドを実行します。

    DESCRIBE STREAMLIT streamlit_db.streamlit_schema.my_app;
    
    Copy

    streamlit_db.streamlit_schema.my_app をStreamlitオブジェクトに置換します。

  2. 後のステップで使用するために、テキストエディターを開き、次の値をメモします。後のステップで使用する値を特定して置き換えることができるように、サンプル値を示します。

    name

    my_app

    title

    My Streamlit App

    root_location

    @db1.schema1/my_app_folder

    main_file

    streamlit_app.py

    query_warehouse

    my_warehouse

    user_packages

    streamlit==1.45.0, pandas==2.2.0

    import_urls

    @db2.schema2/packages/package1.zip, @db3.schema3/packages/package2.zip

    external_access_integration

    eai_name_1, eai_name_2

    external_access_secrets

    secret1, secret2

    Streamlitオブジェクトが root_location 列を返さなかった場合、アプリは FROM パラメーターでを使用して作成され、変換を必要としません。

  3. エントリポイントファイルがアプリのソースディレクトリのルートにあることを確認します。(コンテナランタイムを使用する場合は、このステップをスキップできます。)

    エントリポイントファイルは、前のステップの main_file 値で指定されます。FROM を使用してアプリを作成するには、 main_file は、ソースディレクトリのルートでファイルを宣言する必要があります。エントリポイントファイルがサブディレクトリにある場合は、続行する前にアプリのファイルを再配置し、それに応じてアプリのコードを更新する必要があります。

  4. アプリを変換するには、 FROM パラメーターで CREATEORREPLACESTREAMLIT を使用します。

    最も単純なケースでは、アプリの titleuser_packagesimport_urlsexternal_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;
    
    Copy

    アプリにオプションのパラメーターの非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');
    
    Copy
  5. アプリがロードされない場合は、依存関係を確認してください。

    依存関係管理の詳細については、 Streamlitアプリの依存関係を管理する をご参照ください。