Menyematkan dasbor Amazon Quick Sight untuk pengguna terdaftar - Amazon Quick Suite

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyematkan dasbor Amazon Quick Sight untuk pengguna terdaftar

penting

Amazon Quick Sight memiliki operasi API baru untuk menyematkan analitik: GenerateEmbedUrlForAnonymousUser danGenerateEmbedUrlForRegisteredUser.

Anda masih dapat menggunakan operasi GetSessionEmbedUrl API GetDashboardEmbedUrl dan untuk menyematkan dasbor dan konsol Amazon Quick Sight, tetapi tidak berisi kemampuan penyematan terbaru. Untuk informasi selengkapnya tentang penyematan menggunakan operasi API lama, lihat Menyematkan analitik menggunakan operasi GetDashboardEmbedURL dan GetSessionEmbedURL API.

 Berlaku untuk: Enterprise Edition 
   Pemirsa yang dituju: Pengembang Amazon Quick Suite 

Di bagian berikut, Anda dapat menemukan informasi terperinci tentang cara mengatur dasbor Amazon Quick Sight yang disematkan untuk pengguna terdaftar Amazon Quick Sight.

Langkah 1: Siapkan izin

Di bagian berikut, Anda dapat mengetahui cara mengatur izin untuk aplikasi backend atau server web. Tugas ini membutuhkan akses administratif ke IAM.

Setiap pengguna yang mengakses dasbor mengambil peran yang memberi mereka akses dan izin Amazon Quick Sight ke dasbor. Untuk memungkinkan ini, buat peran IAM di Anda Akun AWS. Kaitkan kebijakan IAM dengan peran untuk memberikan izin kepada pengguna mana pun yang mengasumsikannya. Peran IAM perlu memberikan izin untuk mengambil penyematan untuk kumpulan pengguna URLs tertentu. Dengan bantuan karakter wildcard*, Anda dapat memberikan izin untuk menghasilkan URL untuk semua pengguna di namespace tertentu, atau untuk subset pengguna di ruang nama tertentu. Untuk ini, Anda menambahkanquicksight:GenerateEmbedUrlForRegisteredUser.

Anda dapat membuat kondisi dalam kebijakan IAM yang membatasi domain yang dapat dicantumkan developer dalam AllowedDomains parameter operasi GenerateEmbedUrlForRegisteredUser API. AllowedDomainsParameter adalah parameter opsional. Ini memberi Anda sebagai pengembang opsi untuk mengganti domain statis yang dikonfigurasi di menu Kelola Penglihatan Cepat Amazon. Sebagai gantinya, Anda dapat mencantumkan hingga tiga domain atau subdomain yang dapat mengakses URL yang dihasilkan. URL ini kemudian disematkan di situs web yang Anda buat. Hanya domain yang tercantum dalam parameter yang dapat mengakses visual yang disematkan. Tanpa kondisi ini, Anda dapat membuat daftar domain apa pun di internet dalam AllowedDomains parameter.

Untuk membatasi domain yang dapat digunakan pengembang dengan parameter ini, tambahkan AllowedEmbeddingDomains kondisi ke kebijakan IAM Anda. Untuk informasi selengkapnya tentang AllowedDomains parameter, lihat GenerateEmbedUrlForRegisteredUserdi Referensi API Amazon Quick Sight.

Kebijakan contoh berikut memberikan izin ini.

Selain itu, jika Anda membuat pengguna pertama kali yang akan menjadi pembaca Amazon Quick Sight, pastikan untuk menambahkan quicksight:RegisterUser izin dalam kebijakan.

Kebijakan contoh berikut memberikan izin untuk mengambil URL penyematan bagi pengguna pertama kali yang akan menjadi pembaca Amazon Quick Sight.

Terakhir, identitas IAM 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 di Amazon Quick Sight. Contoh berikut menunjukkan contoh kebijakan kepercayaan.

JSON
{ "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 OpenID Connect atau otentikasi SAM, lihat bagian berikut dari Panduan Pengguna IAM:

Langkah 2: Hasilkan URL dengan kode otentikasi terlampir

Di bagian berikut, Anda dapat mengetahui cara mengautentikasi pengguna Anda dan mendapatkan URL dasbor yang dapat disematkan di server aplikasi Anda. Jika Anda berencana untuk menyematkan dasbor untuk tipe identitas IAM atau Amazon Quick Sight, bagikan dasbor dengan pengguna.

Saat pengguna mengakses aplikasi Anda, aplikasi akan mengambil peran IAM atas nama pengguna. Kemudian menambahkan pengguna ke Amazon Quick Sight, jika pengguna itu belum ada. Selanjutnya, ia melewati pengenal sebagai ID sesi peran unik.

Melakukan langkah-langkah ini memastikan bahwa setiap penampil dasbor disediakan secara unik di Amazon Quick Sight. Ini juga memberlakukan pengaturan per pengguna, seperti keamanan tingkat baris dan default dinamis untuk parameter.

Contoh berikut melakukan otentikasi IAM 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.RegisteredUserDashboardEmbeddingConfiguration; /** * Class to call QuickSight AWS SDK to get url for dashboard embedding. */ public class GetQuicksightEmbedUrlRegisteredUserDashboardEmbedding { private final AmazonQuickSight quickSightClient; public GetQuicksightEmbedUrlRegisteredUserDashboardEmbedding() { 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 dashboardId, // Dashboard 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 out how to get user arn for a QuickSight user. ) throws Exception { final RegisteredUserEmbeddingExperienceConfiguration experienceConfiguration = new RegisteredUserEmbeddingExperienceConfiguration() .withDashboard(new RegisteredUserDashboardEmbeddingConfiguration().withInitialDashboardId(dashboardId)); final GenerateEmbedUrlForRegisteredUserRequest generateEmbedUrlForRegisteredUserRequest = new GenerateEmbedUrlForRegisteredUserRequest(); generateEmbedUrlForRegisteredUserRequest.setAwsAccountId(accountId); generateEmbedUrlForRegisteredUserRequest.setUserArn(userArn); generateEmbedUrlForRegisteredUserRequest.setAllowedDomains(allowedDomains); generateEmbedUrlForRegisteredUserRequest.setExperienceConfiguration(experienceConfiguration); final GenerateEmbedUrlForRegisteredUserResult generateEmbedUrlForRegisteredUserResult = quickSightClient.generateEmbedUrlForRegisteredUser(generateEmbedUrlForRegisteredUserRequest); return generateEmbedUrlForRegisteredUserResult.getEmbedUrl(); } }
global.fetch = require('node-fetch'); const AWS = require('aws-sdk'); function generateEmbedUrlForRegisteredUser( accountId, dashboardId, 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 getDashboardParams = { "AwsAccountId": accountId, "ExperienceConfiguration": { "Dashboard": { "InitialDashboardId": dashboardId } }, "UserArn": userArn, "AllowedDomains": allowedDomains, "SessionLifetimeInMinutes": 600 }; const quicksightClient = 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 } }); quicksightClient.generateEmbedUrlForRegisteredUser(getDashboardParams, 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 # dashboardId: Dashboard 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, dashboardId, 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 = { "Dashboard": { "InitialDashboardId": dashboardId } }, 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 URL untuk dasbor yang disematkan. Anda dapat menggunakan URL ini 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': { 'Dashboard': { 'InitialDashboardId': '1c1fe111-e2d2-3b30-44ef-a0e111111cde' } }, '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...' RequestId: '7bee030e-f191-45c4-97fe-d9faf0e03713' }

Contoh berikut menunjukkan kode.NET/C# yang dapat Anda gunakan di server aplikasi untuk membuat URL dasbor tertanam. Anda dapat menggunakan URL ini di situs web atau aplikasi Anda untuk menampilkan dasbor.

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 { RegisteredUserDashboardEmbeddingConfiguration registeredUserDashboardEmbeddingConfiguration = new RegisteredUserDashboardEmbeddingConfiguration { InitialDashboardId = "dashboardId" }; RegisteredUserEmbeddingExperienceConfiguration registeredUserEmbeddingExperienceConfiguration = new RegisteredUserEmbeddingExperienceConfiguration { Dashboard = registeredUserDashboardEmbeddingConfiguration }; 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 operasi API AWS Security Token Service (AWS STS) berikut:

  • AssumeRole— Gunakan operasi ini ketika Anda menggunakan identitas IAM untuk mengambil peran.

  • AssumeRoleWithWebIdentity— Gunakan operasi ini saat Anda menggunakan penyedia identitas web untuk mengautentikasi pengguna Anda.

  • AssumeRoleWithSaml— Gunakan operasi ini saat Anda menggunakan SALL untuk mengautentikasi pengguna Anda.

Contoh berikut menunjukkan perintah CLI untuk mengatur peran IAM. Peran harus mengaktifkan izin untukquicksight:GenerateEmbedUrlForRegisteredUser. Jika Anda mengambil just-in-time pendekatan untuk menambahkan pengguna saat mereka pertama kali membuka dasbor, peran tersebut juga memerlukan izin yang diaktifkan. quicksight:RegisterUser

aws sts assume-role \ --role-arn "arn:aws:iam::111122223333:role/embedding_quicksight_dashboard_role" \ --role-session-name john.doe@example.com

assume-roleOperasi 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 di CLI. Jika Anda menggunakan mesin Microsoft Windows, gunakan set sebagai gantinyaexport.

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_dashboard_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 Amazon Quick Sight dari beberapa lokasi.

ID sesi peran juga menjadi nama pengguna di Amazon Quick Sight. Anda dapat menggunakan pola ini untuk menyediakan pengguna Anda di Amazon Quick Sight sebelumnya, atau untuk menyediakannya saat pertama kali mereka mengakses dasbor.

Contoh berikut menunjukkan perintah CLI yang dapat Anda gunakan untuk menyediakan pengguna. Untuk informasi selengkapnya tentang RegisterUser, DescribeUser, dan operasi Amazon Quick Sight API lainnya, lihat Referensi API Amazon Quick Sight.

aws quicksight register-user \ --aws-account-id 111122223333 \ --namespace default \ --identity-type IAM \ --iam-arn "arn:aws:iam::111122223333:role/embedding_quicksight_dashboard_role" \ --user-role READER \ --user-name jhnd \ --session-name "john.doe@example.com" \ --email john.doe@example.com \ --region us-east-1 \ --custom-permissions-name TeamA1

Jika pengguna Anda diautentikasi melalui Microsoft AD, Anda tidak perlu menggunakannya RegisterUser untuk mengaturnya. Sebagai gantinya, mereka harus berlangganan secara otomatis saat pertama kali mengakses Amazon Quick Sight. Untuk pengguna Microsoft AD, Anda dapat menggunakan DescribeUser untuk mendapatkan ARN pengguna.

Saat pertama kali pengguna mengakses Amazon Quick Sight, Anda juga dapat menambahkan pengguna ini ke grup tempat dasbor dibagikan. Contoh berikut menunjukkan perintah CLI untuk menambahkan pengguna ke grup.

aws quicksight create-group-membership \ --aws-account-id=111122223333 \ --namespace=default \ --group-name=financeusers \ --member-name="embedding_quicksight_dashboard_role/john.doe@example.com"

Anda sekarang memiliki pengguna aplikasi Anda yang juga pengguna Amazon Quick Sight, dan yang memiliki akses ke dasbor.

Terakhir, untuk mendapatkan URL yang ditandatangani untuk dasbor, panggil generate-embed-url-for-registered-user dari server aplikasi. Ini mengembalikan URL dasbor yang dapat disematkan. Contoh berikut menunjukkan cara membuat URL untuk dasbor tertanam menggunakan panggilan sisi server untuk pengguna yang diautentikasi melalui AWS Managed Microsoft AD atau sistem masuk tunggal (IAM Identity Center).

aws quicksight generate-embed-url-for-registered-user \ --aws-account-id 111122223333 \ --session-lifetime-in-minutes 600 \ --user-arn arn:aws:quicksight:us-east-1:111122223333:user/default/embedding_quicksight_visual_role/embeddingsession \ --allowed-domains '["domain1","domain2"]' \ --experience-configuration Dashboard={InitialDashboardId=1a1ac2b2-3fc3-4b44-5e5d-c6db6778df89}

Untuk informasi lebih lanjut tentang penggunaan operasi ini, lihat GenerateEmbedUrlForRegisteredUser. Anda dapat menggunakan ini dan operasi API lainnya dalam kode Anda sendiri.

Langkah 3: Sematkan URL dasbor

Di bagian berikut, Anda dapat mengetahui bagaimana Anda dapat menggunakan Amazon Quick Sight Embedding SDK (JavaScript) untuk menyematkan URL dasbor dari langkah 3 di situs web atau halaman aplikasi Anda. Dengan SDK, Anda dapat melakukan hal berikut:

  • Tempatkan dasbor pada halaman HTML.

  • Masukkan parameter ke dasbor.

  • Menangani status kesalahan dengan pesan yang disesuaikan dengan aplikasi Anda.

Panggil operasi GenerateEmbedUrlForRegisteredUser API untuk menghasilkan URL yang dapat disematkan di aplikasi. URL ini berlaku selama 5 menit, dan sesi yang dihasilkan berlaku hingga 10 jam. Operasi API menyediakan URL dengan sebuah auth_code yang memungkinkan sesi masuk tunggal.

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/embed/12345/dashboards/67890..", "RequestId": "7bee030e-f191-45c4-97fe-d9faf0e03713" }

Sematkan dasbor ini di halaman web Anda dengan menggunakan Amazon Quick Sight Embedding SDK atau dengan menambahkan URL ini ke dalam iframe. Jika Anda menetapkan nomor tinggi dan lebar tetap (dalam piksel), Amazon Quick Sight menggunakannya dan tidak mengubah visual Anda saat jendela Anda berubah ukuran. Jika Anda menetapkan tinggi dan lebar persen relatif, Amazon Quick Sight menyediakan tata letak responsif yang dimodifikasi saat ukuran jendela Anda berubah. Dengan menggunakan Amazon Quick Sight Embedding SDK, Anda juga dapat mengontrol parameter dalam dasbor dan menerima panggilan balik dalam hal penyelesaian dan kesalahan pemuatan halaman.

Domain yang akan menjadi tuan rumah dasbor tertanam harus ada di daftar izinkan, daftar domain yang disetujui untuk langganan Anda Quick Suite . Persyaratan ini melindungi data Anda dengan menjaga domain yang tidak disetujui dari hosting dasbor tertanam. Untuk informasi selengkapnya tentang menambahkan domain untuk dasbor yang disematkan, lihat Mengizinkan domain daftar saat runtime dengan Amazon Quick Sight API.

Contoh berikut menunjukkan cara menggunakan URL yang dihasilkan. Kode ini dibuat di server aplikasi Anda.

<!DOCTYPE html> <html> <head> <title>Dashboard 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 embedDashboard = 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>', 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 = { parameters: [ { Name: 'country', Values: [ 'United States' ], }, { Name: 'states', Values: [ 'California', 'Washington' ] } ], locale: "en-US", sheetOptions: { initialSheetId: '<YOUR_SHEETID>', singleSheet: false, emitSizeChangedEventOnSheetChange: false, }, toolbarOptions: { export: false, undoRedo: false, reset: false }, attributionOptions: { overlayContent: false, }, onMessage: async (messageEvent, experienceMetadata) => { switch (messageEvent.eventName) { case 'CONTENT_LOADED': { console.log("All visuals are loaded. The title of the document:", messageEvent.message.title); break; } case 'ERROR_OCCURRED': { console.log("Error occurred while rendering the experience. Error code:", messageEvent.message.errorCode); break; } case 'PARAMETERS_CHANGED': { console.log("Parameters changed. Changed parameters:", messageEvent.message.changedParameters); break; } case 'SELECTED_SHEET_CHANGED': { console.log("Selected sheet changed. Selected sheet:", messageEvent.message.selectedSheet); break; } case 'SIZE_CHANGED': { console.log("Size changed. New dimensions:", messageEvent.message); break; } case 'MODAL_OPENED': { window.scrollTo({ top: 0 // iframe top position }); break; } } }, }; const embeddedDashboardExperience = await embeddingContext.embedDashboard(frameOptions, contentOptions); const selectCountryElement = document.getElementById('country'); selectCountryElement.addEventListener('change', (event) => { embeddedDashboardExperience.setParameters([ { Name: 'country', Values: event.target.value } ]); }); }; </script> </head> <body onload="embedDashboard()"> <span> <label for="country">Country</label> <select id="country" name="country"> <option value="United States">United States</option> <option value="Mexico">Mexico</option> <option value="Canada">Canada</option> </select> </span> <div id="experience-container"></div> </body> </html>
<!DOCTYPE html> <html> <head> <title>Basic Embed</title> <script src="https://unpkg.com/amazon-quicksight-embedding-sdk@1.0.15/dist/quicksight-embedding-js-sdk.min.js"></script> <script type="text/javascript"> var dashboard function onDashboardLoad(payload) { console.log("Do something when the dashboard is fully loaded."); } function onError(payload) { console.log("Do something when the dashboard fails loading"); } function embedDashboard() { var containerDiv = document.getElementById("embeddingContainer"); var options = { // replace this dummy url with the one generated via embedding API url: "https://us-east-1.quicksight.aws.amazon.com/sn/dashboards/dashboardId?isauthcode=true&identityprovider=quicksight&code=authcode", container: containerDiv, parameters: { country: "United States" }, scrolling: "no", height: "700px", width: "1000px", locale: "en-US", footerPaddingEnabled: true }; dashboard = QuickSightEmbedding.embedDashboard(options); dashboard.on("error", onError); dashboard.on("load", onDashboardLoad); } function onCountryChange(obj) { dashboard.setParameters({country: obj.value}); } </script> </head> <body onload="embedDashboard()"> <span> <label for="country">Country</label> <select id="country" name="country" onchange="onCountryChange(this)"> <option value="United States">United States</option> <option value="Mexico">Mexico</option> <option value="Canada">Canada</option> </select> </span> <div id="embeddingContainer"></div> </body> </html>

Agar contoh ini berfungsi, pastikan untuk menggunakan Amazon Quick Sight Embedding SDK untuk memuat dasbor yang disematkan di situs web Anda menggunakan. JavaScript Untuk mendapatkan salinan Anda, lakukan salah satu hal berikut: