如何创建采用参数化数据源的多租户QuickSight仪表板模板?
多租户QuickSight嵌入式仪表板解决方案
1. 先搭好基础复用模板
找任意一个样本客户的数据库,在QuickSight UI里把需要的图表、计算逻辑、筛选器都配置成完整的仪表板,然后直接将这个仪表板保存为QuickSight模板——模板只存储仪表板的布局和配置规则,不绑定具体的数据源和数据集,这是实现复用的核心。
2. 动态管理租户的数据源与数据集
- 把所有租户的元数据(比如
tenant_id对应的数据库地址、账号密码)存在DynamoDB这类存储里,方便快速查询。 - 新租户创建时,通过Lambda自动调用QuickSight API:
- 先为该租户创建专属数据源(指向其独立数据库)
- 基于之前的模板生成绑定该数据源的专属数据集
- 租户移除时,同样通过Lambda调用API删除对应的数据源和数据集,自动清理资源。
3. 前端嵌入URL的生成流程
用户登录后前端传入tenant_id到API网关,Lambda执行以下操作:
- 从元数据存储中取出该租户对应的QuickSight数据集ARN
- 调用QuickSight的嵌入URL生成API,指定使用基础模板,同时通过参数将模板关联的数据集替换为该租户的专属数据集
- 将生成的嵌入URL返回给前端,前端加载后即可展示该租户的专属数据仪表板
4. 模板更新同步所有租户
当需要修改仪表板布局、新增图表或调整计算逻辑时,直接在QuickSight UI中修改样本仪表板,然后覆盖更新原模板即可。后续所有租户加载嵌入仪表板时,会自动使用更新后的模板配置,无需逐个调整租户资源。
核心优势
- 无需为每个租户单独创建仪表板,一套模板适配所有租户
- 租户动态增减全靠Lambda自动处理,每日新增/移除租户都能轻松适配
- 模板更新一次,所有租户同步生效,大幅降低维护成本
- 无需合并租户数据到数据湖,保留各租户数据的独立性与安全性
内容的提问来源于stack exchange,提问作者Mambazo
相关产品推荐
相关产品推荐

