Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Incrustar la barra de búsqueda de Amazon QuickSight Q para usuarios anónimos (no registrados)
Público objetivo: QuickSight desarrolladores de Amazon |
nota
La barra de búsqueda QuickSight Q integrada ofrece la clásica experiencia de QuickSight preguntas y respuestas. QuickSight se integra con Amazon Q Business para lanzar una nueva experiencia de preguntas y respuestas generativas. Se recomienda a los desarrolladores usar la nueva experiencia de preguntas y respuestas generativas. Para obtener más información sobre la experiencia de preguntas y respuestas generativas incrustada, consulte Cómo integrar Amazon Q en la experiencia de preguntas y QuickSight respuestas generativas.
En las siguientes secciones, encontrarás información detallada sobre cómo configurar una barra de búsqueda de Amazon QuickSight Q integrada para usuarios anónimos (no registrados).
Temas
Paso 1: configuración de permisos
nota
La barra de búsqueda QuickSight Q integrada proporciona la clásica experiencia de QuickSight preguntas y respuestas. QuickSight se integra con Amazon Q Business para lanzar una nueva experiencia de preguntas y respuestas generativas. Se recomienda a los desarrolladores usar la nueva experiencia de preguntas y respuestas generativas. Para obtener más información sobre la experiencia de preguntas y respuestas generativas incrustada, consulte Cómo integrar Amazon Q en la experiencia de preguntas y QuickSight respuestas generativas.
En la siguiente sección, puede encontrar información sobre cómo configurar los permisos de la aplicación de backend o del servidor web para integrar la barra de búsqueda de Q. Esta tarea requiere acceso administrativo a AWS Identity and Access Management (). IAM
Cada usuario que accede a una barra de búsqueda Q asume un rol que le da QuickSight acceso y permisos a Amazon para acceder a la barra de búsqueda Q. Para que esto sea posible, crea un IAM rol en tu Cuenta de AWS. Asocie una IAM política al rol para proporcionar permisos a cualquier usuario que lo asuma. El IAM rol debe proporcionar permisos para recuperar la incrustación de URLs un grupo de usuarios específico.
Con la ayuda del carácter comodín *, puedes conceder los permisos necesarios URL para generar un a todos los usuarios de un espacio de nombres específico. También puedes conceder permisos para generar una URL para un subconjunto de usuarios en espacios de nombres específicos. Para ello, añada quicksight:GenerateEmbedUrlForAnonymousUser
.
Puede crear una condición en su IAM política que limite los dominios que los desarrolladores pueden incluir en el AllowedDomains
parámetro de una operación. GenerateEmbedUrlForAnonymousUser
API El parámetro AllowedDomains
es opcional. Ofrece a los desarrolladores la opción de anular los dominios estáticos que están configurados en el QuickSight menú Administrar y, en su lugar, enumerar hasta tres dominios o subdominios que pueden acceder a uno generado. URL A continuación, URL se integra en el sitio web del desarrollador. Solo los dominios que aparecen en el parámetro pueden acceder a la barra de búsqueda de Q. Sin esta condición, los desarrolladores pueden incluir cualquier dominio de Internet en el parámetro AllowedDomains
.
Para limitar los dominios que los desarrolladores pueden usar con este parámetro, agrega una AllowedEmbeddingDomains
condición a tu IAM política. Para obtener más información sobre el AllowedDomains
parámetro, consulta GenerateEmbedUrlForAnonymousUserAmazon QuickSight API Reference.
La siguiente política de ejemplo ofrece estos permisos.
{ "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" ] } } }
La IAM identidad de tu aplicación debe tener asociada una política de confianza para permitir el acceso al rol que acabas de crear. Esto significa que, cuando un usuario accede a su aplicación, esta puede asumir el rol en nombre del usuario para abrir la barra de búsqueda de Q. En el siguiente ejemplo, se muestra una muestra de política de confianza.
{ "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" } ] }
Para obtener más información sobre las políticas de confianza, consulte las credenciales de seguridad temporales IAM en la Guía del IAM usuario
Paso 2: Genere las URL con el código de autenticación adjunto
nota
La barra de búsqueda QuickSight Q integrada proporciona la clásica experiencia de QuickSight preguntas y respuestas. QuickSight se integra con Amazon Q Business para lanzar una nueva experiencia de preguntas y respuestas generativas. Se recomienda a los desarrolladores usar la nueva experiencia de preguntas y respuestas generativas. Para obtener más información sobre la experiencia de preguntas y respuestas generativas incrustada, consulte Cómo integrar Amazon Q en la experiencia de preguntas y QuickSight respuestas generativas.
En la siguiente sección, encontrarás información sobre cómo autenticar a tu usuario y colocar el tema Q integrable en tu servidor de aplicaciones. URL
Cuando un usuario accede a tu aplicación, la aplicación asume la IAM función en nombre del usuario. A continuación, la aplicación agrega el usuario a QuickSight, si ese usuario aún no existe. A continuación, transfiere un identificador como ID de sesión de rol único.
Para obtener más información, consulte 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)
En el siguiente ejemplo, se muestra el archivo JavaScript (Node.js) que puede usar en el servidor de aplicaciones URL para generar el panel integrado. Puede usarlo URL en su sitio web o aplicación para mostrar el panel.
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' }
El siguiente ejemplo muestra el. NETCódigo /C # que se puede utilizar en el servidor de aplicaciones para generar el código URL para la barra de búsqueda Q incrustada. Puedes usarlo URL en tu sitio web o aplicación para mostrar la barra de búsqueda Q.
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); } } } }
Para asumir el rol, elija una de las siguientes API operaciones AWS Security Token Service (AWS STS):
-
AssumeRole— Utilice esta operación cuando utilice una IAM identidad para asumir el rol.
-
AssumeRoleWithWebIdentity— Utilice esta operación cuando utilice un proveedor de identidad web para autenticar al usuario.
-
AssumeRoleWithSaml— Utilice esta operación cuando la utilice SAML para autenticar a sus usuarios.
El siguiente ejemplo muestra el CLI comando para establecer el IAM rol. El rol debe tener los permisos de quicksight:GenerateEmbedUrlForAnonymousUser
habilitados.
aws sts assume-role \ --role-arn "
arn:aws:iam::111122223333:role/embedding_quicksight_q_search_bar_role
" \ --role-session-nameanonymous caller
La operación assume-role
devuelve tres parámetros de salida: la clave de acceso, la clave secreta y el token de sesión.
nota
Si se produce un error ExpiredToken
al llamar a la operación AssumeRole
, probablemente se debe a que el SESSION TOKEN
anterior aún se encuentra en las variables de entorno. Para retirarlo, establezca las variables siguientes:
-
AWS_ACCESS_ KEY _ID
-
AWS_SECRET_ACCESS_KEY
-
AWS_SESSION_TOKEN
El siguiente ejemplo muestra cómo configurar estos tres parámetros en. CLI En un ordenador con Microsoft Windows, utilice set
en lugar 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
"
Al ejecutar estos comandos, se define el ID de sesión del rol del usuario que visita su sitio web como embedding_quicksight_q_search_bar_role/QuickSightEmbeddingAnonymousPolicy
. El ID de sesión del rol está compuesto por el nombre del rol de role-arn
y el valor de role-session-name
. Al utilizar el ID de sesión del rol único para cada usuario, se garantiza que se definan los permisos correspondientes para cada usuario. También evitará la limitación del acceso de los usuarios. La limitación es una función de seguridad que impide que el mismo usuario acceda QuickSight desde varias ubicaciones. Además, mantiene cada sesión separada y distinta. Si utiliza una serie de servidores web, por ejemplo, para equilibrar la carga, y una sesión se vuelve a conectar a un servidor diferente, se inicia una nueva sesión.
Para conseguir que alguien firme URL en el panel de control, llama generate-embed-url-for-anynymous-user
desde el servidor de aplicaciones. Esto devuelve el panel de control integrable. URL En el siguiente ejemplo, se muestra cómo generarlo URL para un panel integrado mediante una llamada desde el servidor para los usuarios que realizan visitas anónimas a su portal web o aplicación.
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
Para obtener más información sobre el uso de esta operación, consulte GenerateEmbedUrlForRegisteredUser. Puede utilizar esta y otras API operaciones en su propio código.
Paso 3: Inserta la barra de búsqueda Q URL
nota
La barra de búsqueda QuickSight Q integrada ofrece la clásica experiencia de QuickSight preguntas y respuestas. QuickSight se integra con Amazon Q Business para lanzar una nueva experiencia de preguntas y respuestas generativas. Se recomienda a los desarrolladores usar la nueva experiencia de preguntas y respuestas generativas. Para obtener más información sobre la experiencia de preguntas y respuestas generativas incrustada, consulte Cómo integrar Amazon Q en la experiencia de preguntas y QuickSight respuestas generativas.
En la siguiente sección, encontrarás información sobre cómo incrustar la barra de búsqueda Q URL del paso 3 en tu sitio web o página de aplicación. Esto se hace con la QuickSightincrustación de Amazon SDK
-
Coloca la barra de búsqueda Q en una HTML página.
-
Pasar los parámetros a la barra de búsqueda de Q.
-
Resolver los estados de error con mensajes que se personalizan en su aplicación.
Para generar una URL que puedas incrustar en tu aplicación, llama a la GenerateEmbedUrlForAnonymousUser
API operación. Esto URL es válido durante 5 minutos y la sesión resultante es válida durante un máximo de 10 horas. La API operación proporciona un auth_code
valor que habilita una sesión de inicio de sesión único. URL
El siguiente es un ejemplo de respuesta 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" }
Inserta la barra de búsqueda Q en tu página web mediante la QuickSightincrustación SDK
Para ello, asegúrate de que el dominio en el que se aloja la barra de búsqueda Q incrustada esté en la lista de dominios permitidos, la lista de dominios aprobados para tu QuickSight suscripción. Este requisito protege los datos impidiendo que dominios no aprobados alojen barras de búsqueda de Q integradas. Para obtener más información acerca de añadir dominios a la barra de búsqueda de Q, consulte Administración de dominios e integración.
Cuando utilizas la opción QuickSight EmbeddingSDK, la barra de búsqueda Q de tu página cambia de tamaño de forma dinámica en función del estado. Al utilizar la función QuickSight EmbeddingSDK, también puedes controlar los parámetros de la barra de búsqueda Q y recibir llamadas en función de si se ha completado la carga de la página o si se ha producido algún error.
En el siguiente ejemplo, se muestra cómo utilizar lo generado. URL Este código se genera en el servidor de aplicaciones.
<!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>
Para que este ejemplo funcione, asegúrese de utilizar Amazon QuickSight Embedding SDK para cargar la barra de búsqueda Q incrustada en su sitio web utilizando JavaScript. Para obtener su copia, siga uno de estos pasos:
-
Descarga la QuickSight incrustación de Amazon SDK
desde GitHub. Este repositorio lo mantiene un grupo de QuickSight desarrolladores. -
Descargue la última SDK versión de incrustación desde https://www.npmjs.com/package/amazon-quicksight-embedding-sdk
. -
Si lo usa
npm
para JavaScript dependencias, descárguelo e instálelo ejecutando el siguiente comando.npm install amazon-quicksight-embedding-sdk
Funcionalidades opcionales de incrustación en la barra de búsqueda de Amazon QuickSight Q
nota
La barra de búsqueda QuickSight Q integrada ofrece la clásica experiencia de QuickSight preguntas y respuestas. QuickSight se integra con Amazon Q Business para lanzar una nueva experiencia de preguntas y respuestas generativas. Se recomienda a los desarrolladores usar la nueva experiencia de preguntas y respuestas generativas. Para obtener más información sobre la experiencia de preguntas y respuestas generativas incrustada, consulte Cómo integrar Amazon Q en la experiencia de preguntas y QuickSight respuestas generativas.
Las siguientes funcionalidades opcionales están disponibles para la barra de búsqueda Q integrada mediante la incrustación. SDK
Invocación de las acciones de la barra de búsqueda de Q
Las siguientes opciones solo son compatibles con la integración de la barra de búsqueda de Q.
-
Establecer una pregunta en la barra de búsqueda de Q: esta característica envía una pregunta a la barra de búsqueda de Q e inmediatamente la consulta. También abre automáticamente la ventana emergente de Q.
qBar.setQBarQuestion('
show me monthly revenue
'); -
Cerrar la ventana emergente de Q: esta característica cierra la ventana emergente de Q y devuelve el iframe al tamaño original de la barra de búsqueda de Q.
qBar.closeQPopover();
Para obtener más información, consulte la QuickSight incrustación SDK