我需要根据MySQL中的客户数据显示实时交互式图表,以生成图表,我计划使用Amazon Quick Sight,但我想知道生成的图表是否可以与我的Web应用程序UI集成? Datasource MYSQL托管在AWS。
任何其他更好的设计解决方案也是最受欢迎的:)
答案 0 :(得分:8)
更新:2018年12月28日
亚马逊于2018年11月宣布,Amazon QuickSight仪表板现在可以嵌入到应用程序中。点击此处了解详情AWS QuickSight Update。
答案 1 :(得分:1)
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
答案 2 :(得分:0)
我知道这是一个非常晚的回复,但万一其他人偶然发现了这个问题......我们使用periscopedata.com在我们的SaaS应用中嵌入了BI仪表板。所需要的只是SQL的知识(创建图表/仪表板)和足够的开发知识来调用他们的API端点以在您自己的应用程序中显示短划线。
答案 3 :(得分:0)
注意::仅当您使用AWS Cognito时,此答案才适用
为了生成Quicksight安全仪表板URL,请执行以下步骤:
步骤1:创建一个新的身份池。转到https://console.aws.amazon.com/cognito/home?region=u-east-1,点击“创建新的身份库”
步骤2:将自定义策略分配给身份池角色
{ "Version": "2012-10-17", "Statement": [ { "Action": "quicksight:RegisterUser", "Resource": "*", "Effect": "Allow" }, { "Action": "quicksight:GetDashboardEmbedUrl", "Resource": "*", "Effect": "Allow" }, { "Action": "sts:AssumeRole", "Resource": "*", "Effect": "Allow" } ] }
注意:如果要将用户限制为仅一个仪表板,请在quicksight:GetDashboardEmbedUrl中将*替换为仪表板ARN名称,
步骤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
}
});
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); })
步骤4:在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”);
}
});
步骤5:使用新凭据更新AWS配置。
AWS.config.update({ accessKeyId: AccessToken, secretAccessKey: SecretAccessKey , sessionToken: SessionToken, "region": Region });
第6步::为仪表板生成EmbedURL:
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); } } );