翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
登録済みユーザーの Amazon Quick Sight Q 検索バーの埋め込み
| 適用対象: Enterprise Edition |
| 対象者: Amazon Quick Suite 開発者 |
注記
埋め込み Amazon Quick Sight Q 検索バーは、従来の Amazon Quick Sight Q&A エクスペリエンスを提供します。Amazon Quick Sight は Amazon Q Business と統合して、新しい生成 Q&A エクスペリエンスを起動します。デベロッパーは、新しい生成 Q&A エクスペリエンスを使用することをお勧めします。組み込みの生成 Q&A エクスペリエンスの詳細については、「Amazon Quick Sight の生成 Q&A エクスペリエンスに Amazon Q を埋め込む」を参照してください。
以下のセクションでは、Amazon Quick Sight の登録ユーザー用に埋め込み Amazon Quick Sight Q 検索バーを設定する方法について詳しく説明します。
トピック
ステップ 1: 許可をセットアップする
注記
埋め込み Amazon Quick Sight Q 検索バーは、従来の Amazon Quick Sight Q&A エクスペリエンスを提供します。Amazon Quick Sight は Amazon Q Business と統合して、新しい生成 Q&A エクスペリエンスを起動します。デベロッパーは、新しい生成 Q&A エクスペリエンスを使用することをお勧めします。埋め込み Generative Q&A エクスペリエンスの詳細については、「Amazon Quick Sight Generative Q&A エクスペリエンスに Amazon Q を埋め込む」を参照してください。
以下のセクションでは、Q 検索バーを埋め込むために、バックエンドアプリケーションまたはウェブサーバーの許可をセットアップする方法を説明します。このタスクには AWS Identity and Access Management 、 (IAM) への管理アクセスが必要です。
ダッシュボードにアクセスする各ユーザーは、Amazon Quick Sight にダッシュボードへのアクセスとアクセス許可を付与するロールを引き受けます。これを可能にするには、 で IAM ロールを作成します AWS アカウント。IAM ポリシーをロールに関連付けて、それを引き受けるすべてのユーザーにアクセス許可を付与します。IAM ロールでは、特定のユーザープールに埋め込み URL を取得するアクセス許可を提供する必要があります。
ワイルドカード文字 * を使用することにより、特定の名前空間内の全ユーザーに URL を生成する許可を付与できます。または、特定の名前空間内のユーザーのサブセットに URL を生成する許可を付与することもできます。このためには、quicksight:GenerateEmbedUrlForRegisteredUser を追加します。
IAM ポリシーで条件を作成し、デベロッパーが GenerateEmbedUrlForRegisteredUser API オペレーションの AllowedDomains パラメータにリストできるドメインを制限できます。AllowedDomains パラメータはオプションのパラメータです。Amazon Quick Sight の管理メニューで設定された静的ドメインを上書きし、代わりに生成された URL にアクセスできる最大 3 つのドメインまたはサブドメインを一覧表示するオプションをデベロッパーに付与します。そして、この URL はデベロッパーのウェブサイトに埋め込むことができます。パラメータにリストされているドメインのみが、埋め込み Q 検索バーにアクセスできます。すなわち、この条件を設定していない場合、デベロッパーはインターネット上の任意のドメインを AllowedDomains パラメータにリストできてしまいます。
デベロッパーがこのパラメータで使用できるドメインを制限するには、AllowedEmbeddingDomains 条件を IAM ポリシーに追加します。AllowedDomains パラメータの詳細については、Amazon Quick Sight API リファレンスのGenerateEmbedUrlForRegisteredUser」を参照してください。
次のサンプルポリシーで、これらの権限が付与されます。
また、Amazon Quick Sight リーダーとなる初めてユーザーを作成する場合は、ポリシーに アクセスquicksight:RegisterUser許可を追加してください。
次のサンプルポリシーは、Amazon Quick Sight リーダーになる初めてのユーザーの埋め込み URL を取得するアクセス許可を提供します。
最後に、作成したロールへのアクセスを許可するには、アプリケーションの IAM ID に関連付けられた信頼ポリシーが必要です。つまり、ユーザーがアプリケーションにアクセスすると、アプリケーションはユーザーに代わってロールを引き受け、Amazon Quick Sight でユーザーをプロビジョニングできます。
次の例は、サンプルの信頼ポリシーを示しています。
OpenId Connect または Security Assertion Markup Language (SAML) 認証の信頼ポリシーに関する詳細については、IAM ユーザーガイドの以下のセクションを参照してください。
ステップ 2: 認証コードがアタッチされた URL を生成する
注記
埋め込み Amazon Quick Sight Q 検索バーは、従来の Amazon Quick Sight Q&A エクスペリエンスを提供します。Amazon Quick Sight は Amazon Q Business と統合して、新しい生成 Q&A エクスペリエンスを起動します。デベロッパーは、新しい生成 Q&A エクスペリエンスを使用することをお勧めします。埋め込み Generative Q&A エクスペリエンスの詳細については、「Amazon Quick Sight Generative Q&A エクスペリエンスに Amazon Q を埋め込む」を参照してください。
以下のセクションでは、ユーザーの認証方法と、アプリケーションサーバー上に埋め込むことができる Q トピック URL の取得方法を説明します。IAM または Amazon Quick Sight ID タイプの Q バーを埋め込む場合は、Q トピックをユーザーと共有します。
ユーザーがアプリケーションにアクセスすると、アプリケーションはユーザーに代わって IAM ロールを引き受けます。その後、そのユーザーがまだ存在しない場合、アプリはユーザーを Amazon Quick Sight に追加します。次に、アプリケーションが一意のロールセッション ID として識別子を渡します。
説明されているステップを実行すると、Q トピックの各ビューワーが Amazon Quick Sight で一意にプロビジョニングされます。行レベルのセキュリティやパラメータの動的デフォルトなど、ユーザーごとの設定も強制されます。
次の例では、ユーザーに代わって IAM 認証を実行します。このコードはアプリケーションサーバー上で実行されます。
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)
次の例は、埋め込みダッシュボードの 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.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' }
以下は、埋め込まれた Q 検索バーの URL を生成するためにアプリケーションサーバーで使用できる .NET/C# コードの例です。ウェブサイトまたはアプリケーションでこの URL を使用して、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); } } } }
ロールを引き受けるには、次のいずれかの AWS Security Token Service (AWS STS) API オペレーションを選択します。
-
AssumeRole – ロールを引き受けるために IAM ID を使用している場合は、このオペレーションを使用します。
-
AssumeRoleWithWebIdentity – ユーザーの認証にウェブ ID プロバイダーを使用している場合は、このオペレーションを使用します。
-
AssumeRoleWithSAML – ユーザーの認証に SAML を使用している場合は、このオペレーションを使用します。
次の例は、IAM ロールを設定するための CLI コマンドを示しています。ロールでは、quicksight:GenerateEmbedUrlForRegisteredUser に対する許可が有効化されている必要があります。ユーザーが Q 検索バーを使用するときにユーザーを追加するジャストインタイムアプローチを取っている場合は、ロールで 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
assume-role オペレーションは、アクセスキー、シークレットキー、およびセッショントークンの 3 つの出力パラメータを返します。
注記
AssumeRole オペレーションを呼び出すときに ExpiredToken エラーが発生した場合は、以前の SESSION TOKEN がまだ環境変数に残っている可能性があります。以下の変数を設定することで、これをオフにします。
-
AWS_ACCESS_KEY_ID
-
AWS_SECRET_ACCESS_KEY
-
AWS_SESSION_TOKEN
次の例は、CLI でこれら 3 つのパラメータを設定する方法を示しています。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/john.doe@example.com に設定されます。ロールセッション ID は、role-arn の役割名と role-session-name 値で構成されています。各ユーザーに一意のロールセッション ID を使用すると、各ユーザーに適切なアクセス許可が設定されます。また、ユーザーアクセスのスロットリングが防止されます。スロットリングは、同じユーザーが複数の場所から Amazon Quick Sight にアクセスできないようにするセキュリティ機能です。
ロールセッション ID も Amazon Quick Sight のユーザー名になります。このパターンを使用して、Amazon Quick Sight でユーザーを事前にプロビジョニングしたり、Q 検索バーに初めてアクセスしたときにプロビジョニングしたりできます。
次の例は、ユーザーをプロビジョニングするために使用できる CLI コマンドを示しています。RegisterUser、DescribeUser、およびその他の Amazon Quick Sight API オペレーションの詳細については、「Amazon Quick Sight API リファレンス」を参照してください。
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
ユーザーが Microsoft AD を介して認証されている場合、RegisterUser を使用してユーザーを設定する必要はありません。代わりに、Amazon Quick Sight に初めてアクセスするときに自動的にサブスクライブする必要があります。Microsoft AD ユーザーの場合は、DescribeUser を使用してユーザーの Amazon リソースネーム (ARN) を取得できます。
ユーザーが Amazon Quick Sight に初めてアクセスするときに、ダッシュボードが共有されているグループにこのユーザーを追加することもできます。次の例は、ユーザーをグループに追加するための CLI コマンドを示しています。
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"
これで、Amazon Quick Sight のユーザーでもあり、ダッシュボードにアクセスできるアプリのユーザーができました。
最後に、ダッシュボードの署名付き URL を取得するには、アプリケーションサーバーから generate-embed-url-for-registered-user を呼び出します。これは埋め込み可能なダッシュボードの URL を返します。次の例は、 AWS Managed Microsoft AD またはシングルサインオン (IAM アイデンティティセンター) で認証されたユーザーのサーバー側の呼び出しを使用して、埋め込みダッシュボードの URL を生成する方法を示しています。
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}
このオペレーションの使用に関する詳細については、GenerateEmbedUrlForRegisteredUser を参照してください。これと他の API オペレーションは、独自のコードで使用できます。
ステップ 3: Q 検索バー URL を埋め込む
注記
埋め込み Amazon Quick Sight Q 検索バーは、従来の Amazon Quick Sight Q&A エクスペリエンスを提供します。Amazon Quick Sight は Amazon Q Business と統合して、新しい生成 Q&A エクスペリエンスを起動します。デベロッパーは、新しい生成 Q&A エクスペリエンスを使用することをお勧めします。組み込みの生成 Q&A エクスペリエンスの詳細については、「Amazon Quick Sight の生成 Q&A エクスペリエンスに Amazon Q を埋め込む」を参照してください。
以下のセクションでは、ステップ 3 からの Q 検索バー URL をウェブサイトまたはアプリケーションページに埋め込む方法を説明します。これは、Amazon Quick Sight 埋め込み SDK
-
Q 検索バーを HTML ページに設置する。
-
Q 検索バーにパラメータを渡す。
-
アプリケーションに合わせてカスタマイズされたメッセージでエラー状態を処理します。
アプリケーションに埋め込むことができる URL を生成するには、GenerateEmbedUrlForRegisteredUser API オペレーションを呼び出します。この URL は 5 分間有効で、得られたセッションは最大 10 時間有効です。API オペレーションは、シングルサインオンセッションを有効にする auth_code 値を伴う URL を提供します。
以下に、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" }
Amazon Quick Sight 埋め込み SDK を使用する
これを行うには、埋め込み Q 検索バーをホストするドメインが、Amazon Quick Sight サブスクリプションで承認されたドメインのリストである許可リストにあることを確認します。この要件は、未承認のドメインが埋め込みダッシュボードをホストしないようにすることでデータを保護します。埋め込み Q 検索バーのドメインの追加の詳細については、「ドメインの管理と埋め込み」を参照してください。
Amazon Quick Sight Embedding SDK を使用すると、ページの Q 検索バーは 状態に基づいて動的にサイズ変更されます。Amazon Quick Sight Embedding 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 Quick Sight Embedding SDK を使用して、JavaScript を使用してウェブサイトに埋め込みダッシュボードをロードします。コピーを取得するには、次のいずれかを実行します。
-
GitHub から Amazon Quick Sight 埋め込み SDK
をダウンロードします。このリポジトリは、Amazon Quick Sight 開発者のグループによって管理されます。 -
https://www.npmjs.com/package/amazon-quicksight-embedding-sdk
から、最新の埋め込み SDK バージョンをダウンロードします。 -
JavaScript の依存関係の
npmを使用する場合、次のコマンドを実行してダウンロードおよびインストールします。npm install amazon-quicksight-embedding-sdk
オプションの Amazon Quick Sight Q 検索バー埋め込み機能
注記
埋め込み Amazon Quick Sight Q 検索バーは、従来の Amazon Quick Sight Q&A エクスペリエンスを提供します。Amazon Quick Sight は Amazon Q Business と統合して、新しい生成 Q&A エクスペリエンスを起動します。デベロッパーは、新しい生成 Q&A エクスペリエンスを使用することをお勧めします。埋め込み Generative Q&A エクスペリエンスの詳細については、「Amazon Quick Sight Generative Q&A エクスペリエンスに Amazon Q を埋め込む」を参照してください。
埋め込み SDK を使用して、埋め込み Q 検索バーで次のオプション機能を使用できます。
Q 検索バーのアクションを呼び出す
次のオプションは、Q 検索バーの埋め込みでのみサポートされます。
-
Q 検索バーの質問を設定する — Q 検索バーで質問を送信し、それをすぐにクエリする機能です。この機能では Q ポップオーバーも自動的に開きます。
qBar.setQBarQuestion('show me monthly revenue'); -
Q ポップオーバーを閉じる — Q ポップオーバーを閉じて、iframe を元の Q 検索バーのサイズに戻す機能です。
qBar.closeQPopover();
詳細については、「Amazon Quick Sight 埋め込み SDK