【问题标题】:Embedded QuickSight dashboard with URL Action to another dashboard嵌入式 QuickSight 仪表板,带有指向另一个仪表板的 URL 操作
【发布时间】:2021-03-13 07:30:08
【问题描述】:

场景:

我在 Web 应用程序中嵌入了一个 QuickSight 仪表板,该仪表板显示正确。

此仪表板(仪表板 A)包含链接到单独仪表板(仪表板 B)的 URL 操作。

我使用 Chrome 工具获取仪表板 B 的嵌入 URL,并将其配置为分析中的 URL 操作:

https://eu-west-1.quicksight.aws.amazon.com/embed/yyyyyyyyyyyYYYYYYYYYYYyyyy/dashboards/xxxxxxx-xxxx-xxxx-xxxxxxxxxx

现在,当在嵌入式仪表板 A 上单击 URL 操作时,它会正确链接到仪表板 B。

但是,如果另一个用户访问同一个嵌入式仪表板 A 并单击该链接,则会导致

We can't display this page (Not authorized).

第一个参数yyyyyyyyyyyYYYYYYYYYYYyyyy 似乎是用户特定的,因此仪表板 B 的 URL 操作不能像这样硬编码。

在嵌入式 QuickSight 仪表板之间进行链接的正确方法是什么。 URL Actions 是可行的方法,还是需要替代方法?

解决方案

URL 操作的“嵌入令牌”(yyyyyyyyyyyYYYYYYYYYYYyyyy) 必须从客户端嵌入脚本作为参数传递。可以通过从 Dashboard A 解析会话 URL 来检索要传递的值。

    const embed = () => {
        const options = {
            url: props.sessionUrl,
            ...
            parameters: {
                embedToken: props.sessionUrl.split('/')[4]
            },
            ...
        };
        QuickSightEmbedding.embedDashboard(options);
    };

然后在 QuickSight 中,该参数可用于形成 URL 操作的 URL,如下所示。 (确保将 embedToken 添加为 string 作为 Quicksight 分析中的参数)。

https://eu-west-1.quicksight.aws.amazon.com/embed/<<$embedToken>>/dashboards/xxxxxxx-xxxx-xxxx-xxxxxxxxxx

嵌入式仪表板 A 然后在任何用户查看时正确链接到嵌入式仪表板 B。

【问题讨论】:

    标签: amazon-quicksight


    【解决方案1】:

    另一种方法是在您的 Web 应用程序中分别为仪表板 A 和 B 生成嵌入 URL,并将仪表板 B 的嵌入 URL 作为仪表板 A 的外部参数传递。由于您可以在操作 URL 中使用参数,因此它应该工作。

    【讨论】:

    • 感谢@Bastien R. 原始帖子中添加的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2021-08-14
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多