匿名 (未登録) ユーザー向けの Amazon QuickSight Q 検索バーの埋め込み - Amazon QuickSight

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

匿名 (未登録) ユーザー向けの Amazon QuickSight Q 検索バーの埋め込み

   対象者: Amazon QuickSight デベロッパー 
注記

埋め込み QuickSight Q 検索バーは、従来の QuickSight Q&A experience. QuickSight integrates を Amazon Q Business と統合して、新しい Generative Q&A experience を起動します。デベロッパーは、新しい生成 Q&A エクスペリエンスを使用することをお勧めします。組み込みの Generative Q&A エクスペリエンスの詳細については、「 QuickSight Generative Q&A エクスペリエンスに Amazon Q を埋め込む」を参照してください。

以下のセクションでは、匿名 (未登録) ユーザー用に埋め込み Amazon QuickSight Q 検索バーを設定する方法について詳しく説明します。

ステップ 1: 許可をセットアップする

注記

埋め込み QuickSight Q 検索バーは、従来の QuickSight Q&A experience. QuickSight integrates を Amazon Q Business と統合して、新しい Generative Q&A experience を起動します。デベロッパーは、新しい生成 Q&A エクスペリエンスを使用することをお勧めします。組み込みの Generative Q&A エクスペリエンスの詳細については、「 QuickSight Generative Q&A エクスペリエンスに Amazon Q を埋め込む」を参照してください。

以下のセクションでは、Q 検索バーを埋め込むために、バックエンドアプリケーションまたはウェブサーバーの許可をセットアップする方法を説明します。このタスクには、 AWS Identity and Access Management () への管理アクセスが必要ですIAM。

Q 検索バーにアクセスする各ユーザーは、Amazon に Q 検索バー QuickSight へのアクセスとアクセス許可を付与するロールを引き受けます。これを可能にするには、 で IAMロールを作成します AWS アカウント。IAM ポリシーをロールに関連付けて、それを引き受けるすべてのユーザーに許可を付与します。IAM ロールは、特定のユーザープールURLsの埋め込みを取得するためのアクセス許可を提供する必要があります。

ワイルドカード文字 * を使用すると、特定の名前空間のすべてのユーザーに URL を生成するアクセス許可を付与できます。または、特定の名前空間のユーザーのサブセットURLに対して を生成するアクセス許可を付与することもできます。このためには、quicksight:GenerateEmbedUrlForAnonymousUser を追加します。

IAM ポリシーで、デベロッパーが GenerateEmbedUrlForAnonymousUser API オペレーションの AllowedDomainsパラメータにリストできるドメインを制限する条件を作成できます。AllowedDomains パラメータはオプションのパラメータです。開発者には、管理 QuickSightメニューで設定されている静的ドメインを上書きし、代わりに生成された にアクセスできるドメインまたはサブドメインを最大 3 つ一覧表示するオプションが付与されますURL。これはURL開発者のウェブサイトに埋め込まれます。パラメータにリストされているドメインのみが、埋め込み Q 検索バーにアクセスできます。すなわち、この条件を設定していない場合、デベロッパーはインターネット上の任意のドメインを AllowedDomains パラメータにリストできてしまいます。

デベロッパーがこのパラメータで使用できるドメインを制限するには、IAMポリシーに AllowedEmbeddingDomains条件を追加します。AllowedDomains パラメータの詳細については、「Amazon QuickSight API リファレンスGenerateEmbedUrlForAnonymousUser」の「」を参照してください。

次のサンプルポリシーで、これらの権限が付与されます。

{ "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" ] } } }

作成したロールへのアクセスを許可するには、アプリケーションの IAM ID に信頼ポリシーが関連付けられている必要があります。つまり、ユーザーがアプリケーションにアクセスすると、アプリケーションはユーザーに代わって Q 検索バーを開くためのロールを引き受けます。次の例は、サンプルの信頼ポリシーを示しています。

{ "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" } ] }

信頼ポリシーの詳細については、「 IAMユーザーガイド」の「 での一時的なセキュリティ認証情報IAM」を参照してください。

ステップ 2: 認証コードURLがアタッチされた を生成する

注記

埋め込み QuickSight Q 検索バーは、従来の QuickSight Q&A experience. QuickSight integrates を Amazon Q Business と統合して、新しい Generative Q&A experience を起動します。デベロッパーは、新しい生成 Q&A エクスペリエンスを使用することをお勧めします。組み込みの Generative Q&A エクスペリエンスの詳細については、「 QuickSight Generative Q&A エクスペリエンスに Amazon Q を埋め込む」を参照してください。

次のセクションでは、ユーザーを認証し、アプリケーションサーバーURLで埋め込み Q トピックを取得する方法について説明します。

ユーザーがアプリにアクセスすると、アプリはユーザーに代わってIAMロールを引き受けます。その後、アプリは、そのユーザーがまだ存在しない場合は QuickSight、そのユーザーを に追加します。次に、アプリケーションが一意のロールセッション ID として識別子を渡します。

詳細については、「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)

次の例は、埋め込みダッシュボードURLの を生成するためにアプリケーションサーバーで使用できる JavaScript (Node.js) を示しています。これは、ウェブサイトまたはアプリURLでダッシュボードを表示するために使用できます。

const AWS = require('aws-sdk'); const https = require('https'); var quicksightClient = new AWS.Service({ apiConfig: require('./quicksight-2018-04-01.min.json'), region: 'us-east-1', }); quicksightClient.generateEmbedUrlForAnonymousUser({ 'AwsAccountId': '111122223333', 'Namespace': 'DEFAULT' 'AuthorizedResourceArns': '["topic-arn-topicId1","topic-arn-topicId2"]', 'AllowedDomains': allowedDomains, 'ExperienceConfiguration': { 'QSearchBar': { 'InitialTopicId': 'U4zJMVZ2n2stZflc8Ou3iKySEb3BEV6f' } }, 'SessionTags': '["Key": tag-key-1,"Value": tag-value-1,{"Key": tag-key-1,"Value": tag-value-1}]', 'SessionLifetimeInMinutes': 15 }, function(err, data) { console.log('Errors: '); console.log(err); console.log('Response: '); console.log(data); });
//The URL returned is over 900 characters. For this example, we've shortened the string for //readability and added ellipsis to indicate that it's incomplete. { Status: 200, EmbedUrl : 'https://quicksightdomain/embed/12345/dashboards/67890/sheets/12345/visuals/67890...', RequestId: '7bee030e-f191-45c4-97fe-d9faf0e03713' }

次の例は、.NET/ を示しています。埋め込み Q 検索バーURLの を生成するためにアプリケーションサーバーで使用できる C# コード。ウェブサイトまたはアプリURLでこれを使用して、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); } } } }

ロールを引き受けるには、次のいずれかの AWS Security Token Service (AWS STS) APIオペレーションを選択します。

  • AssumeRole – ID を使用してロールを引き受ける場合はIAM、このオペレーションを使用します。

  • AssumeRoleWithWebIdentity – ウェブ ID プロバイダーを使用してユーザーを認証する場合は、このオペレーションを使用します。

  • AssumeRoleWithSaml – を使用してユーザーSAMLを認証する場合は、このオペレーションを使用します。

次の例は、IAMロールを設定する CLI コマンドを示しています。ロールは、quicksight:GenerateEmbedUrlForAnonymousUser を有効にする許可を取得する必要があります。

aws sts assume-role \ --role-arn "arn:aws:iam::111122223333:role/embedding_quicksight_q_search_bar_role" \ --role-session-name anonymous caller

assume-role オペレーションは、アクセスキー、シークレットキー、およびセッショントークンの 3 つの出力パラメータを返します。

注記

AssumeRole オペレーションを呼び出すときに ExpiredToken エラーが発生した場合は、以前の SESSION TOKEN がまだ環境変数に残っている可能性があります。以下の変数を設定することで、これをオフにします。

  • AWS_ACCESSKEY__ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

次の例は、 でこれら 3 つのパラメータを設定する方法を示していますCLI。Microsoft Windows マシンの場合は、export の代わりに set を使用してください。

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"

これらのコマンドを実行すると、ウェブサイトにアクセスしているユーザーのロールセッション ID が embedding_quicksight_q_search_bar_role/QuickSightEmbeddingAnonymousPolicy に設定されます。ロールセッション ID は、role-arn の役割名と role-session-name 値で構成されています。各ユーザーに一意のロールセッション ID を使用すると、各ユーザーに適切なアクセス許可が設定されます。また、ユーザーアクセスのスロットリングが防止されます。スロットリングは、同じユーザーが複数の場所 QuickSight から にアクセスできないようにするセキュリティ機能です。また、各セッションを別個に保ちます。ロードバランシングなどのウェブサーバーの配列を使用していて、セッションが別のサーバーに再接続されると、新しいセッションが開始されます。

ダッシュボードURLの署名を取得するには、アプリケーションサーバーgenerate-embed-url-for-anynymous-userから を呼び出します。これにより、埋め込み可能なダッシュボード が返されますURL。次の例は、ウェブポータルまたはアプリに匿名でアクセスするユーザーのサーバー側の呼び出しを使用してURL、埋め込みダッシュボードの を生成する方法を示しています。

aws quicksight generate-embed-url-for-anonymous-user \ --aws-account-id 111122223333 \ --namespace default-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

このオペレーションの使用の詳細については、「」を参照してください。 GenerateEmbedUrlForRegisteredUser。 このオペレーションと他のAPIオペレーションは、独自のコードで使用できます。

ステップ 3: Q 検索バーを埋め込む URL

注記

埋め込み QuickSight Q 検索バーは、従来の QuickSight Q&A experience. QuickSight integrates を Amazon Q Business と統合して、新しい Generative Q&A experience を起動します。デベロッパーは、新しい生成 Q&A エクスペリエンスを使用することをお勧めします。組み込みの Generative Q&A エクスペリエンスの詳細については、「 QuickSight Generative Q&A エクスペリエンスに Amazon Q を埋め込む」を参照してください。

次のセクションでは、ステップ 3 URLの Q 検索バーをウェブサイトまたはアプリケーションページに埋め込む方法について説明します。これは、Amazon QuickSight 埋め込み () SDKを使用して行いますJavaScript。SDK を使用すると、以下の操作を行うことができます。

  • Q 検索バーを HTMLページに配置します。

  • Q 検索バーにパラメータを渡す。

  • アプリケーションに合わせてカスタマイズされたメッセージでエラー状態を処理します。

アプリに埋め込むURLことができる を生成するには、 GenerateEmbedUrlForAnonymousUserAPIオペレーションを呼び出します。これは URL 5 分間有効で、結果として得られるセッションは最大 10 時間有効です。API オペレーションは、シングルサインオンセッションを有効にするURLauth_code値を に提供します。

以下に、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" }

Q 検索バーをウェブページに埋め込むには、QuickSight埋め込みを使用するSDKか、iframe URL に追加します。固定の高さと幅の数値 (ピクセル単位) を設定した場合、 はそれら QuickSight を使用し、ウィンドウのサイズ変更時にビジュアルを変更しません。高さと幅の相対的なパーセンテージを設定した場合、 QuickSight ではウィンドウサイズの変更に応じて変更されるレスポンシブレイアウトが提供されます。

これを行うには、埋め込み Q 検索バーをホストするドメインが、 QuickSight サブスクリプションで承認されたドメインのリストである許可リストにあることを確認します。この要件は、未承認のドメインが埋め込み Q 検索バーをホストしないようにすることでデータを保護します。Q 検索バーの埋め込みを行うドメインの追加に関する詳細は、「ドメインの管理と埋め込み」を参照してください。

QuickSight 埋め込み を使用するとSDK、ページの Q 検索バーは状態に基づいて動的にサイズ変更されます。 QuickSight 埋め込み を使用するとSDK、Q 検索バー内のパラメータを制御したり、ページロードの完了やエラーに関するコールバックを受信したりすることもできます。

次の例は、生成された を使用する方法を示していますURL。このコードはアプリケーションサーバー上で生成されます。

<!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>

この例では、Amazon QuickSight Embedding を使用してSDKウェブサイトに埋め込み Q 検索バーをロードします JavaScript。コピーを取得するには、次のいずれかを実行します。

  • Amazon QuickSight 埋め込みSDKを からダウンロードします GitHub。このリポジトリは、 QuickSight 開発者グループによって管理されます。

  • から最新の埋め込みSDKバージョンをダウンロードしますhttps://www.npmjs.com/package/amazon-quicksight-embedding-sdk

  • JavaScript 依存関係npmに を使用する場合は、次のコマンドを実行してダウンロードしてインストールします。

    npm install amazon-quicksight-embedding-sdk

オプションの Amazon QuickSight Q 検索バー埋め込み機能

注記

埋め込み QuickSight Q 検索バーは、従来の QuickSight Q&A experience. QuickSight integrates を Amazon Q Business と統合して、新しい Generative Q&A experience を起動します。デベロッパーは、新しい生成 Q&A エクスペリエンスを使用することをお勧めします。組み込みの Generative Q&A エクスペリエンスの詳細については、「 QuickSight Generative Q&A エクスペリエンスに Amazon Q を埋め込む」を参照してください。

埋め込み を使用して、埋め込み Q 検索バーで次のオプション機能を使用できますSDK。

Q 検索バーのアクションを呼び出す

次のオプションは、Q 検索バーの埋め込みでのみサポートされます。

  • Q 検索バーの質問を設定する — Q 検索バーで質問を送信し、それをすぐにクエリする機能です。この機能では Q ポップオーバーも自動的に開きます。

    qBar.setQBarQuestion('show me monthly revenue');
  • Q ポップオーバーを閉じる — Q ポップオーバーを閉じて、iframe を元の Q 検索バーのサイズに戻す機能です。

    qBar.closeQPopover();

詳細については、QuickSight 「 の埋め込みSDK」を参照してください。