【问题标题】:Is it possible to integrate Amazon QuickSight dashboard graphs to a web application?是否可以将 Amazon QuickSight 控制面板图集成到 Web 应用程序?
【发布时间】:2017-05-18 11:25:11
【问题描述】:

我需要根据 MySQL 中存在的客户数据显示实时交互式图表,为了生成图表,我计划使用 Amazon Quick Sight,但我想知道生成的图表是否可以与我的 Web 应用程序 UI 集成? 数据源 MYSQL 托管在 AWS 中。

也欢迎任何其他更好的设计解决方案:)

【问题讨论】:

标签: mysql amazon-web-services


【解决方案1】:
  • 我不这么认为。即使您想将仪表板共享给 某人,您需要在 QuickSight 中创建一个用户。任何超过 1 AWS 将向用户收费。
  • 仪表板不能公开,需要登录才能查看 仪表盘。如果它是公开的,你可以将它嵌入到你的 网页作为 iframe。但你不能。
  • 所以,当涉及到 QuickSight。
  • 您始终可以使用 D3 或 Google Charts 通过以下方式显示数据 在 MySQL 中为您的数据公开 REST 服务。
  • 如果您有一个庞大的数据库,您可能需要考虑为 数据到 Elasticsearch 并对其执行查询。
  • 检查 Kibana + Elasticsearch 是否适合您。

祝你好运!

更新:2018 年 12 月 28 日

Amazon 于 2018 年 11 月宣布,Amazon QuickSight 控制面板现在可以嵌入到应用程序中。在此AWS QuickSight Update 阅读更多信息。

【讨论】:

  • 感谢您的意见 Yeshodhan :)
  • 这个答案中的建议可以很好地总结“我需要在经过身份验证的 Web 应用程序中绘制数据”的各种策略。
【解决方案2】:

AWS 已启用将仪表板嵌入到 Web 应用程序中。该功能于 2018 年 11 月 27 日发布。以下是一些有用的链接:
1.https://aws.amazon.com/blogs/big-data/embed-interactive-dashboards-in-your-application-with-amazon-quicksight/
2.https://docs.aws.amazon.com/quicksight/latest/user/embedded-dashboards-setup.html

【讨论】:

  • 请避免发布链接作为答案。随着问题变得越来越老,这些链接通常不再起作用。您可以使用这些链接的相关部分编辑答案。非常感谢
【解决方案3】:

注意:此答案仅在您使用 AWS Cognito 时适用

要生成 Quicksight 安全仪表板 URL,请按照以下步骤操作:

第 1 步:创建一个新的身份池。转到https://console.aws.amazon.com/cognito/home?region=u-east-1,点击‘创建新身份池’

  • 给一个合适的名字。
  • 转到Authentication Providers部分,选择Cognito
  • 提供用户池 ID(您的用户池 ID)和应用客户端 ID(转到应用 用户池中的客户端和副本 ID)。
  • 点击“创建池”。然后点击‘允许’创建角色 IAM 中的身份池。

第 2 步:将自定义策略分配给身份池角色

  • 使用以下 JSON 创建自定义策略。
{ “版本”:“2012-10-17”, “陈述”: [ { "Action": "quicksight:RegisterUser", “资源”:“*”, “效果”:“允许” }, { "Action": "quicksight:GetDashboardEmbedUrl", “资源”:“*”, “效果”:“允许” }, { "动作": "sts:AssumeRole", “资源”:“*”, “效果”:“允许” } ] }

注意:如果您想限制用户只能使用一个仪表板,请将 * 替换为 quicksight 中的仪表板 ARN 名称:GetDashboardEmbedUrl,

  • 然后转到 IAM 中的角色。
  • 选择身份池的 IAM 角色并分配自定义策略 角色。

第 3 步:配置生成临时 IAM(STS) 用户

  • 使用用户凭据登录到您的应用程序。

  • 为了创建临时 IAM 用户,我们使用 Cognito 凭证。

  • 当用户登录时,Cognito 会生成 3 个令牌 ID - IDToken, 访问令牌,刷新令牌。这些令牌将被发送到您的应用服务器。

为了创建临时 IAM 用户,我们使用 Cognito 访问令牌,凭证如下所示。

 AWS.config.region = 'us-east-1';
       AWS.config.credentials = new AWS.CognitoIdentityCredentials({
           IdentityPoolId:"Identity pool ID",
           Logins: {
               'cognito-idp.us-east-1.amazonaws.com/UserPoolID': AccessToken
           }
       });
  • 为了生成临时 IAM 凭证,我们调用 sts.assume role 具有以下参数的方法。
变量参数 = { RoleArn: "Cognito Identity 角色 arn", RoleSessionName: "会话名称" }; sts.assumeRole(参数,函数(错误,数据){ if (err) console.log(err, err.stack); // 发生错误 别的 { 控制台.log(数据); })
  • 您可以为 用户。
  • 现在,我们将获得 AccessKeyId、SecretAccessKey 和 Session
    临时用户的令牌

第 4 步:在 Quicksight 中注册用户

  • 借助 步骤 3 中使用的相同 Cognito 凭据,我们将 使用 quicksight.registerUser 在 quicksight 中注册用户 具有以下参数的方法
变量参数 = { AwsAccountId:“帐户 ID”, 电子邮件:'电子邮件', 身份类型:'IAM', 命名空间:'默认', 用户角色:管理员 |作者 |读者 | RESTRICTED_AUTHOR | RESTRICTED_READER, IamArn: 'Cognito 身份角色 arn', SessionName: '假设角色创建中给出的会话名称', };
quicksight.registerUser(params, function (err, data1) {
                   if (err) console.log("err register user”); // an error occurred
                   else {
                       // console.log("Register User1”);
                   }
               });
  • 现在用户将在 quicksight 中注册。

第 5 步:使用新凭证更新 AWS 配置。

  • 下面的代码显示了如何使用新配置 AWS.config() 生成的凭据第 3 步。
AWS.config.update({ accessKeyId:访问令牌, 秘密访问密钥:秘密访问密钥, sessionToken:会话令牌, “地区”:地区 });

第 6 步:为仪表板生成 EmbedURL:

  • 通过使用在步骤 3 中生成的凭据,我们将调用 quicksight.getDashboardEmbedUrl 使用以下参数
变量参数 = { AwsAccountId: "账户 ID", DashboardId: "仪表板 ID", 身份类型:“IAM”, 重置禁用:真, SessionLifetimeInMinutes:15 到 600 分钟之间, UndoRedoDisabled: 真 |错误的 } quicksight.getDashboardEmbedUrl(参数, 功能(错误,数据){ 如果(!错误){ 控制台.log(数据); } 别的 { 控制台日志(错误); } } );
  • 现在,我们将获取仪表板的嵌入网址。
  • 从前端调用 QuickSightEmbedding.embedDashboard 上面生成的 url 的帮助。
  • 结果将是嵌入在您的应用程序中的仪表板 过滤控件。

【讨论】:

【解决方案4】:

我知道这是一个很晚的回复,但以防其他人偶然发现这个问题......我们使用 periscopedata.com 将 BI 仪表板嵌入到我们的 SaaS 应用程序中。所需要的只是 SQL 知识(用于创建图表/仪表板)和足够的开发知识来调用其 API 端点以在您自己的应用中显示仪表板。

【讨论】:

    猜你喜欢
    • 2011-05-07
    • 2020-03-31
    • 2020-07-28
    • 1970-01-01
    • 2018-10-16
    • 2013-04-18
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多