Deploying streamlit on Sagemaker Studio Lab?

I would like to use Sagemaker Studio Lab (https://studiolab.sagemaker.aws) as the development environment for streamit apps rather than running them locally. Note: this product is different than the full version of SageMaker.

In order for this to work, I need to be able to use “streamlit run” and then view the web page that is launched.

I found the instructions below that explain how to run streamlit with “–server.port 6006”. However, when I used this method, the web address listed by streamlit was not accessible.

Here is the article:

Has anyone successfully run streamlit apps from studio lab and been able to access the streamlit app?

This is working fine for me when I

  • run the hello example (streamlit hello)
  • access Streamlit via a URL like https://<unique identifier>.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/proxy/8501/ (trailing slash matters)

Obviously it’s possible to specify different port or server address to bind to (127.0.0.1 works fine) via standard Streamlit options.

Hope this helps.

As an aside, I’d love to get this working on GCP with Vertex Workbench, which also uses Jupyter Lab with jupyter-server-proxy. Unfortunately request processing on GCP appears to be doing something that leads to the dreaded “Unsupported state transition” error when the browser tries to establish a websocket connection to the Streamlit back end.