3단계: Q 검색 창 URL 포함 - 아마존 QuickSight

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

3단계: Q 검색 창 URL 포함

참고

내장된 QuickSight Q 검색창은 클래식한 QuickSight Q&A 경험을 제공합니다. QuickSight Amazon Q Business와 통합하여 새로운 제너레이티브 Q&A 환경을 시작합니다. 개발자는 새로운 제너레이티브 Q&A 환경을 사용하는 것이 좋습니다. 내장된 제너레이티브 Q&A 환경에 대한 자세한 내용은 을 참조하십시오. Amazon Q를 QuickSight 제너레이티브 Q&A 경험에 포함시키세요

다음 섹션에서는 3단계의 Q 검색 창 URL을 웹사이트 또는 애플리케이션 페이지에 포함하는 방법을 알아볼 수 있습니다. Amazon QuickSight 임베딩 SDK () JavaScript 를 사용하여 이 작업을 수행할 수 있습니다. SDK를 사용하여 다음 작업을 수행할 수 있습니다.

  • Q 검색 창을 HTML 페이지에 배치하세요.

  • Q 검색창에 파라미터를 전달합니다.

  • 애플리케이션에 사용자 지정되는 메시지로 오류 상태 처리

앱에 포함할 수 있는 URL을 생성하러면, GenerateEmbedUrlForRegisteredUser API 작업을 직접 호출하세요. 이 URL은 5분 동안 유효하며, 결과 세션은 10시간까지 유효합니다. 이 API 작업은 URL에 single-sign on 세션을 허용하는 auth_code 값을 제공합니다.

다음은 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" }

QuickSight임베딩 SDK를 사용하거나 이 URL을 iframe에 추가하여 Q 검색 창을 웹페이지에 삽입하십시오. 고정된 높이와 너비 숫자 (픽셀 단위) 를 설정하면 이 숫자를 QuickSight 사용하며 창 크기가 조정되어도 시각적 효과가 변경되지 않습니다. 높이와 너비를 상대적인 백분율로 설정하면 창 크기가 변경됨에 따라 수정되는 반응형 레이아웃을 QuickSight 제공합니다.

이렇게 하려면 내장된 Q 검색 창을 호스팅할 도메인이 QuickSight 구독이 승인된 도메인 목록인 허용 목록에 있는지 확인하세요. 이 요건은 임베디드 대시보드에서 미승인 도메인을 제외함으로써 데이터를 보호합니다. 임베디드 Q 검색 창의 도메인 추가에 대한 자세한 내용은 도메인 및 임베딩 관리 단원을 참조하세요.

QuickSight Embedding SDK를 사용하면 페이지에 있는 Q 검색 막대의 크기가 상태에 따라 동적으로 조정됩니다. QuickSight Embedding SDK를 사용하면 Q 검색창 내의 매개변수를 제어하고 페이지 로드 완료 및 오류와 관련된 콜백을 받을 수도 있습니다.

다음 예제는 생성된 URL을 사용하는 방법을 보여 줍니다. 이 코드는 앱 서버에서 생성됩니다.

SDK 2.0
<!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>
SDK 1.0
<!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를 사용하여 웹 사이트에 내장된 대시보드를 로드해야 합니다. JavaScript 이 정보를 얻으려면 다음 중 하나를 수행합니다.