如何重新路由已部署到我的 Kubernetes 集群的 Streamlit 应用程序?

How to re-route my Streamlit app that's been deployed to my Kubernetes cluster?

提问人:mateo 提问时间:11/17/2023 更新时间:11/17/2023 访问量:8

问:

重新路由 Kubernetes 部署的应用时出现问题

嗨,我们已经在 Kubernetes 集群上部署了一个 Streamlit 应用程序,没有问题:该应用程序使用正确的 URL 加载。现在,我们希望在工作环境之外公开此应用,为此,我们计划使用使用 IHttpHandler 类的路由器(请参阅下面的代码)。我们的问题是页面正在部分加载,但所有渲染都没有完成。

下面是我们使用的代码:

public void ProcessRequest (HttpContext context) {
        HttpRequest original = context.Request;

        string service = "our_url";

        HttpWebResponse fwResponse = ForwardRequest(context.Request, service);
        if (fwResponse.StatusCode == HttpStatusCode.OK) {
            Stream stream = fwResponse.GetResponseStream();
            context.Response.ContentType = fwResponse.ContentType;
            stream.CopyTo(context.Response.OutputStream);
            return;
        }
       
    }

    public HttpWebResponse ForwardRequest(HttpRequest request, string serviceUri) {
        HttpWebRequest fwRequest = (HttpWebRequest)WebRequest.Create(serviceUri);

        fwRequest.ContentType = request.ContentType;
        fwRequest.Method = request.HttpMethod;
        fwRequest.UserAgent = request.UserAgent;

        if (request.HttpMethod != "GET"
                && request.HttpMethod != "HEAD"
                && request.ContentLength > 0)
        {
            Stream fwStream = fwRequest.GetRequestStream();
            request.InputStream.CopyTo(fwStream);
            fwStream.Close();
        }

        return (HttpWebResponse)fwRequest.GetResponse();
    }

现在的问题是,我们正确地获取了页面的基本HTML文件,但是对于完全呈现页面所需的.js和.css文件,我们得到了错误404(见下文)。

Kubernetes 部署 路由器 streamlit

评论


答: 暂无答案