Incorporamento della barra di ricerca di Amazon QuickSight Q per utenti registrati
| Si applica a: Enterprise Edition |
| Destinatari: sviluppatori di Amazon QuickSight |
Nota
La barra di ricerca QuickSightQ incorporata offre la classica esperienza di domande e risposte di QuickSight. QuickSight si integra con Amazon Q Business per lanciare una nuova esperienza Domande e risposte generative. Si consiglia agli sviluppatori di utilizzare la nuova esperienza Domande e risposte generative. Per ulteriori informazioni sull'esperienza Domande e risposte generative incorporata, consulta Incorporamento di Amazon Q in QuickSight nell'esperienza Domande e risposte generative.
Nelle sezioni seguenti sono riportate le informazioni dettagliate su come configurare la barra di ricerca di Amazon QuickSight Q incorporata per gli utenti registrati di QuickSight.
Argomenti
Fase 1: Configurazione delle autorizzazioni
Nota
La barra di ricerca QuickSightQ incorporata offre la classica esperienza di domande e risposte di QuickSight. QuickSight si integra con Amazon Q Business per lanciare una nuova esperienza Domande e risposte generative. Si consiglia agli sviluppatori di utilizzare la nuova esperienza Domande e risposte generative. Per ulteriori informazioni sull'esperienza Domande e risposte generative incorporata, consulta Incorporamento di Amazon Q in QuickSight nell'esperienza Domande e 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 operazione richiede l'accesso amministrativo a AWS Identity and Access Management (IAM).
Ogni utente che accede a un pannello di controllo assume un ruolo che concede l'accesso ad Amazon QuickSight e le autorizzazioni per il pannello di controllo. Per far ciò, crea un ruolo IAM nell'Account AWS. Associa una policy IAM al ruolo per fornire le autorizzazioni a qualsiasi utente che lo assume. Il ruolo IAM deve fornire le autorizzazioni per recuperare gli URL di incorporamento per un pool di utenti specifico.
Con l'aiuto del carattere jolly *, puoi concedere le autorizzazioni per generare un URL per tutti gli utenti in uno spazio dei nomi specifico. Oppure puoi concedere le autorizzazioni per generare un URL per un sottoinsieme di utenti in spazi dei nomi specifici. Per questo, aggiungi quicksight:GenerateEmbedUrlForRegisteredUser.
Puoi creare una condizione nella tua policy IAM che limiti i domini che gli sviluppatori possono elencare nel parametro AllowedDomains di un'operazione API GenerateEmbedUrlForRegisteredUser. Il parametro AllowedDomains è un parametro facoltativo. Offre agli sviluppatori la possibilità di sovrascrivere i domini statici configurati nel menu Gestisci QuickSight e di elencare invece fino a tre domini o sottodomini che possono accedere a un URL generato. 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 condizione AllowedEmbeddingDomains alla tua policy IAM. Per ulteriori informazioni sul parametro AllowedDomains, consulta GenerateEmbedUrlForRegisteredUser nella Documentazione di riferimento delle API di Amazon QuickSight.
Queste autorizzazioni sono fornite dalla seguente policy di esempio.
Inoltre, se stai creando utenti alle prime armi che saranno lettori di Amazon QuickSight, assicurati di aggiungere l'autorizzazione quicksight:RegisterUser nella policy.
La seguente policy di esempio fornisce l'autorizzazione a recuperare un URL di incorporamento per gli utenti alle prime armi che devono essere lettori QuickSight.
Infine, è necessario che all'identità IAM dell'applicazione sia associata una policy di attendibilità per consentire l'accesso al ruolo appena creato. Ciò significa che, quando un utente accede a un'applicazione, l'applicazione può assumere quel ruolo per conto dell'utente ed effettuare il provisioning dell'utente in QuickSight.
Di seguito è mostrata una policy di attendibilità di esempio.
Per ulteriori informazioni sulle policy di attendibilità per OpenID Connect o l'autenticazione SAML, consulta le sezioni seguenti della Guida per l'utente di IAM:
Fase 2: Generazione dell'URL con il codice di autenticazione allegato
Nota
La barra di ricerca QuickSightQ incorporata offre la classica esperienza di domande e risposte di QuickSight. QuickSight si integra con Amazon Q Business per lanciare una nuova esperienza Domande e risposte generative. Si consiglia agli sviluppatori di utilizzare la nuova esperienza Domande e risposte generative. Per ulteriori informazioni sull'esperienza Domande e risposte generative incorporata, consulta Incorporamento di Amazon Q in QuickSight nell'esperienza Domande e risposte generative.
Nella sezione seguente, è possibile scoprire come autenticare l'utente e ottenere l'URL dell'argomento Q incorporabile nel server delle applicazioni. Se prevedi di incorporare la barra Q per tipi di identità IAM o Amazon QuickSight, condividi l'argomento Q con gli utenti.
Quando un utente accede all'applicazione, l'applicazione assume il ruolo IAM per conto dell'utente. Quindi aggiunge l'utente a QuickSight, se tale utente non esiste già. In seguito, sarà necessario passare un identificatore come l'ID della sessione del ruolo univoco.
Questa procedura garantisce che per ogni visualizzatore dell'argomento Q viene effettuato il provisioning in modo univoco in 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'autenticazione IAM 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 codice JavaScript (Node.js) che è possibile utilizzare nel server delle applicazioni per generare l'URL per il pannello di controllo incorporato. È possibile utilizzare questo URL nel sito Web o nell'applicazione per visualizzare il pannello di controllo.
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 codice .NET/C# che è possibile utilizzare nel server delle applicazioni per ottenere l'URL per la barra di ricerca Q incorporata. È possibile utilizzare questo URL nel sito Web o nell'applicazione 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 quel ruolo, scegli una delle seguenti operazioni API di AWS Security Token Service (AWS STS):
-
AssumeRole: utilizza questa operazione quando usi un'identità IAM per assumere il ruolo.
-
AssumeRoleWithWebIdentity: utilizza questa operazione quando usi un gestore delle identità Web per autenticare l'utente.
-
AssumeRoleWithSaml: utilizza questa operazione quando usi SAML per autenticare gli utenti.
L'esempio seguente mostra il comando dell'interfaccia a riga di comando per impostare il ruolo IAM. Il ruolo deve avere le autorizzazioni abilitate per quicksight:GenerateEmbedUrlForRegisteredUser. Se stai adottando un approccio just-in-time per aggiungere utenti quando utilizzano un argomento nella barra di ricerca Q, per il ruolo è necessario abilitare anche le autorizzazioni quicksight:RegisterUser.
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_KEY_ID
-
AWS_SECRET_ACCESS_KEY
-
AWS_SESSION_TOKEN
L'esempio seguente mostra come impostare questi tre parametri nell'interfaccia a riga di comando. 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 (della larghezza di banda della rete) è una funzionalità di sicurezza che impedisce allo stesso utente di accedere a QuickSight da più posizioni.
Inoltre, l'ID della sessione del ruolo diventa il nome utente in QuickSight. È possibile usare questo modello per effettuare il provisioning degli utenti in QuickSight in anticipo o per effettuare il provisioning la prima volta che accedono alla barra di ricerca Q.
L'esempio seguente mostra il comando dell'interfaccia a riga di comando che è possibile utilizzare per effettuare il provisioning di un utente. Per ulteriori informazioni su RegisterUser, DescribeUser e altre operazioni API QuickSight, consulta la Documentazione di riferimento delle API QuickSight.
aws quicksight register-user \ --aws-account-id111122223333\ --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. In caso contrario, deve essere automaticamente sottoscritto al primo accesso a QuickSight. Per gli utenti Microsoft AD, puoi utilizzare DescribeUser per ottenere il nome della risorsa Amazon (ARN) dell'utente.
La prima volta che un utente accede a QuickSight, è anche possibile aggiungere l'utente al gruppo con il quale è condiviso il pannello di controllo. L'esempio seguente mostra il comando dell'interfaccia a riga di 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"
Hai ora un utente della tua applicazione che è anche un utente di QuickSight e che ha accesso al pannello di controllo.
Infine, per ottenere un URL provvisto di firma per il pannello di controllo, chiama generate-embed-url-for-registered-user dal server delle applicazioni. Questo restituisce l'URL del pannello di controllo incorporato. L'esempio seguente mostra come generare l'URL per un pannello di controllo incorporato utilizzando una chiamata sul lato server per gli utenti autenticati tramite AWS Managed Microsoft AD o single sign-on (Centro identità IAM).
aws quicksight generate-embed-url-for-registered-user \ --aws-account-id111122223333\ --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, consulta GenerateEmbedUrlForRegisteredUser. Puoi utilizzare questa API e altre operazioni nel tuo codice.
Fase 3: Incorporamento dell'URL della barra di ricerca Q
Nota
La barra di ricerca QuickSightQ incorporata offre la classica esperienza di domande e risposte di QuickSight. QuickSight si integra con Amazon Q Business per lanciare una nuova esperienza Domande e risposte generative. Si consiglia agli sviluppatori di utilizzare la nuova esperienza Domande e risposte generative. Per ulteriori informazioni sull'esperienza Domande e risposte generative incorporata, consulta Incorporamento di Amazon Q in QuickSight nell'esperienza Domande e risposte generative.
Nella sezione seguente, puoi scoprire come incorporare l'URL della barra di ricerca Q dalla fase 3 nella pagina del sito Web o dell'applicazione. Puoi farlo con l'SDK di incorporamento Amazon QuickSight
-
Posiziona la barra di ricerca Q su una pagina HTML.
-
Passa i parametri nella barra di ricerca Q.
-
Gestisci stati di errore con messaggi personalizzati per l'applicazione.
Chiama l'operazione API GenerateEmbedUrlForRegisteredUser per generare l'URL da incorporare nell'applicazione. Questo URL è valido per 5 minuti, mentre la sessione risultante è valida per 10 ore. L'operazione API fornisce l'URL con un valore auth_code che consente una sessione di 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 pagina Web utilizzando l'SDK di incorporamento QuickSight
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 abbonamento QuickSight. 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 utilizzi l'SDK di incorporamento QuickSight, la barra di ricerca Q sulla pagina viene ridimensionata dinamicamente in base allo stato. L'utilizzo dell'SDK di incorporamento QuickSight consente anche di controllare i parametri all'interno della barra di ricerca Q e ricevere callback in termini di caricamento delle pagine ed errori.
Il seguente esempio illustra come utilizzare l'URL generato. 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 l'SDK di incorporamento Amazon QuickSight per caricare il pannello di controllo incorporato sul tuo sito Web utilizzando JavaScript. Per ottenere la tua copia, procedi in uno dei seguenti modi:
-
Scarica l'SDK di incorporamento Amazon QuickSight
da GitHub. Questo repository è gestito da un gruppo di sviluppatori QuickSight. -
Scarica l'ultima versione dell'SDK di incorporamento da https://www.npmjs.com/package/amazon-quicksight-embedding-sdk
. -
Se utilizzi
npmper le dipendenze JavaScript, scaricalo e installalo emettendo il comando seguente.npm install amazon-quicksight-embedding-sdk
Funzionalità facoltative di incorporamento della barra di ricerca di Amazon QuickSight Q
Nota
La barra di ricerca QuickSightQ incorporata offre la classica esperienza di domande e risposte di QuickSight. QuickSight si integra con Amazon Q Business per lanciare una nuova esperienza Domande e risposte generative. Si consiglia agli sviluppatori di utilizzare la nuova esperienza Domande e risposte generative. Per ulteriori informazioni sull'esperienza Domande e risposte generative incorporata, consulta Incorporamento di Amazon Q in QuickSight nell'esperienza Domande e risposte generative.
Le seguenti funzionalità facoltative sono disponibili per la barra di ricerca Q incorporata utilizzando l'SDK di incorporamento.
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 SDK di incorporamento QuickSight