mysql 是否可以将Amazon QuickSight Jmeter 板图形集成到Web应用程序中?

2ekbmq32  于 12个月前  发布在  Mysql
关注(0)|答案(4)|浏览(109)

我需要显示基于MySQL中存在的客户数据的实时交互式图形,为了生成图形,我计划使用Amazon Quick Sight,但我想知道生成的图形是否可以与我的Web应用程序UI集成?Datasheet MYSQL托管在AWS中。
任何其他更好的设计方案也是最受欢迎的:)

q7solyqu

q7solyqu1#

  • 我不这么认为。即使你想分享 Jmeter 板给别人,你需要在QuickSight中创建一个用户。任何超过1个用户将由AWS收费。
  • Jmeter 板不能是公共的,您需要登录才能查看 Jmeter 板。如果它是公共的,您可以将其作为iframe嵌入到您的网页中。但您不能。
  • 所以,我认为你在这里的选择有限,当涉及到QuickSight。
  • 您可以始终使用D3或Google Charts通过在MySQL中为您的数据公开REST服务来显示数据。
  • 如果你有一个巨大的数据库,你可能需要考虑将数据索引到Elasticsearch并对其执行查询。
  • 检查Kibana + Elasticsearch是否适合您。

祝你好运!

更新日期:2018年12月28日

亚马逊在2018年11月宣布,Amazon QuickSight Jmeter 板现在可以嵌入到应用程序中。在此AWS QuickSight Update了解更多信息。

stszievb

stszievb3#

**注意:**此答案仅适用于使用AWS Cognito的情况

要生成Quicksight安全 Jmeter 板URL,请执行以下步骤:

步骤1:创建新的身份池。转到https://console.aws.amazon.com/cognito/home?region=u-east-1,单击“创建新身份池”

  • 请给予适当的名称。
  • 转到身份验证提供程序部分,选择Cognito
  • 给予用户池ID(您的用户池ID)和应用客户端ID(转到用户池中的应用客户端并复制ID)。
  • 单击**“创建池”。然后单击“允许”**在IAM中创建身份池的角色。
    **步骤2:**将自定义策略分配给身份池角色
  • 使用以下JSON创建自定义策略。
{
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Action": "quicksight:RegisterUser",
                    "Resource": "*",
                    "Effect": "Allow"
                },
                {
                    "Action": "quicksight:GetDashboardEmbedUrl",
                    "Resource": "*",
                    "Effect": "Allow"
                },
                {
                    "Action": "sts:AssumeRole",
                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }

字符串

**注意:**如果您希望将用户限制为仅使用一个 Jmeter 板,请将 * 替换为Quicksight中的 Jmeter 板ARN名称:GetDashboardEmbedUrl,

  • 然后后藤IAM中的角色。
  • 选择身份池的IAM角色并将自定义策略分配给该角色。
    **步骤3:**生成临时IAM(STS)用户的配置
  • 使用用户凭据登录到应用程序。
  • 为了创建临时IAM用户,我们使用Cognito凭据。
  • 当用户登录时,Cognito会生成3个令牌ID- IDToken、AccessToken和RefreshToken。这些令牌将发送到您的应用服务器。

为了创建临时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方法。
var params = {
           RoleArn: "Cognito Identity role arn",
           RoleSessionName: "Session name"
       };
sts.assumeRole(params, function (err, data) {
               if (err) console.log( err, err.stack); // an error occurred
               else {
                   console.log(data);
    })

的字符串

  • 您可以为用户添加其他参数,如持续时间(以秒为单位)。
  • 现在,我们将获得 * AccessKeyId、* SecretAccessKey和Session

临时用户的令牌**。

**步骤4:**在Quicksight中注册用户

  • 借助Step 3中使用的相同Cognito凭据,我们将使用quicksight.registerUser方法和以下参数在quicksight中注册用户
var params = {
                   AwsAccountId: “account id”,
                   Email: 'email',
                   IdentityType: 'IAM' ,
                   Namespace: 'default',
                   UserRole: ADMIN | AUTHOR | READER | RESTRICTED_AUTHOR | RESTRICTED_READER,
                   IamArn: 'Cognito Identity role arn',
                   SessionName: 'session name given in the assume role creation',
               };
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: AccessToken,
                       secretAccessKey: SecretAccessKey ,
                       sessionToken: SessionToken, 
                       "region": Region
                     });

**步骤6:**为 Jmeter 板生成EmbedURL:

  • 通过使用在步骤3中生成的凭据,我们将使用以下参数调用quicksight.getDashboardEmbedUrl
var params = {
                AwsAccountId: "account ID",
                DashboardId: "dashboard Id",
                IdentityType: "IAM",
                ResetDisabled: true,
                SessionLifetimeInMinutes: between 15 to 600 minutes,
                UndoRedoDisabled: True | False
    }
    quicksight.getDashboardEmbedUrl(params,
                             function (err, data) {
                               if (!err) {
                                 console.log( data);
                               } else {
                                 console.log(err);
                               }
                             }
                           );

  • 现在,我们将获取 Jmeter 板的嵌入式URL。
  • 借助上面生成的URL,从前端调用QuickSightEmbedding.embedDashboard
  • 其结果将是嵌入到应用程序中的带有筛选器控件的 Jmeter 板。
nqwrtyyt

nqwrtyyt4#

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

相关问题