AI News HubLIVE
站内改写

构建带有嵌入式Amazon SageMaker AI MLflow应用的自定义门户

本文介绍了如何构建一个嵌入Amazon SageMaker AI MLflow应用UI的自定义门户,使用React前端和Flask反向代理实现AWS SigV4认证,并通过AWS CDK部署。该方案提供持久书签URL,简化访问管理,并支持SSO集成。

文章情报

工程师入门

要点

  • 使用React前端和Flask反向代理架构,嵌入SageMaker AI MLflow应用UI。
  • 通过AWS CDK部署,自动处理SigV4认证,无需直接管理AWS凭证。
  • 提供持久、可书签的URL,支持SSO集成和程序化API访问。
  • 涵盖部署步骤、验证方法和安全考虑。

为什么重要

这条新闻值得关注,因为使用React前端和Flask反向代理架构,嵌入SageMaker AI MLflow应用UI。

技术影响

可能影响模型选型、推理成本、产品能力和评测基准。

随着机器学习团队的扩展,将Amazon SageMaker AI MLflow应用嵌入到自定义门户中需要可扩展的访问管理方法。对于拥有数十名数据科学家的团队,分发预签名URL无法扩展,而授予个人AWS管理控制台访问权限会增加管理员的管理开销。依赖SSO集成内部门户的团队需要能够通过单一可书签URL访问其MLflow实验跟踪以及其他内部应用。通过自定义门户,您可以减少新团队成员的上线时间,简化访问管理,并为数据科学家提供跨内部工具的一致体验。

该解决方案为ML团队提供了一个持久的、可书签的URL,用于访问完整的MLflow Web UI,无需预签名URL或AWS管理控制台访问。您可以将MLflow实验跟踪UI直接嵌入到组织的SSO集成内部门户或自定义仪表板中,使用户只需一次认证即可访问实验跟踪以及其他内部工具。您的持续集成和持续交付(CI/CD)管道和自动化脚本可以通过相同的代理端点以编程方式与MLflow REST API交互,SigV4认证在后台处理。

**解决方案概述**

您部署一个自定义React Web应用,其中通过iframe嵌入SageMaker AI MLflow应用UI,并由运行在Amazon EC2上的Flask反向代理支持。架构由四个组件组成:

  • **应用程序负载均衡器(ALB)**:作为单一入口点,处理HTTPS终止,路由流量到后端目标,并与组织的DNS和证书基础设施集成。
  • **React前端门户**:提供品牌化入口点,在iframe中嵌入MLflow跟踪UI,并通过Flask代理从/app路径提供静态文件。
  • **Flask反向代理服务**:位于前端和MLflow后端之间,处理认证。它拦截请求,使用通过承担专用IAM角色获得的临时凭证进行SigV4签名,转发请求到SageMaker AI MLflow应用端点,并重写URL以适配iframe。
  • **Amazon SageMaker AI MLflow应用**:完全托管的MLflow后端,无需配置或修补服务器。

**架构与请求工作流程**

当用户导航到门户时,ALB将请求路由到EC2实例上的Flask代理。Flask代理提供React仪表板(来自/app路径)。React应用渲染页面并在指向/mlflow-ui/的iframe中加载MLflow UI。此后,iframe的每个请求都通过Flask代理,代理使用临时凭证进行SigV4签名并转发到MLflow应用端点。代理在响应返回前重写绝对URL为相对路径,并移除X-Frame-Options头以允许iframe渲染。

**部署步骤**

前提条件包括AWS账户、AWS CLI v2.34.5+、Python 3.13+、AWS CDK v2、Node.js 18.x+、以及足够的IAM权限。部署使用deploy.sh脚本自动执行CDK堆栈部署和MLflow应用创建。

  1. 克隆仓库并安装依赖:git clone ... && npm install
  2. 设置环境变量如账户ID和区域。
  3. 引导CDK环境:cdk bootstrap
  4. 运行部署脚本:bash deploy.sh
  5. 登录EC2实例(通过Session Manager),安装Python 3.13及依赖,并设置MLflow代理服务。
  6. 通过浏览器打开ALB URL验证,或使用curl测试REST API(如创建实验、记录运行)。

**清理**

运行bash cleanup.sh以逆序删除资源,包括Flask应用堆栈、MLflow应用、SageMaker域等。

**安全考虑**

生产环境应使用HTTPS(通过ACM证书),并限制IAM角色权限。Flask代理使用最小权限原则,仅允许必要的MLflow API操作。

该方案为ML团队提供了安全、可扩展的MLflow访问方式,简化了管理并提升了用户体验。