Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Einbetten der Amazon QuickSight Q-Suchleiste für anonyme (nicht registrierte) Benutzer
Zielgruppe: QuickSight Amazon-Entwickler |
Anmerkung
Die eingebettete QuickSight Q-Suchleiste bietet das klassische QuickSight Q & A-Erlebnis. QuickSight integriert sich in Amazon Q Business, um ein neues generatives Q&A-Erlebnis einzuführen. Entwicklern wird empfohlen, das neue Generative Q&A-Erlebnis zu nutzen. Weitere Informationen zum integrierten Generative Q&A-Erlebnis finden Sie unter. Einbettung von Amazon Q in das QuickSight Generative Q & A-Erlebnis
In den folgenden Abschnitten finden Sie detaillierte Informationen zum Einrichten einer eingebetteten Amazon QuickSight Q-Suchleiste für anonyme (nicht registrierte) Benutzer.
Themen
Schritt 1: Festlegen von Berechtigungen
Anmerkung
Die eingebettete QuickSight Q-Suchleiste bietet das klassische QuickSight Q&A-Erlebnis. QuickSight integriert sich in Amazon Q Business, um ein neues generatives Q&A-Erlebnis einzuführen. Entwicklern wird empfohlen, das neue Generative Q&A-Erlebnis zu nutzen. Weitere Informationen zum integrierten Generative Q&A-Erlebnis finden Sie unter. Einbettung von Amazon Q in das QuickSight Generative Q & A-Erlebnis
Im folgenden Abschnitt erfahren Sie, wie Sie Berechtigungen für Ihre Back-End-Anwendung oder Ihren Webserver einrichten, um die Q-Suchleiste einzubetten. Für diese Aufgabe ist Administratorzugriff auf AWS Identity and Access Management (IAM) erforderlich.
Jeder Benutzer, der auf eine Q-Suchleiste zugreift, nimmt eine Rolle ein, die ihm QuickSight Amazon-Zugriff und Berechtigungen für die Q-Suchleiste gewährt. Um dies zu ermöglichen, erstellen Sie eine IAM Rolle in Ihrem AWS-Konto. Ordnen Sie der Rolle eine IAM Richtlinie zu, um jedem Benutzer, der sie annimmt, Berechtigungen zu gewähren. Die IAM Rolle muss Berechtigungen zum Abrufen von Einbettungen URLs für einen bestimmten Benutzerpool bereitstellen.
Mithilfe des Platzhalterzeichens * können Sie allen Benutzern in einem bestimmten Namespace die Berechtigungen URL zum Generieren von a gewähren. Oder Sie können einer Teilmenge von Benutzern in bestimmten Namespaces Berechtigungen URL zum Generieren von A gewähren. Dazu fügen Sie quicksight:GenerateEmbedUrlForAnonymousUser
hinzu.
Sie können in Ihrer IAM Richtlinie eine Bedingung erstellen, die die Domänen einschränkt, die Entwickler im AllowedDomains
Parameter eines Vorgangs auflisten können. GenerateEmbedUrlForAnonymousUser
API Der AllowedDomains
-Parameter ist ein optionaler Parameter. Sie gibt Entwicklern die Möglichkeit, die statischen Domänen, die im QuickSight Menü Verwalten konfiguriert sind, zu überschreiben und stattdessen bis zu drei Domänen oder Subdomänen aufzulisten, die auf eine generierte URL Domain zugreifen können. Dies URL wird dann in die Website eines Entwicklers eingebettet. Nur die Domains, die im Parameter aufgeführt sind, können auf die eingebettete Q-Suchleiste zugreifen. Ohne diese Bedingung können Entwickler jede Domain im Internet im AllowedDomains
-Parameter auflisten.
Um die Domänen einzuschränken, die Entwickler mit diesem Parameter verwenden können, fügen Sie Ihrer IAM Richtlinie eine AllowedEmbeddingDomains
Bedingung hinzu. Weitere Informationen zu dem AllowedDomains
Parameter finden Sie GenerateEmbedUrlForAnonymousUserin der QuickSight APIAmazon-Referenz.
Die folgende Beispielrichtlinie gewährt diese Berechtigungen.
{ "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" ] } } }
Der IAM Identität Ihrer Anwendung muss eine Vertrauensrichtlinie zugeordnet sein, um den Zugriff auf die Rolle zu ermöglichen, die Sie gerade erstellt haben. Dies bedeutet: Wenn ein Benutzer auf Ihre Anwendung zugreift, kann Ihre Anwendung die Rolle für den Benutzer übernehmen, um die Q-Suchleiste zu öffnen. Das folgende Beispiel zeigt eine Vertrauensrichtlinie.
{ "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" } ] }
Weitere Informationen zu Vertrauensrichtlinien finden Sie unter Temporäre Sicherheitsanmeldedaten IAM im IAM Benutzerhandbuch
Schritt 2: Generieren Sie das URL mit dem angehängten Authentifizierungscode
Anmerkung
Die eingebettete QuickSight Q-Suchleiste bietet das klassische QuickSight Q & A-Erlebnis. QuickSight integriert sich in Amazon Q Business, um ein neues generatives Q&A-Erlebnis einzuführen. Entwicklern wird empfohlen, das neue Generative Q&A-Erlebnis zu nutzen. Weitere Informationen zum integrierten Generative Q&A-Erlebnis finden Sie unter. Einbettung von Amazon Q in das QuickSight Generative Q & A-Erlebnis
Im folgenden Abschnitt erfahren Sie, wie Sie Ihren Benutzer authentifizieren und das einbettbare Q-Thema URL auf Ihrem Anwendungsserver abrufen können.
Wenn ein Benutzer auf Ihre App zugreift, übernimmt die App die IAM Rolle im Namen des Benutzers. Dann fügt die App den Benutzer hinzu QuickSight, falls dieser Benutzer noch nicht existiert. Anschließend übergibt sie eine ID als eindeutige Rollensitzungs-ID.
Weitere Informationen finden Sie unter 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)
Das folgende Beispiel zeigt die Datei JavaScript (Node.js), die Sie auf dem App-Server verwenden können, um das URL für das eingebettete Dashboard zu generieren. Sie können dies URL in Ihrer Website oder App verwenden, um das Dashboard anzuzeigen.
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' }
Das folgende Beispiel zeigt die. NET/C # -Code, den Sie auf dem App-Server verwenden können, um die Suchleiste URL für das eingebettete Q zu generieren. Sie können dies URL in Ihrer Website oder App verwenden, um die Q-Suchleiste anzuzeigen.
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); } } } }
Um die Rolle zu übernehmen, wählen Sie eine der folgenden AWS Security Token Service (AWS STS) API Operationen:
-
AssumeRole— Verwenden Sie diese Operation, wenn Sie eine IAM Identität verwenden, um die Rolle zu übernehmen.
-
AssumeRoleWithWebIdentity— Verwenden Sie diesen Vorgang, wenn Sie einen Web-Identitätsanbieter verwenden, um Ihren Benutzer zu authentifizieren.
-
AssumeRoleWithSaml— Verwenden Sie diesen Vorgang, wenn Sie Ihre Benutzer authentifizieren. SAML
Das folgende Beispiel zeigt den CLI Befehl zum Einstellen der IAM Rolle. Für die Rolle müssen die Berechtigungen für quicksight:GenerateEmbedUrlForAnonymousUser
aktiviert sein.
aws sts assume-role \ --role-arn "
arn:aws:iam::111122223333:role/embedding_quicksight_q_search_bar_role
" \ --role-session-nameanonymous caller
Die assume-role
-Operation gibt drei Parameter zurück: den Zugriffsschlüssel, den geheimen Schlüssel und das Sitzungs-Token.
Anmerkung
Wenn beim Aufrufen der Operation AssumeRole
der Fehler ExpiredToken
gemeldet wird, liegt dies wahrscheinlich daran, dass sich der vorherige SESSION TOKEN
-Wert noch in den Umgebungsvariablen befindet. Deaktivieren Sie dies, indem Sie die folgenden Variablen einstellen:
-
AWS_ACCESS_ KEY _ID
-
AWS_SECRET_ACCESS_KEY
-
AWS_SESSION_TOKEN
Das folgende Beispiel zeigt, wie diese drei Parameter in der CLI festgelegt werden. Für einen Microsoft Windows-Computer verwenden Sie set
anstelle von 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
"
Diese Befehle setzen die Rollensitzungs-ID des Benutzers, der Ihre Website besucht, auf embedding_quicksight_q_search_bar_role/QuickSightEmbeddingAnonymousPolicy
. Die Rollensitzungs-ID besteht aus dem Rollennamen role-arn
und dem role-session-name
-Wert. Die Verwendung der eindeutigen Rollensitzungs-ID für jeden Benutzer garantiert, dass fpr jeden benutzer die korrekten Berechtigungen eingerichtet werden. Außerdem wird eine Drosselung des Benutzerzugriffs verhindert. Die Drosselung ist eine Sicherheitsfunktion, die verhindert, dass derselbe Benutzer von mehreren Standorten QuickSight aus zugreift. Darüber hinaus hält sie auch jede Sitzung getrennt und unterscheidbar. Wenn Sie eine Reihe von Webservern verwenden, z. B. für den Lastenausgleich, und eine Sitzung erneut mit einem anderen Server verbunden wird, beginnt eine neue Sitzung.
Rufen Sie vom App-Server aus an, um eine Signatur URL für das generate-embed-url-for-anynymous-user
Dashboard zu erhalten. Dadurch wird das einbettbare Dashboard zurückgegeben. URL Das folgende Beispiel zeigt, wie Sie das URL für ein eingebettetes Dashboard mithilfe eines serverseitigen Aufrufs für Benutzer generieren, die Ihr Webportal oder Ihre App anonym besuchen.
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
Weitere Informationen zur Verwendung dieses Vorgangs finden Sie unter GenerateEmbedUrlForRegisteredUser. Sie können diese und andere API Operationen in Ihrem eigenen Code verwenden.
Schritt 3: Betten Sie die Q-Suchleiste ein URL
Anmerkung
Die eingebettete QuickSight Q-Suchleiste bietet das klassische QuickSight Q & A-Erlebnis. QuickSight integriert sich in Amazon Q Business, um ein neues generatives Q&A-Erlebnis einzuführen. Entwicklern wird empfohlen, das neue Generative Q&A-Erlebnis zu nutzen. Weitere Informationen zum integrierten Generative Q&A-Erlebnis finden Sie unter. Einbettung von Amazon Q in das QuickSight Generative Q & A-Erlebnis
Im folgenden Abschnitt erfahren Sie, wie Sie die Q-Suchleiste URL aus Schritt 3 in Ihre Website oder Anwendungsseite einbetten können. Das machst du mit der QuickSightAmazon-Einbettung SDK
-
Platzieren Sie die Q-Suchleiste auf einer HTML Seite.
-
Übergeben Sie Parameter an die Q-Suchleiste.
-
Umgang mit Fehlerstatus mit Meldungen, die an Ihre Anwendung angepasst wurden.
Rufen Sie den GenerateEmbedUrlForAnonymousUser
API Vorgang aufURL, um den zu generieren, den Sie in Ihre App einbetten können. Dies URL ist 5 Minuten gültig, und die daraus resultierende Sitzung ist bis zu 10 Stunden gültig. Der API Vorgang stellt einen auth_code
Wert bereit, der URL eine Single-Sign-On-Sitzung ermöglicht.
Es folgt eine Beispielantwort von 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" }
Binden Sie die Q-Suchleiste mithilfe der QuickSightEinbettung
Stellen Sie dazu sicher, dass die Domain, auf der die eingebettete Q-Suchleiste gehostet werden soll, auf der Zulassungsliste steht, der Liste der zugelassenen Domains für Ihr QuickSight Abonnement. Diese Voraussetzung schützt die Daten, indem unzulässige Domains daran gehindert werden, eingebettete Q-Suchleiste zu hosten. Weitere Informationen zum Hinzufügen von Domains für eine eingebettete Q-Suchleiste finden Sie unter Verwaltung und Einbettung von Domains.
Wenn Sie die QuickSight Einbettung verwendenSDK, wird die Größe der Q-Suchleiste auf Ihrer Seite je nach Status dynamisch angepasst. Mithilfe der QuickSight Einbettung SDK können Sie auch die Parameter in der Q-Suchleiste steuern und Rückrufe in Bezug auf den Abschluss des Seitenladevorgangs und Fehler erhalten.
Das folgende Beispiel zeigt, wie Sie die generierten verwenden. URL Dieser Code wird auf Ihrem App-Server generiert.
<!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>
Damit dieses Beispiel funktioniert, stellen Sie sicher, dass Sie Amazon QuickSight Embedding verwenden, SDK um die eingebettete Q-Suchleiste auf Ihrer Website mit JavaScript zu laden. Führen Sie für den Erhalt dieser Kopie einen der folgenden Schritte aus:
-
Laden Sie die QuickSight Amazon-Einbettung SDK
von GitHub herunter. Dieses Repository wird von einer Gruppe von QuickSight Entwicklern verwaltet. -
Laden Sie die neueste SDK Einbettungsversion von https://www.npmjs.com/package/amazon-quicksight-embedding-sdk
herunter. -
Wenn Sie
npm
for JavaScript dependencies verwenden, laden Sie sie herunter und installieren Sie sie, indem Sie den folgenden Befehl ausführen.npm install amazon-quicksight-embedding-sdk
Optionale Funktionen zum Einbetten der Amazon QuickSight Q-Suchleiste
Anmerkung
Die eingebettete QuickSight Q-Suchleiste bietet das klassische QuickSight Q & A-Erlebnis. QuickSight integriert sich in Amazon Q Business, um ein neues generatives Q&A-Erlebnis einzuführen. Entwicklern wird empfohlen, das neue Generative Q&A-Erlebnis zu nutzen. Weitere Informationen zum integrierten Generative Q&A-Erlebnis finden Sie unter. Einbettung von Amazon Q in das QuickSight Generative Q & A-Erlebnis
Die folgenden optionalen Funktionen sind für die eingebettete Q-Suchleiste mithilfe der Einbettung SDK verfügbar.
Rufen Sie Aktionen in der Q-Suchleiste auf
Die folgenden Optionen werden nur für die Einbettung von Q-Suchleisten unterstützt.
-
Stellen Sie ein Feature in der Q-Suchleiste ein — Dieses Feature sendet eine Frage an die Q-Suchleiste und fragt die Abfrage sofort ab. Außerdem wird das Q-Popover automatisch geöffnet.
qBar.setQBarQuestion('
show me monthly revenue
'); -
Q-Popover schließen — Dieses Feature schließt das Q-Popover und setzt den iframe auf die ursprüngliche Größe der Q-Suchleiste zurück.
qBar.closeQPopover();
Weitere Informationen finden Sie unter QuickSight SDKEinbettung