Я успешно создал URL-адрес панели управления QuickSight, но когда я пытаюсь использовать quicksight-embedding-sdk, чтобы встроить мою информационную панель в мое приложение Amplify, div, содержащий встроенную информационную панель, не будет отображать приборную панель, а вместо этого будет отображать ошибку.
В Chrome это: us-east-1.quicksight.aws.amazon.com отказался подключиться.
С этими проблемами:
"Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute"
"Indicate whether a cookie is intended to be set in cross-site context by specifying its SameSite
attribute"
В Firefox это:
"Firefox Can’t Open This Page
To protect your security, us-east-1.quicksight.aws.amazon.com will not allow Firefox
to display the page if another site has embedded it. To see this page,
you need to open it in a new window."
С этими предупреждениями:
Content Security Policy: Couldn’t process unknown directive ‘report-to’
Cookie “qs_lang” will be soon rejected because it has the “sameSite” attribute set to “none” or an invalid value, without the “secure” attribute. To know more about the “sameSite“ attribute, read https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite
This error page has no error code in its security info
Мой текущий рабочий процесс: пользователь в моем приложении Amplify входит в систему, эти учетные данные Cognito используются для вызова api, который запускает лямбда-функцию, функция регистрирует пользователя, а затем генерирует URL-адрес для встраивания, который затем успешно возвращается.
Я уже поделился панелью управления с пользователем, который был зарегистрирован через мое приложение и внес в белый список домен моего приложения с усилением.
Я не уверен, имеет ли это значение, но мои когнитивные данные и панель инструментов находятся в «us-east-2», но мне пришлось использовать «us-east-1» для регистрации моего пользователя (в противном случае я бы получил сообщение об ошибке с просьбой использовать « ус-восток-1 ').
Соответствующие фрагменты кода:
HTML:
<div id="embeddingContainer"></div>
JS:
embedDashboard(embedUrl) {
//embedUrl is being returned as expected
const options = {
url: embedUrl,
container: document.getElementById("embeddingContainer"),
scrolling: "no",
height: "700px",
width: "1000px",
locale: "en-US",
footerPaddingEnabled: true,
};
let dashboard = embedDashboard(options);
dashboard.on("error", this.onError);
dashboard.on("load", this.onDashboardLoad);
},
//Neither onDashboardLoad nor onError are being called
onDashboardLoad(payload) {
console.log("Do something when the dashboard is fully loaded.", payload);
},
onError(payload) {
console.log("Do something when the dashboard fails loading", payload);
},
Я не уверен, что я только что что-то сломал или эта библиотека больше не поддерживается Chrome / Firefox. Я видел, что раньше была проблема с поддержкой браузером https://answers.quicksight.aws.amazon.com/sn/questions/4701/quicksight-embedding-no-longer-works-in-new-chrome.html а>? но судя по ответам, я думал, что с этим справились.
Спасибо за любую помощь и идеи!