Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Intégration de la barre de recherche Amazon QuickSight Q pour les utilisateurs anonymes (non enregistrés)
Public cible : QuickSight développeurs Amazon |
Note
La barre de recherche QuickSight Q intégrée offre une expérience de QuickSight questions-réponses classique. QuickSight s'intègre à Amazon Q Business pour lancer une nouvelle expérience générative de questions-réponses. Il est recommandé aux développeurs d'utiliser la nouvelle expérience de questions-réponses génératives. Pour plus d'informations sur l'expérience de questions-réponses générative intégrée, consultezIntégrer Amazon Q à une expérience QuickSight générative de questions-réponses.
Dans les sections suivantes, vous trouverez des informations détaillées sur la façon de configurer une barre de recherche Amazon QuickSight Q intégrée pour les utilisateurs anonymes (non enregistrés).
Rubriques
Étape 1 : Configurer des autorisations
Note
La barre de recherche QuickSight Q intégrée offre une expérience de QuickSight questions-réponses classique. QuickSight s'intègre à Amazon Q Business pour lancer une nouvelle expérience générative de questions-réponses. Il est recommandé aux développeurs d'utiliser la nouvelle expérience de questions-réponses génératives. Pour plus d'informations sur l'expérience de questions-réponses générative intégrée, consultezIntégrer Amazon Q à une expérience QuickSight générative de questions-réponses.
Dans la section suivante, vous apprendrez à configurer les autorisations pour l'application backend ou le serveur web afin d'intégrer la barre de recherche Q. Cette tâche nécessite un accès administratif à AWS Identity and Access Management (IAM).
Chaque utilisateur qui accède à une barre de recherche Q assume un rôle qui lui donne QuickSight accès et autorisations à Amazon pour accéder à la barre de recherche Q. Pour que cela soit possible, créez un IAM rôle dans votre Compte AWS. Associez une IAM politique au rôle afin de fournir des autorisations à tout utilisateur qui l'assume. Le IAM rôle doit fournir des autorisations pour récupérer l'intégration URLs pour un groupe d'utilisateurs spécifique.
À l'aide du caractère générique *, vous pouvez accorder l'autorisation de générer un URL pour tous les utilisateurs d'un espace de noms spécifique. Vous pouvez également accorder des autorisations pour générer un nom URL pour un sous-ensemble d'utilisateurs dans des espaces de noms spécifiques. Pour cela, ajoutez quicksight:GenerateEmbedUrlForAnonymousUser
.
Vous pouvez créer une condition dans votre IAM politique qui limite les domaines que les développeurs peuvent répertorier dans les AllowedDomains
paramètres d'une GenerateEmbedUrlForAnonymousUser
API opération. Le paramètre AllowedDomains
est un paramètre facultatif. Il donne aux développeurs la possibilité de remplacer les domaines statiques configurés dans le QuickSight menu Gérer et de répertorier jusqu'à trois domaines ou sous-domaines pouvant accéder à un domaine généré. URL Il URL est ensuite intégré au site Web d'un développeur. Seuls les domaines répertoriés dans le paramètre peuvent accéder à la barre de recherche Q intégrée. Sans cette condition, les développeurs peuvent répertorier n'importe quel domaine sur Internet dans le paramètre AllowedDomains
.
Pour limiter les domaines que les développeurs peuvent utiliser avec ce paramètre, ajoutez une AllowedEmbeddingDomains
condition à votre IAM politique. Pour plus d'informations sur le AllowedDomains
paramètre, consultez GenerateEmbedUrlForAnonymousUserle Amazon QuickSight API Reference.
L'exemple de stratégie suivant fournit ces autorisations.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "quicksight:GenerateEmbedUrlForAnonymousUser" ], "Resource": [ "arn:{{
partition
}}:quicksight:{{region
}}:{{accountId
}}:namespace/{{namespace
}}", "arn:{{partition
}}:quicksight:{{region
}}:{{accountId
}}:dashboard/{{dashboardId-1
}}", "arn:{{partition
}}:quicksight:{{region
}}:{{accountId
}}:dashboard/{{dashboardId-2
}}" ], "Condition": { "ForAllValues:StringEquals": { "quicksight:AllowedEmbeddingDomains": [ "https://my.static.domain1.com", "https://*.my.static.domain2.com" ] } } }
L'IAMidentité de votre application doit être associée à une politique de confiance pour autoriser l'accès au rôle que vous venez de créer. Cela signifie que lorsqu'un utilisateur accède à votre application, votre application peut assumer le rôle pour le compte de l'utilisateur afin d'ouvrir la barre de recherche Q. Voici un exemple de politique d'approbation.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLambdaFunctionsToAssumeThisRole", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Sid": "AllowEC2InstancesToAssumeThisRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Pour plus d'informations sur les politiques de confiance, consultez la section Informations d'identification de sécurité temporaires IAM dans le guide de IAM l'utilisateur
Étape 2 : Générez le URL avec le code d'authentification joint
Note
La barre de recherche QuickSight Q intégrée offre une expérience de QuickSight questions-réponses classique. QuickSight s'intègre à Amazon Q Business pour lancer une nouvelle expérience générative de questions-réponses. Il est recommandé aux développeurs d'utiliser la nouvelle expérience de questions-réponses génératives. Pour plus d'informations sur l'expérience de questions-réponses générative intégrée, consultezIntégrer Amazon Q à une expérience QuickSight générative de questions-réponses.
Dans la section suivante, vous trouverez comment authentifier votre utilisateur et obtenir la rubrique Q intégrable URL sur votre serveur d'applications.
Lorsqu'un utilisateur accède à votre application, celle-ci assume le IAM rôle en son nom. L'application ajoute ensuite l'utilisateur à QuickSight, s'il n'existe pas déjà. Puis, elle transmet un identifiant comme ID de session de rôle unique.
Pour de plus amples informations, veuillez consulter AnonymousUserQSearchBarEmbeddingConfiguration
.
import java.util.List; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.regions.Regions; import com.amazonaws.services.quicksight.AmazonQuickSight; import com.amazonaws.services.quicksight.AmazonQuickSightClientBuilder; import com.amazonaws.services.quicksight.model.AnonymousUserQSearchBarEmbeddingConfiguration; import com.amazonaws.services.quicksight.model.AnonymousUserEmbeddingExperienceConfiguration; import com.amazonaws.services.quicksight.model.GenerateEmbedUrlForAnonymousUserRequest; import com.amazonaws.services.quicksight.model.GenerateEmbedUrlForAnonymousUserResult; import com.amazonaws.services.quicksight.model.SessionTag; /** * Class to call QuickSight AWS SDK to generate embed url for anonymous user. */ public class GenerateEmbedUrlForAnonymousUserExample { private final AmazonQuickSight quickSightClient; public GenerateEmbedUrlForAnonymousUserExample() { quickSightClient = AmazonQuickSightClientBuilder .standard() .withRegion(Regions.US_EAST_1.getName()) .withCredentials(new AWSCredentialsProvider() { @Override public AWSCredentials getCredentials() { // provide actual IAM access key and secret key here return new BasicAWSCredentials("access-key", "secret-key"); } @Override public void refresh() { } } ) .build(); } public String GenerateEmbedUrlForAnonymousUser( final String accountId, // YOUR AWS ACCOUNT ID final String initialTopicId, // Q TOPIC ID TO WHICH THE CONSTRUCTED URL POINTS AND SEARCHBAR PREPOPULATES INITIALLY final String namespace, // ANONYMOUS EMBEDDING REQUIRES SPECIFYING A VALID NAMESPACE FOR WHICH YOU WANT THE EMBEDDING URL final List<String> authorizedResourceArns, // Q SEARCHBAR TOPIC ARN LIST TO EMBED final List<String> allowedDomains, // RUNTIME ALLOWED DOMAINS FOR EMBEDDING final List<SessionTag> sessionTags // SESSION TAGS USED FOR ROW-LEVEL SECURITY ) throws Exception { AnonymousUserEmbeddingExperienceConfiguration experienceConfiguration = new AnonymousUserEmbeddingExperienceConfiguration(); AnonymousUserQSearchBarEmbeddingConfiguration qSearchBarConfiguration = new AnonymousUserQSearchBarEmbeddingConfiguration(); qSearchBarConfiguration.setInitialTopicId(initialTopicId); experienceConfiguration.setQSearchBar(qSearchBarConfiguration); GenerateEmbedUrlForAnonymousUserRequest generateEmbedUrlForAnonymousUserRequest = new GenerateEmbedUrlForAnonymousUserRequest() .withAwsAccountId(accountId) .withNamespace(namespace) .withAuthorizedResourceArns(authorizedResourceArns) .withExperienceConfiguration(experienceConfiguration) .withSessionTags(sessionTags) .withSessionLifetimeInMinutes(600L); // OPTIONAL: VALUE CAN BE [15-600]. DEFAULT: 600 .withAllowedDomains(allowedDomains); GenerateEmbedUrlForAnonymousUserResult qSearchBarEmbedUrl = quickSightClient.generateEmbedUrlForAnonymousUser(generateEmbedUrlForAnonymousUserRequest); return qSearchBarEmbedUrl.getEmbedUrl(); } }
global.fetch = require('node-fetch'); const AWS = require('aws-sdk'); function generateEmbedUrlForAnonymousUser( accountId, // YOUR AWS ACCOUNT ID initialTopicId, // Q TOPIC ID TO WHICH THE CONSTRUCTED URL POINTS quicksightNamespace, // VALID NAMESPACE WHERE YOU WANT TO DO NOAUTH EMBEDDING authorizedResourceArns, // Q SEARCHBAR TOPIC ARN LIST TO EMBED allowedDomains, // RUNTIME ALLOWED DOMAINS FOR EMBEDDING sessionTags, // SESSION TAGS USED FOR ROW-LEVEL SECURITY generateEmbedUrlForAnonymousUserCallback, // SUCCESS CALLBACK METHOD errorCallback // ERROR CALLBACK METHOD ) { const experienceConfiguration = { "QSearchBar": { "InitialTopicId": initialTopicId // TOPIC ID CAN BE FOUND IN THE URL ON THE TOPIC AUTHOR PAGE } }; const generateEmbedUrlForAnonymousUserParams = { "AwsAccountId": accountId, "Namespace": quicksightNamespace, "AuthorizedResourceArns": authorizedResourceArns, "AllowedDomains": allowedDomains, "ExperienceConfiguration": experienceConfiguration, "SessionTags": sessionTags, "SessionLifetimeInMinutes": 600 }; const quicksightClient = new AWS.QuickSight({ region: process.env.AWS_REGION, credentials: { accessKeyId: AccessKeyId, secretAccessKey: SecretAccessKey, sessionToken: SessionToken, expiration: Expiration } }); quicksightClient.generateEmbedUrlForAnonymousUser(generateEmbedUrlForAnonymousUserParams, function(err, data) { if (err) { console.log(err, err.stack); errorCallback(err); } else { const result = { "statusCode": 200, "headers": { "Access-Control-Allow-Origin": "*", // USE YOUR WEBSITE DOMAIN TO SECURE ACCESS TO THIS API "Access-Control-Allow-Headers": "Content-Type" }, "body": JSON.stringify(data), "isBase64Encoded": false } generateEmbedUrlForAnonymousUserCallback(result); } }); }
import json import boto3 from botocore.exceptions import ClientError import time # Create QuickSight and STS clients quicksightClient = boto3.client('quicksight',region_name='us-west-2') sts = boto3.client('sts') # Function to generate embedded URL for anonymous user # accountId: YOUR AWS ACCOUNT ID # quicksightNamespace: VALID NAMESPACE WHERE YOU WANT TO DO NOAUTH EMBEDDING # authorizedResourceArns: TOPIC ARN LIST TO EMBED # allowedDomains: RUNTIME ALLOWED DOMAINS FOR EMBEDDING # experienceConfiguration: configuration which specifies the TOPIC ID to point URL to # sessionTags: SESSION TAGS USED FOR ROW-LEVEL SECURITY def generateEmbedUrlForAnonymousUser(accountId, quicksightNamespace, authorizedResourceArns, allowedDomains, experienceConfiguration, sessionTags): try: response = quicksightClient.generate_embed_url_for_anonymous_user( AwsAccountId = accountId, Namespace = quicksightNamespace, AuthorizedResourceArns = authorizedResourceArns, AllowedDomains = allowedDomains, ExperienceConfiguration = experienceConfiguration, SessionTags = sessionTags, SessionLifetimeInMinutes = 600 ) return { 'statusCode': 200, 'headers': {"Access-Control-Allow-Origin": "*", "Access-Control-Allow-Headers": "Content-Type"}, 'body': json.dumps(response), 'isBase64Encoded': bool('false') } except ClientError as e: print(e) return "Error generating embeddedURL: " + str(e)
L'exemple suivant montre le JavaScript (Node.js) que vous pouvez utiliser sur le serveur d'applications URL pour générer le tableau de bord intégré. Vous pouvez l'utiliser sur votre site Web ou votre application pour afficher le tableau de bord. URL
const AWS = require('aws-sdk'); const https = require('https'); var quicksightClient = new AWS.Service({ apiConfig: require('./quicksight-2018-04-01.min.json'), region: 'us-east-1', }); quicksightClient.generateEmbedUrlForAnonymousUser({ 'AwsAccountId': '111122223333', 'Namespace': 'DEFAULT' 'AuthorizedResourceArns': '["topic-arn-topicId1","topic-arn-topicId2"]', 'AllowedDomains': allowedDomains, 'ExperienceConfiguration': { 'QSearchBar': { 'InitialTopicId': 'U4zJMVZ2n2stZflc8Ou3iKySEb3BEV6f' } }, 'SessionTags': '["Key": tag-key-1,"Value": tag-value-1,{"Key": tag-key-1,"Value": tag-value-1}]', 'SessionLifetimeInMinutes': 15 }, function(err, data) { console.log('Errors: '); console.log(err); console.log('Response: '); console.log(data); });
//The URL returned is over 900 characters. For this example, we've shortened the string for //readability and added ellipsis to indicate that it's incomplete. { Status: 200, EmbedUrl : 'https://quicksightdomain/embed/12345/dashboards/67890/sheets/12345/visuals/67890...', RequestId: '7bee030e-f191-45c4-97fe-d9faf0e03713' }
L'exemple suivant montre le. NETCode /C # que vous pouvez utiliser sur le serveur d'applications URL pour générer la barre de recherche Q intégrée. Vous pouvez l'utiliser sur votre site Web ou votre application pour afficher la barre de recherche Q. URL
using System; using Amazon.QuickSight; using Amazon.QuickSight.Model; namespace GenerateQSearchBarEmbedUrlForAnonymousUser { class Program { static void Main(string[] args) { var quicksightClient = new AmazonQuickSightClient( AccessKey, SecretAccessKey, SessionToken, Amazon.RegionEndpoint.USEast1); try { AnonymousUserQSearchBarEmbeddingConfiguration anonymousUserQSearchBarEmbeddingConfiguration = new AnonymousUserQSearchBarEmbeddingConfiguration { InitialTopicId = "U4zJMVZ2n2stZflc8Ou3iKySEb3BEV6f" }; AnonymousUserEmbeddingExperienceConfiguration anonymousUserEmbeddingExperienceConfiguration = new AnonymousUserEmbeddingExperienceConfiguration { QSearchBar = anonymousUserQSearchBarEmbeddingConfiguration }; Console.WriteLine( quicksightClient.GenerateEmbedUrlForAnonymousUserAsync(new GenerateEmbedUrlForAnonymousUserRequest { AwsAccountId = "111122223333", Namespace = "DEFAULT", AuthorizedResourceArns '["topic-arn-topicId1","topic-arn-topicId2"]', AllowedDomains = allowedDomains, ExperienceConfiguration = anonymousUserEmbeddingExperienceConfiguration, SessionTags = '["Key": tag-key-1,"Value": tag-value-1,{"Key": tag-key-1,"Value": tag-value-1}]', SessionLifetimeInMinutes = 15, }).Result.EmbedUrl ); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }
Pour assumer le rôle, choisissez l'une des API opérations suivantes AWS Security Token Service (AWS STS) :
-
AssumeRole— Utilisez cette opération lorsque vous utilisez une IAM identité pour assumer le rôle.
-
AssumeRoleWithWebIdentity— Utilisez cette opération lorsque vous utilisez un fournisseur d'identité Web pour authentifier votre utilisateur.
-
AssumeRoleWithSaml— Utilisez cette opération lorsque vous l'utilisez SAML pour authentifier vos utilisateurs.
L'exemple suivant montre la CLI commande permettant de définir le IAM rôle. Les autorisations doivent être activées pour quicksight:GenerateEmbedUrlForAnonymousUser
.
aws sts assume-role \ --role-arn "
arn:aws:iam::111122223333:role/embedding_quicksight_q_search_bar_role
" \ --role-session-nameanonymous caller
L'opération assume-role
renvoie trois paramètres de sortie : la clé d'accès, la clé secrète et le jeton de session.
Note
Si vous obtenez une erreur ExpiredToken
lorsque vous appelez l'opération AssumeRole
, ceci est probablement dû au fait que le précédent SESSION TOKEN
est encore dans les variables de l'environnement. Pour l'effacer, définissez les variables suivantes :
-
AWS_ACCESS_ KEY _IDENTIFIANT
-
AWS_SECRET_ACCESS_KEY
-
AWS_SESSION_TOKEN
L'exemple suivant montre comment définir ces trois paramètres dans leCLI. Pour une machine Microsoft Windows, utilisez set
au lieu de export
.
export AWS_ACCESS_KEY_ID = "
access_key_from_assume_role
" export AWS_SECRET_ACCESS_KEY = "secret_key_from_assume_role
" export AWS_SESSION_TOKEN = "session_token_from_assume_role
"
L'exécution de ces commandes définit l'ID de session de rôle de l'utilisateur visitant votre site web sur embedding_quicksight_q_search_bar_role/QuickSightEmbeddingAnonymousPolicy
. L'ID de session de rôle se compose du nom de rôle issu du role-arn
et de la valeur role-session-name
. L'utilisation de l'ID de session de rôle unique pour chaque utilisateur garantit que les autorisations appropriées sont définies pour chaque utilisateur. Ceci évite également toute limitation des accès des utilisateurs. La limitation est une fonctionnalité de sécurité qui empêche le même utilisateur d'accéder à partir de plusieurs QuickSight emplacements. De plus, cela permet également de garder chaque session séparée et distincte. Si vous utilisez un ensemble de serveurs web, par exemple pour l'équilibrage de charge, et qu'une session est reconnectée à un autre serveur, une nouvelle session démarre.
Pour obtenir une signature URL pour le tableau de bord, appelez generate-embed-url-for-anynymous-user
depuis le serveur de l'application. Cela renvoie le tableau de bord intégrable. URL L'exemple suivant montre comment générer le URL pour un tableau de bord intégré à l'aide d'un appel côté serveur pour les utilisateurs qui effectuent des visites anonymes sur votre portail Web ou votre application.
aws quicksight generate-embed-url-for-anonymous-user \ --aws-account-id
111122223333
\ --namespacedefault-or-something-else
\ --authorized-resource-arns '["topic-arn-topicId1
","topic-arn-topicId2
"]' \ --allowed-domains '["domain1
","domain2
"]' \ --experience-configuration 'QSearchBar={InitialTopicId="topicId1
"}' \ --session-tags '["Key":tag-key-1
,"Value":tag-value-1
,{"Key":tag-key-1
,"Value":tag-value-1
}]' \ --session-lifetime-in-minutes 15
Pour plus d'informations sur l'utilisation de cette opération, voir GenerateEmbedUrlForRegisteredUser. Vous pouvez utiliser cette API opération ainsi que d'autres dans votre propre code.
Étape 3 : Intégrer la barre de recherche Q URL
Note
La barre de recherche QuickSight Q intégrée offre une expérience de QuickSight questions-réponses classique. QuickSight s'intègre à Amazon Q Business pour lancer une nouvelle expérience générative de questions-réponses. Il est recommandé aux développeurs d'utiliser la nouvelle expérience de questions-réponses génératives. Pour plus d'informations sur l'expérience de questions-réponses générative intégrée, consultezIntégrer Amazon Q à une expérience QuickSight générative de questions-réponses.
Dans la section suivante, vous trouverez comment intégrer la barre de recherche Q à URL partir de l'étape 3 dans votre site Web ou sur la page de votre application. Pour ce faire, utilisez Amazon QuickSight embedding SDK
-
Placez la barre de recherche Q sur une HTML page.
-
Transmettre les paramètres à la barre de recherche Q.
-
Gérer les états d'erreurs avec des messages personnalisés pour votre application.
Pour générer URL ce que vous pouvez intégrer dans votre application, appelez l'GenerateEmbedUrlForAnonymousUser
APIopération. Ceci URL est valide pendant 5 minutes, et la session qui en résulte est valide pendant 10 heures au maximum. L'APIopération fournit URL une auth_code
valeur qui permet une session d'authentification unique.
Voici un exemple de réponse de generate-embed-url-for-anonymous-user
.
//The URL returned is over 900 characters. For this example, we've shortened the string for //readability and added ellipsis to indicate that it's incomplete. { "Status": "200", "EmbedUrl": "https://
quicksightdomain
/embedding/12345/q/search...", "RequestId": "7bee030e-f191-45c4-97fe-d9faf0e03713" }
Intégrez la barre de recherche Q dans votre page Web en utilisant l'QuickSightintégration SDK
Pour ce faire, assurez-vous que le domaine devant héberger la barre de recherche Q intégrée figure dans la liste des domaines autorisés, c'est-à-dire la liste des domaines approuvés pour votre QuickSight abonnement. Cette exigence protège vos données en empêchant les domaines non approuvés d'héberger la barre de recherche Q intégrée. Pour plus d'informations sur l'ajout de domaines pour une barre de recherche Q intégrée, consultez la rubrique Gestion des domaines et des intégrations.
Lorsque vous utilisez l' QuickSight intégrationSDK, la barre de recherche Q de votre page est redimensionnée dynamiquement en fonction de l'état. En utilisant l' QuickSight intégrationSDK, vous pouvez également contrôler les paramètres de la barre de recherche Q et recevoir des rappels en termes de fin de chargement de page et d'erreurs.
L'exemple suivant montre comment utiliser le généréURL. Ce code est généré sur votre serveur d'applications.
<!DOCTYPE html> <html> <head> <title>Q Search Bar Embedding Example</title> <script src="https://unpkg.com/amazon-quicksight-embedding-sdk@2.0.0/dist/quicksight-embedding-js-sdk.min.js"></script> <script type="text/javascript"> const embedQSearchBar = async() => { const { createEmbeddingContext, } = QuickSightEmbedding; const embeddingContext = await createEmbeddingContext({ onChange: (changeEvent, metadata) => { console.log('Context received a change', changeEvent, metadata); }, }); const frameOptions = { url: "<YOUR_EMBED_URL>", // replace this value with the url generated via embedding API container: '#experience-container', height: "700px", width: "1000px", onChange: (changeEvent, metadata) => { switch (changeEvent.eventName) { case 'FRAME_MOUNTED': { console.log("Do something when the experience frame is mounted."); break; } case 'FRAME_LOADED': { console.log("Do something when the experience frame is loaded."); break; } } }, }; const contentOptions = { hideTopicName: false, theme: '<YOUR_THEME_ID>', allowTopicSelection: true, onMessage: async (messageEvent, experienceMetadata) => { switch (messageEvent.eventName) { case 'Q_SEARCH_OPENED': { console.log("Do something when Q Search content expanded"); break; } case 'Q_SEARCH_CLOSED': { console.log("Do something when Q Search content collapsed"); break; } case 'Q_SEARCH_SIZE_CHANGED': { console.log("Do something when Q Search size changed"); break; } case 'CONTENT_LOADED': { console.log("Do something when the Q Search is loaded."); break; } case 'ERROR_OCCURRED': { console.log("Do something when the Q Search fails loading."); break; } } } }; const embeddedDashboardExperience = await embeddingContext.embedQSearchBar(frameOptions, contentOptions); }; </script> </head> <body onload="embedQSearchBar()"> <div id="experience-container"></div> </body> </html>
<!DOCTYPE html> <html> <head> <title>QuickSight Q Search Bar Embedding</title> <script src="https://unpkg.com/amazon-quicksight-embedding-sdk@1.18.0/dist/quicksight-embedding-js-sdk.min.js"></script> <script type="text/javascript"> var session function onError(payload) { console.log("Do something when the session fails loading"); } function onOpen() { console.log("Do something when the Q search bar opens"); } function onClose() { console.log("Do something when the Q search bar closes"); } function embedQSearchBar() { var containerDiv = document.getElementById("embeddingContainer"); var options = { url: "https://us-east-1.quicksight.aws.amazon.com/sn/dashboards/dashboardId?isauthcode=true&identityprovider=quicksight&code=authcode", // replace this dummy url with the one generated via embedding API container: containerDiv, width: "
1000px
", locale: "en-US
", qSearchBarOptions: { expandCallback: onOpen, collapseCallback: onClose, iconDisabled: false, topicNameDisabled: false, themeId: 'bdb844d0-0fe9-4d9d-b520-0fe602d93639
', allowTopicSelection: true } }; session = QuickSightEmbedding.embedQSearchBar(options); session.on("error", onError); } function onCountryChange(obj) { session.setParameters({country: obj.value}); } </script> </head> <body onload="embedQSearchBar()"> <div id="embeddingContainer"></div> </body> </html>
Pour que cet exemple fonctionne, assurez-vous d'utiliser Amazon QuickSight Embedding pour charger la barre SDK de recherche Q intégrée sur votre site Web à l'aide JavaScript de. Pour obtenir votre copie, effectuez l'une des actions suivantes :
-
Téléchargez le formulaire QuickSight d'intégration Amazon SDK
. GitHub Ce référentiel est géré par un groupe de QuickSight développeurs. -
Téléchargez la dernière SDK version d'intégration sur. https://www.npmjs.com/package/amazon-quicksight-embedding-sdk
-
Si vous utilisez
npm
for JavaScript dependencies, téléchargez-le et installez-le en exécutant la commande suivante.npm install amazon-quicksight-embedding-sdk
Fonctionnalités d'intégration de la barre de recherche Amazon QuickSight Q en option
Note
La barre de recherche QuickSight Q intégrée offre une expérience de QuickSight questions-réponses classique. QuickSight s'intègre à Amazon Q Business pour lancer une nouvelle expérience générative de questions-réponses. Il est recommandé aux développeurs d'utiliser la nouvelle expérience de questions-réponses génératives. Pour plus d'informations sur l'expérience de questions-réponses générative intégrée, consultezIntégrer Amazon Q à une expérience QuickSight générative de questions-réponses.
Les fonctionnalités optionnelles suivantes sont disponibles pour la barre de recherche Q intégrée à l'aide de l'intégrationSDK.
Invoquer les actions de la barre de recherche Q
Les options suivantes sont prises en charge uniquement pour l'intégration de la barre de recherche Q.
-
Définir une question dans la barre de recherche Q : cette fonctionnalité envoie une question à la barre de recherche Q et interroge immédiatement la question. Elle ouvre également automatiquement la fenêtre contextuelle Q.
qBar.setQBarQuestion('
show me monthly revenue
'); -
Fermer la fenêtre contextuelle Q : cette fonctionnalité ferme la fenêtre contextuelle Q et ramène l'iframe à la taille initiale de la barre de recherche Q.
qBar.closeQPopover();
Pour plus d'informations, voir l'QuickSight intégration. SDK