无法创建AW​​S Quicksight嵌入式仪表板URL

时间:2019-01-15 18:03:29

标签: node.js amazon-web-services aws-lambda amazon-cognito amazon-quicksight

场景

  1. 我在S3中托管了一个无服务器的React js应用。
  2. 我正在使用Cognito进行用户身份验证。
  3. 使用来配置Cognito身份验证角色 quicksight:CreateUser 权限。
  4. 我将数据从S3中的数据文件加载到Quicksight中,并创建了一个仪表板。

我正在使用以下代码从节点js(v8.10)lambda函数创建嵌入式仪表板URL。

@foreach($mainCategories as $cat)
  // .... your code
@endforeach

**

我遇到以下错误。

**

const AWS = require('aws-sdk');
var quicksight = new AWS.QuickSight({
    region: 'us-east-1'
});
return quicksight.getDashboardEmbedUrl({
                'AwsAccountId': 'XXXXX',
                'DashboardId': 'YYYYYYY',
                'IdentityType': 'IAM',
                'ResetDisabled': true,
                'SessionLifetimeInMinutes': 100,
                'UndoRedoDisabled': false
            }).promise().then((res) => {
                console.log('Response: ');
                console.log(res);
            }).catch((err) => {
                console.log('Error: ');
                console.log(err);
            })

知道为什么会这样吗?我是否也必须在quicksight门户中添加用户?我认为快速视认-认知整合是即插即用。

预先感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

请参考以下线程,该线程给出了以编程方式生成嵌入式URL的详细过程。

How to get/generate aws quicksight secure dashboard url

答案 1 :(得分:0)

查看此示例存储库。来自亚马逊工程师。使用Cloudformation。

https://github.com/aws-samples/amazon-quicksight-embedding-sample

答案 2 :(得分:0)

我遇到了类似的问题,出现了QuickSightUserNotFoundException错误。

我关注了这篇文章:

QuickSightUserNotFoundException When getting a AWS Quicksight embed URL with cognito user

要点是“注册用户时,IdentityType必须为IAM,但对于getDashboardEmbedUrl,必须输入QUICKSIGHT,并且您需要传递UserArn,您可以在registerUser的响应中找到它”