在Amazon SageMaker运行streamlit hello无页面加载问题求助
解决SageMaker Notebook实例上Streamlit无法访问的问题
核心原因
SageMaker Notebook实例默认不支持直接通过公网IP访问自定义端口(如8501),必须借助Jupyter Lab的代理路径访问;若要公网直接访问,更适合改用EC2实例部署。
方案1:通过Jupyter Lab代理访问Streamlit
- 在终端启动Streamlit时添加CORS和跨域保护关闭参数,指定端口:
streamlit hello --server.port 8501 --server.enableCORS false --server.enableXsrfProtection false
- 在浏览器中访问以下路径(替换为你的Notebook实例域名):
https://<你的Notebook实例域名>/proxy/8501/
- 实例域名可从SageMaker控制台的Notebook实例详情中获取,格式类似
xxxx.notebook.<区域>.sagemaker.aws
方案2:改用EC2实例部署(支持公网直接访问)
如果需要直接通过公网IP访问应用,推荐使用EC2实例:
- 启动EC2时配置安全组,添加入站规则开放8501端口(允许指定IP或所有公网IP访问)
- 登录EC2实例,安装Python及Streamlit框架
- 启动Streamlit时绑定0.0.0.0地址:
streamlit hello --server.address 0.0.0.0 --server.port 8501
- 直接通过EC2的公网IP+8501端口访问即可
补充排查点
- 确认SageMaker Notebook实例的安全组是否允许出站访问(出站规则可能影响Streamlit加载外部资源)
- 检查终端中Streamlit进程是否持续运行,有无报错输出
内容的提问来源于stack exchange,提问作者Picsou
相关产品推荐
相关产品推荐

