Невозможно создать встроенный URL-адрес панели инструментов AWS Quicksight.

сценарий

  1. У меня есть приложение JS без сервера, размещенное в S3.
  2. Я использую Cognito для аутентификации пользователя.
  3. Сконфигурировала роль аутентификации Cognito с разрешением quicksight: разрешение CreateUser.
  4. Я загрузил данные в Quicksight из файлов данных в S3 и создал панель инструментов.

Я использую приведенный ниже код для создания встроенного URL-адреса панели инструментов из лямбда-функции моего узла js (v8.10).

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);
            })

**

Я получаю ошибку ниже.

**

2019-01-15T17:48:42.496Z    cafaa35a-18ed-11e9-9e84-ad156518dcbe    { UnknownError: Forbidden
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:52: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)
message: 'Forbidden',
code: 'UnknownError',
statusCode: 403,
time: 2019-01-15T17:48:42.440Z,
requestId: 'XXXX',
retryable: false,
retryDelay: 1.6256019461018845 }


2019-01-15T17:48:42.938Z    cafaa35a-18ed-11e9-9e84-ad156518dcbe    Error: 
2019-01-15T17:48:42.938Z    cafaa35a-18ed-11e9-9e84-ad156518dcbe    { QuickSightUserNotFoundException: Could not find user information in QuickSight
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:52: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)
message: 'Could not find user information in QuickSight',
code: 'QuickSightUserNotFoundException',
time: 2019-01-15T17:48:42.938Z,
requestId: 'XXXXX,
statusCode: 412,
retryable: false,
retryDelay: 84.05706341238961 }

Есть идеи, почему это происходит? Нужно ли добавлять пользователя на портале Quicksight? Я думал, что быстрая интеграция вида-когнито - это подключи и играй.

Заранее спасибо за помощь.

2 ответа

Обратитесь к следующей ветке, которая дает подробную процедуру для программной генерации встроенного URL.

Как получить / создать URL-адрес защищенной панели мониторинга AWS

Проверьте этот образец репо. Это от инженеров Amazon. Использует Cloudformation.

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

У меня была аналогичная проблема, возникала ошибка QuickSightUserNotFoundException.

Я подписался на этот пост:

QuickSightUserNotFoundException При получении URL-адреса для встраивания AWS Quicksight с пользователем когнито

Основной момент: "При регистрации пользователя IdentityType должен быть IAM, но для getDashboardEmbedUrl он должен иметь тип QUICKSIGHT, и вам необходимо передать UserArn, который вы можете найти в ответе от registerUser"

Другие вопросы по тегам