Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Berlaku untuk: Enterprise Edition |
Pemirsa yang dituju: QuickSight Pengembang Amazon |
catatan
Bilah pencarian QuickSight Q yang disematkan memberikan pengalaman QuickSight tanya jawab klasik. QuickSight terintegrasi dengan Amazon Q Business untuk meluncurkan pengalaman Tanya Jawab Generatif baru. Pengembang disarankan untuk menggunakan pengalaman Tanya Jawab Generatif yang baru. Untuk informasi lebih lanjut tentang pengalaman Tanya Jawab Generatif yang disematkan, lihat. Menyematkan Amazon Q dalam pengalaman Tanya QuickSight Jawab Generatif
Di bagian berikut, Anda dapat menemukan informasi terperinci tentang cara menyiapkan bilah pencarian Amazon QuickSight Q yang disematkan untuk pengguna terdaftar QuickSight.
Topik
Langkah 1: Siapkan izin
catatan
Bilah pencarian QuickSight Q yang disematkan memberikan pengalaman QuickSight tanya jawab klasik. QuickSight terintegrasi dengan Amazon Q Business untuk meluncurkan pengalaman Tanya Jawab Generatif baru. Pengembang disarankan untuk menggunakan pengalaman Tanya Jawab Generatif yang baru. Untuk informasi lebih lanjut tentang pengalaman Tanya Jawab Generatif yang disematkan, lihat. Menyematkan Amazon Q dalam pengalaman Tanya QuickSight Jawab Generatif
Di bagian berikut, Anda dapat menemukan cara mengatur izin untuk aplikasi backend atau server web Anda untuk menyematkan bilah pencarian Q. Tugas ini membutuhkan akses administratif ke AWS Identity and Access Management (IAM).
Setiap pengguna yang mengakses dasbor mengambil peran yang memberi mereka QuickSight akses Amazon dan izin ke dasbor. Untuk memungkinkan ini, buat IAM peran dalam Anda Akun AWS. Kaitkan IAM kebijakan dengan peran untuk memberikan izin kepada pengguna mana pun yang mengasumsikannya. IAMPeran tersebut perlu memberikan izin untuk mengambil penyematan URLs untuk kumpulan pengguna tertentu.
Dengan bantuan karakter wildcard*, Anda dapat memberikan izin untuk menghasilkan URL untuk semua pengguna di namespace tertentu. Atau Anda dapat memberikan izin untuk menghasilkan subset pengguna di ruang nama tertentu. URL Untuk ini, Anda menambahkanquicksight:GenerateEmbedUrlForRegisteredUser
.
Anda dapat membuat kondisi dalam IAM kebijakan Anda yang membatasi domain yang dapat dicantumkan pengembang dalam AllowedDomains
parameter GenerateEmbedUrlForRegisteredUser
API operasi. AllowedDomains
Parameter adalah parameter opsional. Ini memberi pengembang opsi untuk mengganti domain statis yang dikonfigurasi di QuickSight menu Kelola dan sebagai gantinya mencantumkan hingga tiga domain atau subdomain yang dapat mengakses yang dihasilkan. URL URLIni kemudian disematkan di situs web pengembang. Hanya domain yang tercantum dalam parameter yang dapat mengakses bilah pencarian Q yang disematkan. Tanpa kondisi ini, pengembang dapat mencantumkan domain apa pun di internet dalam AllowedDomains
parameter.
Untuk membatasi domain yang dapat digunakan developer dengan parameter ini, tambahkan AllowedEmbeddingDomains
kondisi ke IAM kebijakan Anda. Untuk informasi selengkapnya tentang AllowedDomains
parameter, lihat GenerateEmbedUrlForRegisteredUserdi QuickSight APIReferensi Amazon.
Kebijakan contoh berikut memberikan izin ini.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "quicksight:GenerateEmbedUrlForRegisteredUser" ], "Resource": "arn:
partition
:quicksight:region
:accountId
:user/namespace
/userName
", "Condition": { "ForAllValues:StringEquals": { "quicksight:AllowedEmbeddingDomains": [ "https://my.static.domain1.com", "https://*.my.static.domain2.com" ] } } } ] }
Selain itu, jika Anda membuat pengguna pertama kali yang akan menjadi QuickSight pembaca Amazon, pastikan untuk menambahkan quicksight:RegisterUser
izin dalam kebijakan.
Kebijakan contoh berikut memberikan izin untuk mengambil penyematan URL bagi pengguna pertama kali yang akan menjadi pembaca. QuickSight
{ "Version": "2012-10-17", "Statement": [ { "Action": "quicksight:RegisterUser", "Resource": "*", "Effect": "Allow" }, { "Effect": "Allow", "Action": [ "quicksight:GenerateEmbedUrlForRegisteredUser" ], "Resource": [ "arn:
partition
:quicksight:region
:accountId
:user/namespace
/userName
" ], "Condition": { "ForAllValues:StringEquals": { "quicksight:AllowedEmbeddingDomains": [ "https://my.static.domain1.com", "https://*.my.static.domain2.com" ] } } } ] }
Terakhir, IAM identitas aplikasi Anda harus memiliki kebijakan kepercayaan yang terkait dengannya untuk memungkinkan akses ke peran yang baru saja Anda buat. Ini berarti bahwa ketika pengguna mengakses aplikasi Anda, aplikasi Anda dapat mengambil peran atas nama pengguna dan menyediakan pengguna. QuickSight
Contoh berikut menunjukkan contoh kebijakan kepercayaan.
{
"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"
}
]
}
Untuk informasi selengkapnya mengenai kebijakan kepercayaan untuk otentikasi OpenID Connect atau Security Assertion Markup Language (SAML), lihat bagian Panduan Pengguna berikut: IAM
Langkah 2: Hasilkan URL dengan kode otentikasi terlampir
catatan
Bilah pencarian QuickSight Q yang disematkan memberikan pengalaman QuickSight tanya jawab klasik. QuickSight terintegrasi dengan Amazon Q Business untuk meluncurkan pengalaman Tanya Jawab Generatif baru. Pengembang disarankan untuk menggunakan pengalaman Tanya Jawab Generatif yang baru. Untuk informasi lebih lanjut tentang pengalaman Tanya Jawab Generatif yang disematkan, lihat. Menyematkan Amazon Q dalam pengalaman Tanya QuickSight Jawab Generatif
Di bagian berikut, Anda dapat menemukan cara mengautentikasi pengguna Anda dan mendapatkan topik Q yang dapat disematkan URL di server aplikasi Anda. Jika Anda berencana untuk menyematkan Q bar untuk IAM atau jenis QuickSight identitas Amazon, bagikan topik Q dengan pengguna.
Saat pengguna mengakses aplikasi Anda, aplikasi akan mengambil IAM peran tersebut atas nama pengguna. Kemudian aplikasi menambahkan pengguna ke QuickSight, jika pengguna itu belum ada. Selanjutnya, ia melewati pengenal sebagai ID sesi peran unik.
Melakukan langkah-langkah yang dijelaskan memastikan bahwa setiap pemirsa topik Q disediakan secara unik. QuickSight Ini juga memberlakukan pengaturan per pengguna, seperti keamanan tingkat baris dan default dinamis untuk parameter.
Contoh berikut melakukan IAM otentikasi atas nama pengguna. Kode ini berjalan di server aplikasi Anda.
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)
Contoh berikut menunjukkan JavaScript (Node.js) yang dapat Anda gunakan di server aplikasi untuk menghasilkan dasbor yang URL disematkan. Anda dapat menggunakan ini URL di situs web atau aplikasi Anda untuk menampilkan dasbor.
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'
}
Contoh berikut menunjukkan. NET/C # kode yang dapat Anda gunakan di server aplikasi untuk menghasilkan bilah pencarian Q yang disematkan. URL Anda dapat menggunakan ini URL di situs web atau aplikasi Anda untuk menampilkan bilah pencarian 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);
}
}
}
}
Untuk mengambil peran, pilih salah satu API operasi AWS Security Token Service (AWS STS) berikut:
-
AssumeRole— Gunakan operasi ini ketika Anda menggunakan IAM identitas untuk mengambil peran.
-
AssumeRoleWithWebIdentity— Gunakan operasi ini ketika Anda menggunakan penyedia identitas web untuk mengautentikasi pengguna Anda.
-
AssumeRoleWithSaml— Gunakan operasi ini saat Anda menggunakan SAML untuk mengautentikasi pengguna Anda.
Contoh berikut menunjukkan CLI perintah untuk mengatur IAM peran. Peran harus mengaktifkan izin untukquicksight:GenerateEmbedUrlForRegisteredUser
. Jika Anda mengambil just-in-time pendekatan untuk menambahkan pengguna saat mereka menggunakan topik di bilah pencarian Q, peran tersebut juga memerlukan izin yang diaktifkan. 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
Operasi mengembalikan tiga parameter output: kunci akses, kunci rahasia, dan token sesi.
catatan
Jika Anda mendapatkan ExpiredToken
kesalahan saat memanggil AssumeRole
operasi, ini mungkin karena sebelumnya SESSION TOKEN
masih dalam variabel lingkungan. Hapus ini dengan mengatur variabel berikut:
-
AWS_ACCESS_ KEY _ID
-
AWS_SECRET_ACCESS_KEY
-
AWS_SESSION_TOKEN
Contoh berikut menunjukkan cara mengatur ketiga parameter ini diCLI. Untuk mesin Microsoft Windows, gunakan set
sebagai penggantiexport
.
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
"
Menjalankan perintah ini akan menetapkan ID sesi peran pengguna yang mengunjungi situs web Andaembedding_quicksight_q_search_bar_role/john.doe@example.com
. ID sesi peran terdiri dari nama peran dari role-arn
dan role-session-name
nilainya. Menggunakan ID sesi peran unik untuk setiap pengguna memastikan bahwa izin yang sesuai ditetapkan untuk setiap pengguna. Ini juga mencegah pembatasan akses pengguna. Throttling adalah fitur keamanan yang mencegah pengguna yang sama mengakses QuickSight dari beberapa lokasi.
ID sesi peran juga menjadi nama pengguna di QuickSight. Anda dapat menggunakan pola ini untuk menyediakan pengguna Anda QuickSight sebelumnya, atau untuk menyediakannya saat pertama kali mereka mengakses bilah pencarian Q.
Contoh berikut menunjukkan CLI perintah yang dapat Anda gunakan untuk menyediakan pengguna. Untuk informasi selengkapnya tentang RegisterUserDescribeUser,, dan QuickSight API operasi lainnya, lihat QuickSight APIreferensi.
aws quicksight register-user \ --aws-account-id
111122223333
\ --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
Jika pengguna diautentikasi melalui Microsoft AD, Anda tidak perlu menggunakannya RegisterUser
untuk mengaturnya. Sebaliknya, mereka harus secara otomatis berlangganan saat pertama kali mereka mengakses QuickSight. Untuk pengguna Microsoft AD, Anda dapat menggunakan DescribeUser
untuk mendapatkan pengguna Amazon Resource Name (ARN).
Saat pertama kali pengguna mengakses QuickSight, Anda juga dapat menambahkan pengguna ini ke grup tempat dasbor dibagikan. Contoh berikut menunjukkan CLI perintah untuk menambahkan pengguna ke grup.
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
"
Anda sekarang memiliki pengguna aplikasi Anda yang juga pengguna QuickSight, dan yang memiliki akses ke dasbor.
Terakhir, untuk mendapatkan tanda tangan URL untuk dasbor, panggil generate-embed-url-for-registered-user
dari server aplikasi. Ini mengembalikan dasbor yang dapat disematkan. URL Contoh berikut menunjukkan cara membuat dasbor tertanam menggunakan panggilan sisi server URL untuk pengguna yang diautentikasi melalui AWS Managed Microsoft AD atau sistem masuk tunggal (Pusat Identitas). IAM
aws quicksight generate-embed-url-for-registered-user \ --aws-account-id
111122223333
\ --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
}
Untuk informasi selengkapnya tentang penggunaan operasi ini, lihat GenerateEmbedUrlForRegisteredUser. Anda dapat menggunakan ini dan API operasi lainnya dalam kode Anda sendiri.
Langkah 3: Sematkan bilah pencarian Q URL
catatan
Bilah pencarian QuickSight Q yang disematkan memberikan pengalaman QuickSight tanya jawab klasik. QuickSight terintegrasi dengan Amazon Q Business untuk meluncurkan pengalaman Tanya Jawab Generatif baru. Pengembang disarankan untuk menggunakan pengalaman Tanya Jawab Generatif yang baru. Untuk informasi lebih lanjut tentang pengalaman Tanya Jawab Generatif yang disematkan, lihat. Menyematkan Amazon Q dalam pengalaman Tanya QuickSight Jawab Generatif
Di bagian berikut, Anda dapat menemukan cara menyematkan bilah pencarian Q URL dari langkah 3 di situs web atau halaman aplikasi Anda. Anda melakukan ini dengan Amazon QuickSight embedding SDK
-
Tempatkan bilah pencarian Q pada HTML halaman.
-
Masukkan parameter ke bilah pencarian Q.
-
Menangani status kesalahan dengan pesan yang disesuaikan dengan aplikasi Anda.
Untuk menghasilkan URL yang dapat Anda sematkan di aplikasi Anda, hubungi GenerateEmbedUrlForRegisteredUser
API operasi. URLIni berlaku selama 5 menit, dan sesi yang dihasilkan berlaku hingga 10 jam. APIOperasi ini memberikan auth_code
nilai yang memungkinkan sesi tanda tunggal. URL
Berikut ini menunjukkan contoh respons darigenerate-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" }
Sematkan bilah pencarian Q di halaman web Anda dengan menggunakan QuickSightpenyematan SDK
Untuk melakukan ini, pastikan bahwa domain untuk meng-host bilah pencarian Q yang disematkan ada di daftar izinkan, daftar domain yang disetujui untuk QuickSight langganan Anda. Persyaratan ini melindungi data Anda dengan menjaga domain yang tidak disetujui dari hosting dasbor tertanam. Untuk informasi selengkapnya tentang menambahkan domain untuk bilah pencarian Q yang disematkan, lihatMengelola domain dan menyematkan.
Saat Anda menggunakan QuickSight EmbeddingSDK, bilah pencarian Q di halaman Anda diubah ukurannya secara dinamis berdasarkan status. Dengan menggunakan QuickSight EmbeddingSDK, Anda juga dapat mengontrol parameter dalam bilah pencarian Q dan menerima panggilan balik dalam hal penyelesaian dan kesalahan pemuatan halaman.
Contoh berikut menunjukkan bagaimana menggunakan yang dihasilkanURL. Kode ini dibuat di server aplikasi Anda.
<!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>
Agar contoh ini berfungsi, pastikan untuk menggunakan Amazon QuickSight Embedding SDK untuk memuat dasbor yang disematkan di situs web Anda menggunakan JavaScript. Untuk mendapatkan salinan Anda, lakukan salah satu hal berikut:
-
Unduh QuickSight penyematan Amazon SDK
dari GitHub. Repositori ini dikelola oleh sekelompok pengembang. QuickSight -
Unduh versi penyematan SDK terbaru dari https://www.npmjs.com/package/amazon-quicksight-embedding-sdk
. -
Jika Anda menggunakan
npm
untuk JavaScript dependensi, unduh dan instal dengan menjalankan perintah berikut.npm install amazon-quicksight-embedding-sdk
Fungsionalitas penyematan bilah pencarian Amazon QuickSight Q opsional
catatan
Bilah pencarian QuickSight Q yang disematkan memberikan pengalaman QuickSight tanya jawab klasik. QuickSight terintegrasi dengan Amazon Q Business untuk meluncurkan pengalaman Tanya Jawab Generatif baru. Pengembang disarankan untuk menggunakan pengalaman Tanya Jawab Generatif yang baru. Untuk informasi lebih lanjut tentang pengalaman Tanya Jawab Generatif yang disematkan, lihat. Menyematkan Amazon Q dalam pengalaman Tanya QuickSight Jawab Generatif
Fungsionalitas opsional berikut tersedia untuk bilah pencarian Q yang disematkan menggunakan SDK penyematan.
Memanggil tindakan bilah pencarian Q
Opsi berikut hanya didukung untuk penyematan bilah pencarian Q.
-
Tetapkan pertanyaan bilah pencarian Q - Fitur ini mengirimkan pertanyaan ke bilah pencarian Q dan segera menanyakan pertanyaan. Ini juga secara otomatis membuka popover Q.
qBar.setQBarQuestion('
show me monthly revenue
'); -
Tutup popover Q - Fitur ini menutup popover Q dan mengembalikan iframe ke ukuran bar pencarian Q asli.
qBar.closeQPopover();
Untuk informasi selengkapnya, lihat QuickSight penyematan. SDK