Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Incorporamento della barra di ricerca di Amazon QuickSight Q per gli utenti registrati
Si applica a: Enterprise Edition |
Destinatari: QuickSight sviluppatori Amazon |
Nota
La barra di ricerca QuickSight Q integrata offre la classica esperienza di QuickSight domande e risposte. QuickSight si integra con Amazon Q Business per lanciare una nuova esperienza di domande e risposte generative. Si consiglia agli sviluppatori di utilizzare la nuova esperienza di domande e risposte generative. Per ulteriori informazioni sull'esperienza di domande e risposte generative integrata, consulta. Integrazione di Amazon Q nell'esperienza di domande e QuickSight risposte generative
Nelle sezioni seguenti, puoi trovare informazioni dettagliate su come configurare una barra di ricerca Amazon QuickSight Q incorporata per gli utenti registrati di QuickSight.
Argomenti
Fase 1: Configurazione delle autorizzazioni
Nota
La barra di ricerca QuickSight Q incorporata offre la classica QuickSight esperienza di domande e risposte. QuickSight si integra con Amazon Q Business per lanciare una nuova esperienza di domande e risposte generative. Si consiglia agli sviluppatori di utilizzare la nuova esperienza di domande e risposte generative. Per ulteriori informazioni sull'esperienza di domande e risposte generative integrata, consulta. Integrazione di Amazon Q nell'esperienza di domande e QuickSight risposte generative
Nella sezione seguente, puoi scoprire come configurare autorizzazioni per l'applicazione di back-end o server Web per incorporare la barra di ricerca Q. Questa attività richiede l'accesso amministrativo a AWS Identity and Access Management (). IAM
Ogni utente che accede a una dashboard assume un ruolo che gli conferisce QuickSight l'accesso e le autorizzazioni Amazon alla dashboard. Per renderlo possibile, crea un IAM ruolo nel tuo. Account AWS Associa una IAM policy al ruolo per fornire le autorizzazioni a qualsiasi utente che la assume. Il IAM ruolo deve fornire le autorizzazioni per recuperare l'incorporamento URLs per un pool di utenti specifico.
Con l'aiuto del carattere jolly *, puoi concedere le autorizzazioni per generare un file URL per tutti gli utenti in uno spazio dei nomi specifico. Oppure puoi concedere le autorizzazioni per generare un file URL per un sottoinsieme di utenti in namespace specifici. Per questo, aggiungi quicksight:GenerateEmbedUrlForRegisteredUser
.
Puoi creare una condizione nella tua IAM politica che limiti i domini che gli sviluppatori possono elencare nel parametro di un'operazione. AllowedDomains
GenerateEmbedUrlForRegisteredUser
API Il parametro AllowedDomains
è un parametro facoltativo. Offre agli sviluppatori la possibilità di sovrascrivere i domini statici configurati nel QuickSight menu Gestisci e di elencare invece fino a tre domini o sottodomini che possono accedere a un determinato dominio. URL Questo URL viene quindi incorporato nel sito Web di uno sviluppatore. Solo i domini elencati nel parametro possono accedere alla barra di ricerca Q incorporata. Senza questa condizione, gli sviluppatori possono elencare nel parametro AllowedDomains
qualsiasi dominio su Internet.
Per limitare i domini che gli sviluppatori possono utilizzare con questo parametro, aggiungi una AllowedEmbeddingDomains
condizione alla tua IAM politica. Per ulteriori informazioni sul AllowedDomains
parametro, GenerateEmbedUrlForRegisteredUserconsulta Amazon QuickSight API Reference.
Queste autorizzazioni sono fornite dalla seguente policy di esempio.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "quicksight:GenerateEmbedUrlForRegisteredUser" ], "Resource": "arn:
partition
:quicksight:region
:accountId
:user/namespace
/userName
", "Condition": { "ForAllValues:StringEquals": { "quicksight:AllowedEmbeddingDomains": [ "https://my.static.domain1.com", "https://*.my.static.domain2.com" ] } } } ] }
Inoltre, se stai creando utenti alle prime armi che saranno QuickSight lettori di Amazon, assicurati di aggiungere l'quicksight:RegisterUser
autorizzazione nella politica.
La seguente politica di esempio fornisce l'autorizzazione a recuperare un incorporamento URL per gli utenti alle prime armi che devono diventare lettori. QuickSight
{ "Version": "2012-10-17", "Statement": [ { "Action": "quicksight:RegisterUser", "Resource": "*", "Effect": "Allow" }, { "Effect": "Allow", "Action": [ "quicksight:GenerateEmbedUrlForRegisteredUser" ], "Resource": [ "arn:
partition
:quicksight:region
:accountId
:user/namespace
/userName
" ], "Condition": { "ForAllValues:StringEquals": { "quicksight:AllowedEmbeddingDomains": [ "https://my.static.domain1.com", "https://*.my.static.domain2.com" ] } } } ] }
Infine, all'IAMidentità dell'applicazione deve essere associata una politica di attendibilità per consentire l'accesso al ruolo appena creato. Ciò significa che quando un utente accede all'applicazione, quest'ultima può assumere il ruolo per conto dell'utente e fornire all' QuickSightutente l'accesso.
Di seguito è mostrata una policy di attendibilità di esempio.
{ "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" } ] }
Per ulteriori informazioni sulle politiche di attendibilità per l'autenticazione OpenID Connect o Security Assertion Markup Language (SAML), consultate le seguenti sezioni della Guida per l'utente: IAM
Fase 2: Generare il URL file con il codice di autenticazione allegato
Nota
La barra di ricerca QuickSight Q integrata offre la classica esperienza di QuickSight domande e risposte. QuickSight si integra con Amazon Q Business per lanciare una nuova esperienza di domande e risposte generative. Si consiglia agli sviluppatori di utilizzare la nuova esperienza di domande e risposte generative. Per ulteriori informazioni sull'esperienza di domande e risposte generative integrata, consulta. Integrazione di Amazon Q nell'esperienza di domande e QuickSight risposte generative
Nella sezione seguente, puoi scoprire come autenticare il tuo utente e scaricare l'argomento Q incorporabile sul tuo server delle applicazioni. URL Se prevedi di incorporare la barra Q per i IAM tipi di QuickSight identità Amazon, condividi l'argomento Q con gli utenti.
Quando un utente accede alla tua app, l'app assume il IAM ruolo per conto dell'utente. Quindi l'app aggiunge l'utente a QuickSight, se quell'utente non esiste già. In seguito, sarà necessario passare un identificatore come l'ID della sessione del ruolo univoco.
L'esecuzione dei passaggi descritti garantisce che ogni visualizzatore dell'argomento Q sia fornito in modo univoco. QuickSight Applica inoltre le impostazioni per utente, ad esempio la sicurezza a livello di riga e le impostazioni predefinite dinamiche per i parametri.
Gli esempi seguenti eseguono l'IAMautenticazione per conto dell'utente. Questo codice viene eseguito sul server delle applicazioni.
import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.quicksight.AmazonQuickSight; import com.amazonaws.services.quicksight.AmazonQuickSightClientBuilder; import com.amazonaws.services.quicksight.model.GenerateEmbedUrlForRegisteredUserRequest; import com.amazonaws.services.quicksight.model.GenerateEmbedUrlForRegisteredUserResult; import com.amazonaws.services.quicksight.model.RegisteredUserEmbeddingExperienceConfiguration; import com.amazonaws.services.quicksight.model.RegisteredUserQSearchBarEmbeddingConfiguration; /** * Class to call QuickSight AWS SDK to get url for embedding the Q search bar. */ public class RegisteredUserQSearchBarEmbeddingConfiguration { private final AmazonQuickSight quickSightClient; public RegisteredUserQSearchBarEmbeddingConfiguration() { this.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 getQuicksightEmbedUrl( final String accountId, // AWS Account ID final String topicId, // Topic ID to embed final List<String> allowedDomains, // Runtime allowed domain for embedding final String userArn // Registered user arn to use for embedding. Refer to Get Embed Url section in developer portal to find how to get user arn for a QuickSight user. ) throws Exception { final RegisteredUserEmbeddingExperienceConfiguration experienceConfiguration = new RegisteredUserEmbeddingExperienceConfiguration() .withQSearchBar(new RegisteredUserQSearchBarEmbeddingConfiguration().withInitialTopicId(topicId)); final GenerateEmbedUrlForRegisteredUserRequest generateEmbedUrlForRegisteredUserRequest = new GenerateEmbedUrlForRegisteredUserRequest(); generateEmbedUrlForRegisteredUserRequest.setAwsAccountId(accountId); generateEmbedUrlForRegisteredUserRequest.setUserArn(userArn); generateEmbedUrlForRegisteredUserRequest.setAllowedDomains(allowedDomains); generateEmbedUrlForRegisteredUserRequest.setExperienceConfiguration(QSearchBar); final GenerateEmbedUrlForRegisteredUserResult generateEmbedUrlForRegisteredUserResult = quickSightClient.generateEmbedUrlForRegisteredUser(generateEmbedUrlForRegisteredUserRequest); return generateEmbedUrlForRegisteredUserResult.getEmbedUrl(); } }
global.fetch = require('node-fetch'); const AWS = require('aws-sdk'); function generateEmbedUrlForRegisteredUser( accountId, topicId, // Topic ID to embed openIdToken, // Cognito-based token userArn, // registered user arn roleArn, // IAM user role to use for embedding sessionName, // Session name for the roleArn assume role allowedDomains, // Runtime allowed domain for embedding getEmbedUrlCallback, // GetEmbedUrl success callback method errorCallback // GetEmbedUrl error callback method ) { const stsClient = new AWS.STS(); let stsParams = { RoleSessionName: sessionName, WebIdentityToken: openIdToken, RoleArn: roleArn } stsClient.assumeRoleWithWebIdentity(stsParams, function(err, data) { if (err) { console.log('Error assuming role'); console.log(err, err.stack); errorCallback(err); } else { const getQSearchBarParams = { "AwsAccountId": accountId, "ExperienceConfiguration": { "QSearchBar": { "InitialTopicId": topicId } }, "UserArn": userArn, "AllowedDomains": allowedDomains, "SessionLifetimeInMinutes": 600 }; const quicksightGetQSearchBar = new AWS.QuickSight({ region: process.env.AWS_REGION, credentials: { accessKeyId: data.Credentials.AccessKeyId, secretAccessKey: data.Credentials.SecretAccessKey, sessionToken: data.Credentials.SessionToken, expiration: data.Credentials.Expiration } }); quicksightGetQSearchBar.generateEmbedUrlForRegisteredUser(getQSearchBarParams, 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 GetEmbedUrl API "Access-Control-Allow-Headers": "Content-Type" }, "body": JSON.stringify(data), "isBase64Encoded": false } getEmbedUrlCallback(result); } }); } }); }
import json import boto3 from botocore.exceptions import ClientError sts = boto3.client('sts') # Function to generate embedded URL # accountId: AWS account ID # topicId: Topic ID to embed # userArn: arn of registered user # allowedDomains: Runtime allowed domain for embedding # roleArn: IAM user role to use for embedding # sessionName: session name for the roleArn assume role def getEmbeddingURL(accountId, topicId, userArn, allowedDomains, roleArn, sessionName): try: assumedRole = sts.assume_role( RoleArn = roleArn, RoleSessionName = sessionName, ) except ClientError as e: return "Error assuming role: " + str(e) else: assumedRoleSession = boto3.Session( aws_access_key_id = assumedRole['Credentials']['AccessKeyId'], aws_secret_access_key = assumedRole['Credentials']['SecretAccessKey'], aws_session_token = assumedRole['Credentials']['SessionToken'], ) try: quicksightClient = assumedRoleSession.client('quicksight', region_name='us-west-2') response = quicksightClient.generate_embed_url_for_registered_user( AwsAccountId=accountId, ExperienceConfiguration = { "QSearchBar": { "InitialTopicId": topicId } }, UserArn = userArn, AllowedDomains = allowedDomains, 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: return "Error generating embedding url: " + str(e)
L'esempio seguente mostra il file JavaScript (Node.js) che è possibile utilizzare sul server dell'app URL per generare il pannello di controllo incorporato. Puoi utilizzarlo URL nel tuo sito Web o nella tua app per visualizzare la dashboard.
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.generateEmbedUrlForRegisteredUser({ 'AwsAccountId': '111122223333', 'ExperienceConfiguration': { 'QSearchBar': { 'InitialTopicId': 'U4zJMVZ2n2stZflc8Ou3iKySEb3BEV6f' } }, 'UserArn': 'REGISTERED_USER_ARN', 'AllowedDomains': allowedDomains, 'SessionLifetimeInMinutes': 100 }, 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'esempio seguente mostra il. NETCodice /C # che puoi utilizzare sul server dell'app per generare il codice URL per la barra di ricerca Q incorporata. Puoi usarlo URL nel tuo sito web o nella tua app per visualizzare la barra di ricerca Q.
using System; using Amazon.QuickSight; using Amazon.QuickSight.Model; namespace GenerateDashboardEmbedUrlForRegisteredUser { class Program { static void Main(string[] args) { var quicksightClient = new AmazonQuickSightClient( AccessKey, SecretAccessKey, SessionToken, Amazon.RegionEndpoint.USEast1); try { RegisteredUserQSearchBarEmbeddingConfiguration registeredUserQSearchBarEmbeddingConfiguration = new RegisteredUserQSearchBarEmbeddingConfiguration { InitialTopicId = "U4zJMVZ2n2stZflc8Ou3iKySEb3BEV6f" }; RegisteredUserEmbeddingExperienceConfiguration registeredUserEmbeddingExperienceConfiguration = new RegisteredUserEmbeddingExperienceConfiguration { QSearchBar = registeredUserQSearchBarEmbeddingConfiguration }; Console.WriteLine( quicksightClient.GenerateEmbedUrlForRegisteredUserAsync(new GenerateEmbedUrlForRegisteredUserRequest { AwsAccountId = "111122223333", ExperienceConfiguration = registeredUserEmbeddingExperienceConfiguration, UserArn = "REGISTERED_USER_ARN", AllowedDomains = allowedDomains, SessionLifetimeInMinutes = 100 }).Result.EmbedUrl ); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }
Per assumere il ruolo, scegli una delle seguenti API operazioni AWS Security Token Service (AWS STS):
-
AssumeRole— Utilizzate questa operazione quando utilizzate un'IAMidentità per assumere il ruolo.
-
AssumeRoleWithWebIdentity— Utilizzate questa operazione quando utilizzate un provider di identità web per autenticare l'utente.
-
AssumeRoleWithSaml— Utilizzate questa operazione quando utilizzate SAML per autenticare gli utenti.
L'esempio seguente mostra il CLI comando per impostare il IAM ruolo. Il ruolo deve avere le autorizzazioni abilitate per quicksight:GenerateEmbedUrlForRegisteredUser
. Se stai adottando un just-in-time approccio per aggiungere utenti quando utilizzano un argomento nella barra di ricerca Q, anche per quicksight:RegisterUser
il ruolo è necessario abilitare le autorizzazioni.
aws sts assume-role \ --role-arn "
arn:aws:iam::111122223333:role/embedding_quicksight_q_search_bar_role
" \ --role-session-namejohn.doe@example.com
L'operazione assume-role
restituisce tre parametri di output: la chiave di accesso, la chiave segreta e il token della sessione.
Nota
Se si verifica un errore ExpiredToken
durante la chiamata all'operazione AssumeRole
, vuol dire che il SESSION TOKEN
precedente è ancora presente nelle variabili di ambiente. Cancellala impostando le seguenti variabili:
-
AWS_ACCESS_ _ID KEY
-
AWS_SECRET_ACCESS_KEY
-
AWS_SESSION_TOKEN
L'esempio seguente mostra come impostare questi tre parametri in. CLI Per un computer Microsoft Windows, utilizza set
invece di 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'esecuzione di questi comandi imposta l'ID della sessione del ruolo dell'utente che visita la pagina del tuo sito Web suembedding_quicksight_q_search_bar_role/john.doe@example.com
. L'ID della sessione del ruolo è costituito dal nome del ruolo di role-arn
e dal valore role-session-name
. L'utilizzo dell'ID della sessione del ruolo univoco per ciascun utente garantisce che le autorizzazioni appropriate siano impostate per ogni utente. Impedisce inoltre il throttling dell'accesso degli utenti. La limitazione è una funzionalità di sicurezza che impedisce allo stesso utente di accedere QuickSight da più postazioni.
L'ID della sessione del ruolo diventa anche il nome utente in. QuickSight Puoi utilizzare questo modello per fornire i tuoi utenti in QuickSight anticipo o per assegnarli la prima volta che accedono alla barra di ricerca Q.
L'esempio seguente mostra il CLI comando che è possibile utilizzare per effettuare il provisioning di un utente. Per ulteriori informazioni su RegisterUsere altre QuickSight API operazioni, consultate il QuickSight APIriferimento. DescribeUser
aws quicksight register-user \ --aws-account-id
111122223333
\ --namespace default \ --identity-typeIAM
\ --iam-arn "arn:aws:iam::111122223333:role/embedding_quicksight_q_search_bar_role
" \ --user-roleREADER
\ --user-namejhnd
\ --session-name "john.doe@example.com
" \ --emailjohn.doe@example.com
\ --regionus-east-1
\ --custom-permissions-nameTeamA1
Se l'utente viene autenticato tramite Microsoft AD, non è necessario utilizzare RegisterUser
per configurarlo. Dovrebbero invece essere sottoscritti automaticamente la prima volta che accedono QuickSight. Per gli utenti di Microsoft AD, puoi utilizzare DescribeUser
per ottenere l'utente Amazon Resource Name (ARN).
La prima volta che un utente accede QuickSight, puoi anche aggiungere questo utente al gruppo con cui è condivisa la dashboard. L'esempio seguente mostra il CLI comando per aggiungere un utente a un gruppo.
aws quicksight create-group-membership \ --aws-account-id=
111122223333
\ --namespace=default \ --group-name=financeusers
\ --member-name="embedding_quicksight_q_search_bar_role/john.doe@example.com
"
Ora hai un utente della tua app che è anche un utente di QuickSight e che ha accesso alla dashboard.
Infine, per ottenere l'accesso URL alla dashboard, chiama generate-embed-url-for-registered-user
dal server dell'app. Ciò restituisce la dashboard incorporabile. URL L'esempio seguente mostra come generare il file URL per un dashboard incorporato utilizzando una chiamata lato server per gli utenti autenticati tramite AWS Managed Microsoft AD o Single Sign-On (Identity Center). IAM
aws quicksight generate-embed-url-for-registered-user \ --aws-account-id
111122223333
\ --session-lifetime-in-minutes600
\ --user-arnarn:aws:quicksight:us-east-1:111122223333:user/default/embedding_quicksight_q_search_bar_role/embeddingsession
--allowed-domains '["domain1
","domain2
"]' \ --experience-configuration QSearchBar={InitialTopicId=U4zJMVZ2n2stZflc8Ou3iKySEb3BEV6f
}
Per ulteriori informazioni sull'utilizzo di questa operazione, vedere GenerateEmbedUrlForRegisteredUser. È possibile utilizzare questa e altre API operazioni nel proprio codice.
Passaggio 3: incorpora la barra di ricerca Q URL
Nota
La barra di ricerca QuickSight Q incorporata offre la classica esperienza di QuickSight domande e risposte. QuickSight si integra con Amazon Q Business per lanciare una nuova esperienza di domande e risposte generative. Si consiglia agli sviluppatori di utilizzare la nuova esperienza di domande e risposte generative. Per ulteriori informazioni sull'esperienza di domande e risposte generative integrata, consulta. Integrazione di Amazon Q nell'esperienza di domande e QuickSight risposte generative
Nella sezione seguente, puoi scoprire come incorporare la barra di ricerca Q URL dal passaggio 3 nella pagina del tuo sito Web o dell'applicazione. Puoi farlo con Amazon QuickSight embedding SDK
-
Posiziona la barra di ricerca Q su una HTML pagina.
-
Passa i parametri nella barra di ricerca Q.
-
Gestisci stati di errore con messaggi personalizzati per l'applicazione.
Per generare file URL che puoi incorporare nella tua app, chiama l'GenerateEmbedUrlForRegisteredUser
APIoperazione. URLÈ valido per 5 minuti e la sessione risultante è valida per un massimo di 10 ore. L'APIoperazione fornisce un auth_code
valore che URL abilita una sessione Single Sign-On.
Di seguito viene mostrata una risposta di esempio da generate-embed-url-for-registered-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" }
Incorpora la barra di ricerca Q nella tua pagina web utilizzando l'QuickSightincorporamento SDK
Per fare ciò, assicurati che il dominio su cui ospitare la barra di ricerca Q incorporata sia nell'elenco dei domini consentiti, l'elenco dei domini approvati per il tuo QuickSight abbonamento. Questo requisito protegge i tuoi dati impedendo ai domini non approvati di ospitare pannelli di controllo incorporati. Per ulteriori informazioni sull'aggiunta di domini per una barra di ricerca Q incorporata, consulta Gestione dei domini e incorporamento.
Quando usi l' QuickSight EmbeddingSDK, la barra di ricerca Q sulla tua pagina viene ridimensionata dinamicamente in base allo stato. Utilizzando l' QuickSight incorporamentoSDK, puoi anche controllare i parametri all'interno della barra di ricerca Q e ricevere richiami in termini di completamento del caricamento della pagina ed errori.
L'esempio seguente mostra come utilizzare il generato. URL Questo codice viene generato sul server delle applicazioni.
<!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>
Affinché questo esempio funzioni, assicurati di utilizzare Amazon QuickSight Embedding SDK per caricare la dashboard incorporata sul tuo sito Web utilizzando JavaScript. Per ottenere la tua copia, procedi in uno dei seguenti modi:
-
Scarica l' QuickSight incorporamento di Amazon SDK
da GitHub. Questo repository è gestito da un gruppo di QuickSight sviluppatori. -
Scarica l'ultima SDK versione di incorporamento da. https://www.npmjs.com/package/amazon-quicksight-embedding-sdk
-
Se lo utilizzi
npm
per JavaScript le dipendenze, scaricalo e installalo eseguendo il comando seguente.npm install amazon-quicksight-embedding-sdk
Funzionalità opzionali di incorporamento della barra di ricerca di Amazon QuickSight Q
Nota
La barra di ricerca QuickSight Q incorporata offre la classica esperienza di QuickSight domande e risposte. QuickSight si integra con Amazon Q Business per lanciare una nuova esperienza di domande e risposte generative. Si consiglia agli sviluppatori di utilizzare la nuova esperienza di domande e risposte generative. Per ulteriori informazioni sull'esperienza di domande e risposte generative integrata, consulta. Integrazione di Amazon Q nell'esperienza di domande e QuickSight risposte generative
Le seguenti funzionalità opzionali sono disponibili per la barra di ricerca Q incorporata che utilizza l'incorporamento. SDK
Richiamo delle operazioni della barra di ricerca Q
Le seguenti opzioni sono supportate solo per l'incorporamento della barra di ricerca Q.
-
Imposta una domanda sulla barra di ricerca Q: questa funzione invia una domanda alla barra di ricerca Q e interroga immediatamente la domanda. Inoltre, apre automaticamente la finestra a comparsa di Q.
qBar.setQBarQuestion('
show me monthly revenue
'); -
Chiudi il popover Q: questa funzione chiude la finestra a comparsa di Q e riporta l'iframe alla dimensione originale della barra di ricerca Q.
qBar.closeQPopover();
Per ulteriori informazioni, consulta l'incorporamentoQuickSight . SDK