기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
대상 사용자: Amazon QuickSight 개발자 |
다음 섹션에서는 익명(등록되지 않은) 사용자를 위해 임베디드 생성형 Q&A 환경을 설정하는 방법에 대한 자세한 정보를 확인할 수 있습니다.
1단계: 권한 설정
다음 섹션에서는 생성형 Q&A 환경을 임베드할 백엔드 애플리케이션 또는 웹 서버의 권한을 설정하는 방법을 알아볼 수 있습니다. 이 작업을 수행하려면 AWS Identity and Access Management (IAM)에 대한 관리 액세스 권한이 필요합니다.
생성형 Q&A 환경에 액세스하는 각 사용자는 Amazon QuickSight 액세스 및 권한을 부여하는 역할을 맡았다고 가정합니다. 이렇게 하려면 AWS 계정에서 IAM 역할을 생성합니다. IAM 정책을 역할과 연결하여 역할을 수행하는 사용자에게 권한을 제공합니다. IAM 역할은 특정 사용자 풀의 임베딩 URL을 검색할 수 있는 권한을 제공해야 합니다.
와일드카드 문자 *를 사용하여, 특정 네임스페이스의 모든 사용자에 대해 URL을 생성할 권한을 부여할 수 있습니다. 또는 특정 네임스페이스에 있는 사용자 하위 집합에 대해 URL을 생성할 권한을 부여할 수 있습니다. 이를 위해 quicksight:GenerateEmbedUrlForAnonymousUser
을(를) 추가합니다.
IAM 정책에 개발자가 GenerateEmbedUrlForAnonymousUser
API 작업의 AllowedDomains
파라미터에 나열할 수 있는 도메인을 제한하는 조건을 만들 수 있습니다. AllowedDomains
파라미터는 선택 파라미터입니다. 개발자에게 QuickSight 관리 메뉴에 구성된 정적 도메인을 재정의하고 대신 생성된 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 자격 증명에 신뢰 정책이 연결되어 있어야 합니다. 즉, 사용자가 애플리케이션에 액세스하면 애플리케이션이 사용자를 대신하여 역할을 맡아서 생성형 Q&A 환경을 로드할 수 있습니다. 다음 예제는 샘플 신뢰 정책입니다.
{
"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 생성
다음 단원에서는 사용자를 인증하고 애플리케이션 서버에서 임베딩 가능한 Q 주제 URL을 가져오는 방법을 알아볼 수 있습니다.
사용자가 앱에 액세스할 때, 앱은 사용자를 대신하여 IAM 역할을 맡습니다. 그런 다음 사용자가 아직 없는 경우, 사용자를 QuickSight에 추가해야 합니다. 다음으로 식별자를 고유한 역할 세션 ID로 전달합니다.
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.AnonymousUserGenerativeQnAEmbeddingConfiguration;
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 EXPERIENCE PREPOPULATES INITIALLY
final String namespace, // ANONYMOUS EMBEDDING REQUIRES SPECIFYING A VALID NAMESPACE FOR WHICH YOU WANT THE EMBEDDING URL
final List<String> authorizedResourceArns, // Q 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();
AnonymousUserGenerativeQnAEmbeddingConfiguration generativeQnAConfiguration = new AnonymousUserGenerativeQnAEmbeddingConfiguration();
generativeQnAConfiguration.setInitialTopicId(initialTopicId);
experienceConfiguration.setGenerativeQnA(generativeQnAConfiguration);
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 result = quickSightClient.generateEmbedUrlForAnonymousUser(generateEmbedUrlForAnonymousUserRequest);
return result.getEmbedUrl();
}
}
참고
임베드 URL 생성 API는 브라우저에서 직접 호출할 수 없습니다. 대신 Node.JS 예제를 참조하세요.
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
# topicId: Topic ID to embed
# quicksightNamespace: VALID NAMESPACE WHERE YOU WANT TO DO NOAUTH EMBEDDING
# authorizedResourceArns: TOPIC ARN LIST TO EMBED
# allowedDomains: RUNTIME ALLOWED DOMAINS FOR EMBEDDING
# sessionTags: SESSION TAGS USED FOR ROW-LEVEL SECURITY
def generateEmbedUrlForAnonymousUser(accountId, quicksightNamespace, authorizedResourceArns, allowedDomains, sessionTags):
try:
response = quicksightClient.generate_embed_url_for_anonymous_user(
AwsAccountId = accountId,
Namespace = quicksightNamespace,
AuthorizedResourceArns = authorizedResourceArns,
AllowedDomains = allowedDomains,
ExperienceConfiguration = {
'GenerativeQnA': {
'InitialTopicId': topicId
}
},
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({
region: 'us-east-1',
});
quicksightClient.generateEmbedUrlForAnonymousUser({
'AwsAccountId': '111122223333',
'Namespace': 'DEFAULT'
'AuthorizedResourceArns': '["topic-arn-topicId1","topic-arn-topicId2"]',
'AllowedDomains': allowedDomains,
'ExperienceConfiguration': {
'GenerativeQnA': {
'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);
});
다음 예제는 앱 서버에서 임베디드 Q 검색 창에 대한 URL를 생성하는데 사용할 수 있는 .NET/C# 코드를 보여줍니다. 웹 사이트 또는 앱에서 이 URL을 사용하여 Q 검색 창을 표시할 수 있습니다.
using System;
using Amazon.QuickSight;
using Amazon.QuickSight.Model;
namespace GenerateGenerativeQnAEmbedUrlForAnonymousUser
{
class Program
{
static void Main(string[] args)
{
var quicksightClient = new AmazonQuickSightClient(
AccessKey,
SecretAccessKey,
SessionToken,
Amazon.RegionEndpoint.USEast1);
try
{
AnonymousUserGenerativeQnAEmbeddingConfiguration anonymousUserGenerativeQnAEmbeddingConfiguration
= new AnonymousUserGenerativeQnAEmbeddingConfiguration
{
InitialTopicId = "U4zJMVZ2n2stZflc8Ou3iKySEb3BEV6f"
};
AnonymousUserEmbeddingExperienceConfiguration anonymousUserEmbeddingExperienceConfiguration
= new AnonymousUserEmbeddingExperienceConfiguration
{
GenerativeQnA = anonymousUserGenerativeQnAEmbeddingConfiguration
};
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 - IAM 자격 증명을 사용하여 역할을 수임하는 경우 사용합니다.
-
AssumeRoleWithWebIdentity - 웹 ID 공급자를 사용하여 사용자를 인증하는 경우 이 작업을 사용하세요.
-
AssumeRoleWithSaml - SAML을 사용하여 사용자를 인증할 때 이 작업을 사용하세요.
다음 예에서는 IAM 역할을 설정하는 CLI 명령을 보여줍니다. 역할은 quicksight:GenerateEmbedUrlForAnonymousUser
에 대한 권한이 활성화되어 있어야 합니다.
aws sts assume-role \ --role-arn "
arn:aws:iam::111122223333:role/embedding_quicksight_generative_qna_role
" \ --role-session-nameanonymous caller
assume-role
작업은 액세스 키, 보안 키 및 세션 토큰의 세 가지 출력 파라미터를 반환합니다.
참고
AssumeRole
작업을 호출할 때 ExpiredToken
오류가 발생할 경우, 이는 아마도 이전의 SESSION TOKEN
이(가) 환경 변수에 남아 있기 때문입니다. 다음 변수를 설정하여 이를 삭제합니다.
-
AWS_ACCESS_KEY_ID
-
AWS_SECRET_ACCESS_KEY
-
AWS_SESSION_TOKEN
다음 예에서는 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
\ --namespacedefault-or-something-else
\ --authorized-resource-arns '["topic-arn-topicId
","topic-arn-topicId2
"]' \ --allowed-domains '["domain1
","domain2
"]' \ --experience-configuration 'GenerativeQnA={InitialTopicId="topicId1"}
' \ --session-tags '["Key": tag-key-1,"Value": tag-value-1,{"Key": tag-key-1,"Value": tag-value-1}]
' \ --session-lifetime-in-minutes15
이 작업의 사용에 대한 자세한 내용은 GenerateEmbedUrlForAnonymousUser 단원을 참조하세요. 자체 코드에서 이 작업 및 다른 API 작업을 사용할 수 있습니다.
3단계: 생성형 Q&A 환경 URL 임베드
다음 섹션에서는 웹 사이트 또는 애플리케이션 페이지에 생성형 Q&A 환경 URL을 임베드하는 방법을 알아볼 수 있습니다. Amazon QuickSight 임베딩 SDK
-
생성형 Q&A 환경을 HTML 페이지에 배치합니다.
-
애플리케이션 요구 사항에 맞게 임베디드 환경의 레이아웃과 모양을 사용자 지정합니다.
-
애플리케이션에 사용자 지정되는 메시지로 오류 상태 처리
앱에 포함할 수 있는 URL을 생성하러면, GenerateEmbedUrlForAnonymousUser
API 작업을 직접 호출하세요. 이 URL은 5분 동안 유효하며, 결과 세션은 10시간까지 유효합니다. 이 API 작업은 URL에 single-sign on 세션을 허용하는 auth_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"
}
QuickSight 임베딩 SDK
생성형 Q&A 환경을 호스팅할 도메인이 QuickSight 구독에 승인된 도메인 목록인 허용 목록에 있는지 확인합니다. 이 요건은 미승인 도메인이 임베디드 생성형 Q&A 환경을 호스팅하지 못하도록 방지하여 데이터를 보호합니다. 임베디드 생성형 Q&A 환경의 도메인 추가에 대한 자세한 정보는 도메인 및 임베딩 관리 섹션을 참조하세요.
QuickSight 임베딩 SDK를 사용하여 애플리케이션에 맞게 임베디드 생성형 Q&A 환경의 레이아웃과 모양을 사용자 지정할 수 있습니다. panelType
속성을 사용하여 애플리케이션에서 렌더링할 때 생성형 Q&A 환경의 랜딩 상태를 구성합니다. panelType
속성을 'FULL'
로 설정하여 전체 생성형 Q&A 환경 패널을 렌더링합니다. 이 패널은 QuickSight 사용자가 콘솔에서 경험하는 환경과 유사합니다. 패널의 프레임 높이는 사용자 상호 작용에 따라 변경되지 않으며 frameOptions.height
속성에서 설정한 값을 존중합니다. 아래 이미지에서는 panelType
값을 'FULL'
로 설정할 때 렌더링하는 생성형 Q&A 환경 패널을 보여줍니다.

panelType
속성을 'SEARCH_BAR'
로 설정하여 생성형 Q&A 환경 패널을 검색 표시줄로 렌더링합니다. 이 검색 표시줄은 Q Search Bar가 애플리케이션에 임베드될 때 렌더링하는 방식과 유사합니다. 생성형 Q&A 검색 표시줄은 주제 선택 옵션, 질문 제안 목록, 응답 패널 또는 핀보드를 표시하는 더 큰 패널로 확장됩니다.
기본 생성형 Q&A 검색 표시줄의 기본 최소 높이는 임베디드 자산이 로드될 때 렌더링됩니다. 검색 표시줄 환경을 최적화하려면 frameOptions.height
값을 "38px"
로 설정하는 것이 좋습니다. focusedHeight
속성을 사용하여 주제 선택 드롭다운 및 질문 제안 목록의 최적 크기를 설정합니다. expandedHeight
속성을 사용하여 답변 패널과 핀보드의 최적 크기를 설정합니다. 'SEARCH_BAR'
옵션을 선택하는 경우 애플리케이션에서 원치 않는 콘텐츠 이동을 방지하기 위해 상위 컨테이너를 절대 위치로 스타일링하는 것이 좋습니다. 아래 이미지에서는 panelType
값을 'SEARCH_BAR'
로 설정할 때 렌더링하는 생성형 Q&A 환경 검색 표시줄을 보여줍니다.

panelType
속성을 구성한 후 QuickSight 임베딩 SDK를 사용하여 생성형 Q&A 환경의 다음 속성을 사용자 지정합니다.
-
생성형 Q&A 패널의 제목(
panelType: FULL
옵션에만 적용됨)입니다. -
검색 표시줄의 자리 표시자 텍스트입니다.
-
주제 선택을 허용할지 여부입니다.
-
주제 이름을 표시할지 숨길지 여부입니다.
-
Amazon Q 아이콘을 표시할지 숨길지 여부입니다(
panelType: FULL
옵션에만 적용됨). -
핀보드를 숨길지 여부입니다.
-
사용자가 생성형 Q&A 패널을 전체 화면으로 최대화할 수 있는지 여부입니다.
-
생성형 Q&A 패널의 테마입니다. 사용자 지정 테마 ARN을 SDK에 전달하여 프레임 콘텐츠의 모양을 변경할 수 있습니다. QuickSight 시작 테마는 임베디드 생성형 BI 패널에서는 지원되지 않습니다. QuickSight 시작 테마를 사용하려면 QuickSight에 사용자 지정 테마로 저장합니다.
QuickSight 임베딩 SDK를 사용하면 페이지에 있는 생성형 Q&A 환경의 크기가 상태에 따라 동적으로 조정됩니다. QuickSight 임베딩 SDK를 사용하여 생성형 Q&A 환경 내에서 파라미터를 제어하고 페이지 로드 완료, 상태 변경 및 오류로 콜백을 수신할 수도 있습니다.
다음 예제는 생성된 URL을 사용하는 방법을 보여 줍니다. 이 코드는 앱 서버에서 생성됩니다.
<!DOCTYPE html>
<html>
<head>
<title>Generative Q&A Embedding Example</title>
<script src="https://unpkg.com/amazon-quicksight-embedding-sdk@2.7.0/dist/quicksight-embedding-js-sdk.min.js"></script>
<script type="text/javascript">
const embedGenerativeQnA = 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 = {
// Optional panel settings. Default behavior is equivalent to {panelType: 'FULL'}
panelOptions: {
panelType: 'FULL',
title: 'custom title', // Optional
showQIcon: false, // Optional, Default: true
},
// Use SEARCH_BAR panel type for the landing state to be similar to embedQSearchBar
// with generative capability enabled topics
/*
panelOptions: {
panelType: 'SEARCH_BAR',
focusedHeight: '250px',
expandedHeight: '500px',
},
*/
showTopicName: false, // Optional, Default: true
showPinboard: false, // Optional, Default: true
allowTopicSelection: false, // Optional, Default: true
allowFullscreen: false, // Optional, Default: true
searchPlaceholderText: "custom search placeholder", // Optional
themeOptions: { // Optional
themeArn: 'arn:aws:quicksight:<Region>:<AWS-Account-ID>:theme/<Theme-ID>'
}
onMessage: async (messageEvent, experienceMetadata) => {
switch (messageEvent.eventName) {
case 'Q_SEARCH_OPENED': {
// called when pinboard is shown / visuals are rendered
console.log("Do something when SEARCH_BAR type panel is expanded");
break;
}
case 'Q_SEARCH_FOCUSED': {
// called when question suggestions or topic selection dropdown are shown
console.log("Do something when SEARCH_BAR type panel is focused");
break;
}
case 'Q_SEARCH_CLOSED': {
// called when shrinked to initial bar height
console.log("Do something when SEARCH_BAR type panel is collapsed");
break;
}
case 'Q_PANEL_ENTERED_FULLSCREEN': {
console.log("Do something when panel enters full screen mode");
break;
}
case 'Q_PANEL_EXITED_FULLSCREEN': {
console.log("Do something when panel exits full screen mode");
break;
}
case 'CONTENT_LOADED': {
console.log("Do something after experience is loaded");
break;
}
case 'ERROR_OCCURRED': {
console.log("Do something when experience fails to load");
break;
}
}
}
};
const embeddedGenerativeQnExperience = await embeddingContext.embedGenerativeQnA(frameOptions, contentOptions);
};
</script>
</head>
<body onload="embedGenerativeQnA()">
<div id="experience-container"></div>
</body>
</html>
이 예제가 제대로 작동하려면 Amazon QuickSight 임베딩 SDK를 사용하여 JavaScript로 웹 사이트에 임베디드 생성형 Q&A 환경을 로드해야 합니다. 이 정보를 얻으려면 다음 중 하나를 수행합니다.
-
GitHub에서 Amazon QuickSight 임베딩 SDK
를 다운로드하세요. 이 리포지토리는 QuickSight 개발자 그룹이 관리합니다. -
https://www.npmjs.com/package/amazon-quicksight-embedding-sdk
에서 최신 임베딩 SDK 버전을 다운로드하세요. -
JavaScript 종속성에
npm
을(를) 사용하는 경우 다음 명령을 실행하여 다운로드하고 설치합니다.npm install amazon-quicksight-embedding-sdk
임베디드 생성형 Q&A 환경 기능 옵션
임베딩 SDK를 사용하여 임베디드 생성형 Q&A 환경에 기능 옵션을 사용할 수 있습니다.
생성형 Q&A 검색 표시줄 작업 호출
-
질문 설정 - 이 기능은 생성형 Q&A 환경에 질문을 전송하고 즉시 질문을 쿼리합니다.
embeddedGenerativeQnExperience.setQuestion('
show me monthly revenue
'); -
응답 패널 닫기(생성형 Q&A 검색 표시줄 옵션에 적용) - 이 기능은 응답 패널을 닫고 iframe을 원래 검색 표시줄 상태로 되돌립니다.
embeddedGenerativeQnExperience.close();
자세한 정보는 QuickSight 임베딩 SDK