标签: quicksight-embedding

嵌入快速浏览 URL 时访问被拒绝

我正在尝试将 AWS Quicksight 仪表板嵌入到我们的应用程序中,但在嵌入过程中遇到了一些问题。URL 已正确生成,但是当我尝试嵌入它时出现权限被拒绝错误。

我可以直接在新选项卡中加载生成的 URL,但是当我尝试嵌入它时,我收到 401 错误。

我已在 Quicksight 控制台中将该域列入白名单,并且正在通过 HTTPS 访问该页面。完整的测试页面如下所示。

以下代码是我用来测试嵌入的代码。它取自亚马逊的示例。

<!DOCTYPE html>
    <html>
    <head>
        <title>My Dashboard</title>
        <script src="https://unpkg.com/amazon-quicksight-embedding-sdk/dist/quicksight-embedding-js-sdk.min.js" ></script>
        <script type="text/javascript">
            function embedDashboard() {
                var containerDiv = document.getElementById("dashboardContainer");
                var params = {
                    url: "<link that works in a standalone browser tab>",
                    container: containerDiv,
                    parameters: {
                    },
                    height: "700px",
                    width: "1000px"
                };
                var dashboard = QuickSightEmbedding.embedDashboard(params);
                dashboard.on('error', function(err) {console.log('dashboard error:', err)});
                dashboard.on('load', function() {});
            }
        </script>
    </head>
    <body onload="embedDashboard()">
        <div id="dashboardContainer"></div>
    </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

亚马逊发送 302,然后是 401。这会导致出现错误消息“我们无法显示此页面(未授权)”的框架。 …

amazon-web-services quicksight-embedding

5
推荐指数
0
解决办法
1635
查看次数

Quicksight 仪表板嵌入 url 显示 us-east-1 而不是 eu-west-1

问题:

我想通过 SDK 以编程方式获取 Quicksight 仪表板 URL(仪表板位于区域:eu-west-1),但是每当我使用以下区域时,我都会收到以下错误:

示例代码:

注意:为了简洁起见,添加了凭据,但这些凭据是从配置文件中加载的。在Java SDK中也尝试过。

const AWS = require('aws-sdk')
const dotenv = require('dotenv').config()

const init = async () => {
  AWS.config.credentials = {accessKeyId: process.env.ACCESS_KEY_ID, secretAccessKey: process.env.SECRET_ACCESS_KEY}
  AWS.config.region = 'us-east-1'
  // AWS.config.region = 'eu-west-1'

  const quicksight = new AWS.QuickSight()

  const embedUrlParams …
Run Code Online (Sandbox Code Playgroud)

aws-sdk amazon-quicksight quicksight-embedding assume-role

5
推荐指数
1
解决办法
3226
查看次数

请求 Quicksight 嵌入 URL 时出现“'userArn' 无法满足约束:在此区域无法访问指定资源”

我正在尝试将 Quicksight 仪表板嵌入到 Web 应用程序中,并一直在使用此amazon-quicksight-embedding-sample 来启动和运行。我遵循了自述文件中的所有说明,并在我的 AWS lambda 函数中运行了代码。当我测试代码时,它返回 null,并且日志在标题中报告 ValidationException。预期输出是用于将仪表板嵌入网页中的 URL。
实际输出如下:

ValidationException: 1 validation error detected: Value 'arn:aws:iam::655956663811:user/admin' at 'userArn' failed to satisfy constraint: Specified resource is not reachable in this region ('us-east-2')
at Object.extractError (/var/task/node_modules/aws-sdk/lib/protocol/json.js:51:27)
at Request.extractError (/var/task/node_modules/aws-sdk/lib/protocol/rest_json.js:55:8)
at Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
at Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
at Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:683:14)
at Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /var/task/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:685:12)
Run Code Online (Sandbox Code Playgroud)

用户“Admin”是具有管理员访问权限的 IAM 用户,quicksight 账户已将 amazonaws.com 和 amazon.com 的嵌入列入白名单。lambda 的测试输入为:

{
"dashboardId": "311d89d1-d666-4fb1-91cf-1500e28b76ca",
"userArn": "arn:aws:iam::<accountID>:user/admin",
"apiGatewayUrl": …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-iam aws-lambda amazon-quicksight quicksight-embedding

5
推荐指数
1
解决办法
2939
查看次数

QuickSight 不显示使用 API 创建的数据源

我最近开始考虑使用 Quicksight API 创建仪表板和分析。我尝试使用 AWS SDK 创建数据源,响应成功,并且我还可以通过调用 datasourceId 上的描述来仔细检查这一点。但是,当我登录到 Quicksight GUI 时,它没有显示在数据源列表中,有人可以解释为什么会发生这种情况。

aws-sdk amazon-quicksight aws-sdk-java-2.0 quicksight-embedding

3
推荐指数
1
解决办法
1793
查看次数

无法将 Quicksight 仪表板用作 S3/cloudfront 白名单域上的嵌入 URL

我试图将 Quicksight 仪表板视为来自我们域中的嵌入式 url,该域已在 AWS Quicksight 帐户中列入白名单。我们的网站作为静态网站托管在 S3 存储桶上。在下面的示例中,AWS 博客上提供了一个 javascript 函数。

下面是示例 javascript 函数。

function embedDashboard() {
                var containerDiv = document.getElementById("dashboardContainer");
                var options = {
                    url: "<signed URL from Step 3>",
                    container: containerDiv,
                    parameters: {
                        country: 'United States'
                    },
                    scrolling: "no",
                    height: "700px",
                    width: "1000px"
                };
                dashboard = QuickSightEmbedding.embedDashboard(options);
                dashboard.on('error', onError);
                dashboard.on('load', onDashboardLoad);
            }
Run Code Online (Sandbox Code Playgroud)

完整示例在同一博客Amazon QuickSight JavaScript SDK 的另一个链接上给出

不幸的是,该示例不起作用。

amazon-quicksight quicksight-embedding

1
推荐指数
1
解决办法
1898
查看次数

QuickSightUserNotFoundException When getting a AWS Quicksight embed URL with cognito user

I'm trying to get a Quicksight embed URL in a lambda function,

The lambda function receives a jwtToken from the frontend created on a react app using aws amplify, all the cognito setup works well (userpool and identity pool), the user receives the role "arn:aws:iam::xx:role/Cognito_qa1_Admin" when logging in,

The role has permissions to quicksight:registerUser and quicksight:getDashboardEmbedUrl

var cognitoIdentity = new AWS.CognitoIdentity();
  var params = {
    IdentityPoolId: "eu-west-2:xxx-291d-xx-b9a7-8b27c73c796c", // your identity pool id here
    Logins: {
      // your logins here
      "cognito-idp.eu-west-2.amazonaws.com/eu-west-2_xxx": …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-cognito amazon-quicksight quicksight-embedding

1
推荐指数
1
解决办法
2291
查看次数