在使用GetDashboardEmbedUrlCommand方法时,需要以下权限:
quicksight:GenerateEmbedUrlForAnonymousUser- 允许匿名访问Amazon Quicksight仪表板
quicksight:GenerateEmbedUrlForRegisteredUser- 允许已注册用户访问Amazon Quicksight仪表板
示例代码:
首先,需要在AWS Identity and Access Management(IAM)中创建一个角色,并将以下策略附加到该角色:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "quicksight:RegisterUser", "quicksight:GetDashboardEmbedUrl", "quicksight:GetGroup", "quicksight:DescribeDashboard", "quicksight:DescribeGroup", "quicksight:ListGroups", "quicksight:PassDataSet", "quicksight:DeleteUser", "quicksight:UpdateDashboardPublishedVersion", "quicksight:UpdateDashboardPermissions", "quicksight:DescribeUser", "quicksight:UpdateDashboard", "quicksight:ListUsers", "quicksight:RegisterUserQuickSight", "quicksight:CreateGroup", "quicksight:UpdateGroup", "quicksight:DeleteGroup", "quicksight:CreateUser", "quicksight:CreateDataSet", "quicksight:UpdateDataSet", "quicksight:DeleteDataSet", "quicksight:UpdateUser", "quicksight:DescribeDataSet" ], "Resource": "*" } ] }
然后,创建一个Amazon Quicksight的客户端,并调用GetDashboardEmbedUrlCommand方法:
const { QuickSightClient, GetDashboardEmbedUrlCommand } = require("@aws-sdk/client-quicksight");
const quicksight = new QuickSightClient({ region: "us-east-1" });
const command = new GetDashboardEmbedUrlCommand({ AwsAccountId: "YOUR_AWS_ACCOUNT_ID", DashboardId: "YOUR_DASHBOARD_ID", IdentityType: "ANONYMOUS", SessionLifetimeInMinutes: 100, });
try { const response = await quicksight.send(command); console.log(response.EmbedUrl); } catch (err) { console.log("Error", err); }
请注意,您需要替换YOUR_AWS_ACCOUNT_ID和YOUR_DASHBOARD_ID为您的AWS账户ID和仪表板ID。