本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建者:Sean Griffin (AWS) 和 Milena Godau (AWS)
摘要
此模式为将 Amazon QuickSight 控制面板嵌入到本地托管的 Angular 应用程序中进行开发或测试提供了指导。中的嵌入式分析功能本身 QuickSight 不支持此功能。它需要一个拥有现有仪表板和Angular知识的 QuickSight 帐户。
使用嵌入式 QuickSight 仪表板时,通常必须将应用程序托管在 Web 服务器上才能查看仪表板。这使得开发变得更加困难,因为您必须不断地将更改推送到 Web 服务器以确保一切正常运行。此模式展示了如何运行本地托管的服务器,以及如何使用 QuickSight 嵌入式分析来简化开发流程。
先决条件和限制
先决条件
限制
此模式为使用
ANONYMOUS
(可公开访问的)身份验证类型嵌入 QuickSight 仪表板提供了指导。如果您使用的是 AWS Identity and Access Management (IAM) 或使用嵌入式控制面板进行 QuickSight 身份验证,则提供的代码将不适用。但是,操作说明部分中托管 Angular 应用程序的步骤仍然有效。将 GetDashboardEmbedUrlAPI 与
ANONYMOUS
身份类型一起使用需要 QuickSight 容量定价计划。
版本
架构
技术堆栈
Angular 前端
AWS Lambda 和 Amazon API Gateway 后端
架构
在这种架构中,API Gateway APIs 中的 HTTP 使本地 Angular 应用程序能够调用 Lambda 函数。Lambda 函数返回用于嵌入控制面板的网址。 QuickSight

自动化和扩缩
您可以使用 AWS CloudFormation 或 AWS 无服务器应用程序模型 (AWS SAM) Model 自动进行后端部署。
工具
工具
Angular CLI
是命令行界面工具,用于直接从命令 Shell 初始化、开发、搭建和维护 Angular 应用程序。 QuickSight 嵌入 SDK
用于将 QuickSight 仪表板嵌入到您的 HTML 中。 mkcert
是用于创建本地受信任开发证书的简单工具。它不需要配置。mkcert 是必需的,因为只 QuickSight 允许 HTTPS 请求嵌入仪表板。
Amazon Web Services
A@@ mazon API Gateway 是一项 AWS 服务,用于创建、发布、维护、监控和保护任何规模的 RES WebSocket APIs T、HTTP。
AWS Lambda 是一项计算服务,支持无需预置或管理服务器即可运行代码。只有在需要时 Lambda 才运行您的代码,并且能自动扩缩,从每天几个请求扩展到每秒数千个请求。您只需为消耗的计算时间付费 - 代码未运行时不产生费用。
Amazon QuickSight 是一项商业分析服务,用于构建可视化效果、执行临时分析以及从数据中获取业务见解。
操作说明
Task | 描述 | 所需技能 |
---|---|---|
创建 EmbedUrl 策略。 | 创建名为的 IAM 策略 QuicksightGetDashboardEmbedUrl,该策略具有以下属性。
| AWS 管理员 |
创建 Lambda 函数。 | 1. 在 Lambda 控制台上,打开函数页面 2. 选择创建函数。 3. 选择从头开始创作。 4. 对于函数名称,请输入 5. 对于 Runtime(运行时),选择 Python 3.9。 6. 选择创建函数。 7. 在代码选项卡上,将以下代码复制到 Lambda 函数中。
8. 选择部署。 | 应用程序开发人员 |
将控制面板 ID 添加为环境变量。 | 将
| 应用程序开发人员 |
添加 Lambda 函数的权限。 | 修改 Lambda 函数的执行角色并向其添加QuicksightGetDashboardEmbedUrl策略。
| 应用程序开发人员 |
测试 Lambda 函数。 | 创建和运行测试事件。您可以使用 Hello World 模板,因为该函数不会使用测试事件中的任何数据。
注意如前提条件和限制部分所述,您的 QuickSight 账户必须使用会话容量定价计划。否则,此步骤会显示一条错误消息。 | 应用程序开发人员 |
在 API Gateway 中创建一个 API。 |
注意
| 应用程序开发人员 |
Task | 描述 | 所需技能 |
---|---|---|
通过 Angular CLI 创建应用程序。 |
| 应用程序开发人员 |
添加 QuickSight 嵌入式 SDK。 |
| 应用程序开发人员 |
将代码添加到您的 dashboard.component.ts 文件中。 |
| 应用程序开发人员 |
将代码添加到您的 dashboard.component.html 文件中。 | 将以下代码添加到您的
| 应用程序开发人员 |
修改您的 app.component.html 文件,以加载您的控制面板组件。 |
| 应用程序开发人员 |
导 HttpClientModule 入到你的 app.module.ts 文件中。 |
| 应用程序开发人员 |
Task | 描述 | 所需技能 |
---|---|---|
配置 mkcert。 | 注意以下命令适用于 Unix 或 macOS 计算机。如果您使用的是 Windows,请参阅其他信息部分了解等效的 echo 命令。
| 应用程序开发人员 |
配置 QuickSight 为允许您的域名。 |
| AWS 管理员 |
测试解决方案。 | 运行以下命令,启动本地 Angular 开发服务器。
这将启用您之前创建的自定义证书的 Secure Sockets Layer (SSL)。 构建完成后,它会打开一个浏览器窗口,你可以查看在 Angular 中本地托管的嵌入式 QuickSight 仪表板。 | 应用程序开发人员 |
相关资源
其他信息
如果您使用的是 Windows,请以管理员身份运行 Command Prompt 窗口,然后使用以下命令配置 my-qs-app.net
为始终重定向到本地 PC。
echo 127.0.0.1 my-qs-app.net >> %WINDIR%\System32\Drivers\Etc\Hosts