Je souhaite afficher des graphiques interactifs en direct basés sur les données client présentes dans MySQL. Pour générer les graphiques, je prévois d’utiliser Amazon Quick Sight, mais je voudrais savoir si les graphiques générés peuvent être intégrés à l’interface utilisateur de mon application Web. La source de données MYSQL est hébergée sur AWS.
Toute autre solution de conception meilleure est également la bienvenue :)
Bonne chance!
Mise à jour: 28 décembre 2018
Amazon a annoncé en novembre 2018 que les tableaux de bord Amazon QuickSight peuvent désormais être intégrés aux applications. Lisez-en plus ici AWS QuickSight Update .
AWS a permis l'incorporation des tableaux de bord dans des applications Web. La fonctionnalité a été publiée le 27 novembre 2018. Voici quelques liens utiles:
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
Remarque: Cette réponse est applicable uniquement si vous utilisez AWS Cognito.
Pour générer l'URL du tableau de bord sécurisé Quicksight, procédez comme suit:
Étape 1: Créez un nouveau pool d’identité. Allez à https://console.aws.Amazon.com/cognito/home?region=u-east-1 , cliquez sur "Créer un nouveau pool d’identité"
Étape 2: Affecter une stratégie personnalisée au rôle de pool d'identités
{ "Version": "2012-10-17", "Déclaration": [ { "Action": "coup d'œil rapide : RegisterUser ", " Ressource ":" * ", " Effet ":" Autoriser " }, { " Action " : "quicksight: GetDashboardEmbedUrl", "Ressource": "*", "Effet": "Autoriser" }, { "Action": "sts: AssumeRole", "Ressource": "*", "Effet": "Autoriser" } ]. }
Remarque: si vous souhaitez limiter l'utilisateur à un seul tableau de bord, remplacez * par le nom de l'ARN du tableau de bord dans quicksight: GetDashboardEmbedUrl,
Étape 3: Configuration pour générer l'utilisateur IAM temporaire (STS)
Connectez-vous à votre application avec les informations d'identification de l'utilisateur.
Pour créer un utilisateur IAM temporaire, nous utilisons les informations d'identification Cognito.
Lorsque l'utilisateur se connecte, Cognito génère 3 ID de jeton: IDToken, AccessToken, RefreshToken. Ces jetons seront envoyés à votre serveur d'applications.
Pour créer un utilisateur IAM temporaire, nous utilisons Cognito Access Token. Les informations d'identification ressemblent à celles décrites ci-dessous.
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: "nom de session" }; .
sts.assumeRole (params, fonction (err, données) { if (err) console.log (err, err.stack); // une erreur est survenue else { console.log (données); })
Étape 4: Enregistrer l'utilisateur dans Quicksight
var params = { AwsAccountId: «id du compte», Email: 'email', IdentityType: 'IAM', Espace de noms: 'default', UserRole: ADMIN | AUTEUR LECTEUR | RESTRICTED_AUTHOR | RESTRICTED_READER, IamArn: 'Rôle d’identité Cognito arn', Nom de session: 'nom de session indiqué dans la création du rôle assume', };
quicksight.registerUser(params, function (err, data1) {
if (err) console.log("err register user”); // an error occurred
else {
// console.log("Register User1”);
}
});
Étape 5: Mettez à jour la configuration AWS avec de nouvelles informations d'identification.
AWS.config.update ({ AccessKeyId: AccessToken, SecretAccessKey: SecretAccessKey, SessionToken: SessionToken, "Région": Région });
Étape 6: Génère l'URL Embed pour les tableaux de bord:
var params = { AwsAccountId: "ID de compte", DashboardId: "ID de tableau de bord", IdentityType: "IAM", ResetDisabled : true, SessionLifetimeInMinutes: entre 15 et 600 minutes, UndoRedoDisabled: True | False } Quicksight.getDashboardEmbedUrl (params, Function (err, données) { If (! Err) { Console.log ( data); } else { console.log (err); } } );
Je sais que c'est une réponse très tardive, mais juste au cas où quelqu'un d'autre tomberait sur cette question ... Nous utilisons periscopedata.com pour intégrer des tableaux de bord BI dans notre application SaaS. Tout ce dont vous avez besoin est une connaissance de SQL (pour créer les graphiques/tableaux de bord) et suffisamment de connaissances en développement pour appeler leur point de terminaison d'API afin d'afficher le tiret dans votre propre application.