- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 amazon-quicksight-embedding-sdk(遵循 https://learnquicksight.workshop.aws/en/dashboard-embedding.html)在我的 Web 应用程序中嵌入了 Amazon QuickSight 控制面板。
如 https://docs.aws.amazon.com/quicksight/latest/APIReference/API_GetDashboardEmbedUrl.html 中所述,用户 session 似乎持续了许多小时。当我直接从我的网络浏览器请求嵌入 URL 时,我可以看到它在很多小时内都有效。
但是当用户重新启动它时(通过关闭/重新打开选项卡/浏览器),我的网络应用程序将请求一个新的嵌入 URL。这是否意味着新的用户 session 已创建并计费。
是否可以存储嵌入 URL 并在同一用户关闭选项卡/浏览器并再次打开网络应用程序和仪表板(当然是在同一个浏览器)?
我试图将 embedURL 存储为名为“embed_url”的 cookie。但是调用 amazon-quicksight-embedding-sdk.embedDashboard({url: embed_url}) 导致
"Embedding failed because of invalid URL or authorization code. Bothof these must be valid and the authorization code must not be expiredfor embedding to work."
我确信 embed_url 仍然有效,因为浏览器直接请求它有效。上面的错误信息中提到了哪个“授权码”?我错过了什么,或者这实际上是不可能的?
除了计费问题,我注意到获取 embedURL 的调用需要时间(超过 5 秒,eu-central-1),而嵌入花费的时间更少(3 秒)。我认为我可以通过重用获得的 embedURL 来缩短仪表板加载时间。对时间有什么意见吗?这是正常的还是我做错了什么所以它这么慢?我的测试仪表板只有 1 个图表,数据集未更改。
最佳答案
根据 Quicksight Pricing Page ,如果您正在为 Quicksight“阅读器”创建嵌入式仪表板,则您为此阅读器每 30 分钟登录 session 支付 0.30 美元/ session 。
session的有效期可以在GetDashboardEmbedUrl
API的SessionLifetimeInMinutes
参数中设置,上限为600分钟(10小时)。
例如,假设您将阅读器用户的 SessionLifetimeInMinutes
设置为 600 分钟。还假设该用户保持登录状态并连续使用仪表板 10 小时,那么这相当于使用了 20 次 session (因为计费是以 30 分钟为增量)。乍一看,这似乎会导致 $0.30/session * 20 session-chunks = $6 被计费。
但是,根据定价页面,每位读者每月的上限为 5.00 美元。这意味着无论为他们创建了多少个 Quicksight session (无论持续时间如何),该读者每月的收入永远不会超过 5 美元。因此,无论您为给定阅读器调用 GetDashboardEmbedUrl
API 多少次,该用户每月的费用上限为 5 美元。
也可用于确定 Reader session 的构成(来自定价页面):
When does a Reader Session start and end?
A Reader Session starts with user-initiated action (e.g., login, dashboard load, page refresh, drill-down or filtering) and runs for next 30-minutes.
Keeping Amazon QuickSight open in a background browser window/tab does not result in active sessions until the Reader initiates action on page.
But my web app will request a new embed URL when user restarts it (by closing/reopening tab/browser). Does that mean a new user session was created and billed.
我不是 100% 确定这一点,但是是的,我相信刷新(或打开/关闭)选项卡会导致同一用户的新 session 。
A Reader Session starts with user-initiated action (e.g., login, dashboard load, page refresh, drill-down or filtering) and runs for next 30-minutes.
以上摘录自定价页面。因此,页面刷新(以及对 GetDashboardEmbedUrl
的另一次调用)似乎确实会为用户触发一个新 session 。
Which "authorization code" is mentioned in the above error message?
GetEmbedDashboardUrl
API 响应是一个 JSON 对象,如下所示:
{
"Status": 200,
"EmbedUrl": "https://us-east-1.quicksight.aws.amazon.com/embed/f4147cd0d4d_BLAH_BLAH_...",
"RequestId": "c15a7bad-629e-444a-b643-ff3142c9ae41"
}
如果仔细观察 EmbedUrl
,除了仪表板 url 本身,还有这些查询字符串参数:
code
参数(嵌入在 embedUrl 中)是您询问的“授权码”。
Is it possible to store the embed URL and to reuse it (as long as the user session lasts) for the case the same user closes the tab/browser and open the web app and the dashboard again (of course in the same browser)?
不,这是不可能的。正如它在 link you shared 中所说的那样:
The following rules apply to the combination of URL and authorization code:
- They must be used together.
- They can be used one time only.
- They are valid for 5 minutes after you run this command.
因此 embedURL 及其关联的授权码只能一起使用一次。这是有道理的,因为这将防止 MITM 重放攻击等场景。此外,我实际上尝试缓存响应,然后在缓存命中的情况下重新使用 embedUrl,因为这会改善最终用户体验。但这没有用 - 正如他们的文档中所述,QuickSight 阻止了 embedUrl 的“重播”。
Any comments about the timing?
这也是我们的经验。 GetDashboardEmbedUrl
REST API 对于我们的应用程序大约需要 5-7 秒 (us-east-1),然后实际嵌入还需要 3-5 秒。不太好,但我目前还没有找到解决这种糟糕用户体验的方法。
关于amazon-web-services - Amazon QuickSight 嵌入式仪表板 - 如何在我的网络应用程序中缓存用户 session (计费和时间问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67026728/
我有一个包含数字和整数的文件,我只想读取整数, 如果它们令人讨厌,请忽略宏,但是我只需要有整数,但是我必须确保还要读取字符串,然后忽略它们 我必须在这里修改什么: #include #include
我有一个这样格式化的txt文件: MyDepartureTown MyDestinationTown 123.45 Vehicle 12 我正在尝试将数据导入到我的 C 程序中。这是我用来实现这一目标
我创建了一个简单的文件,使用 flex,它生成了一个文件 lex.yy.c,现在,我想把它放到 C++ 程序中。 %{ #include %} %% stop printf("Stop co
我的一个程序用 c++ 代码生成一个大文件。有没有办法从另一个C++类调用将生成的代码插入其中? 这是一个小例子,可以清楚地说明我想要实现的目标。 生成的文件示例: FirstClass first
我需要了解我的程序“检查输入十六进制消息的第三个位置” 程序将采用十六进制值输入消息。例如0x0123456789abcdef 程序将检查输入消息的第三个位置,即 0 现在程序将采用另一条十六进制值的
当我将输入从输入文件重定向到 yacc 程序时,在它完成解析文件后,我希望 yacc 解析器打印其所做操作的摘要。如果我通过键盘输入内容然后按 Ctrl+D,我希望它执行相同的操作。有办法做到这一点吗
我正在扫描该文件,但它有两种不同的结构。 文件: ParisRoubaix "Marco MARCATO" 33 UAD ITA 26 5:43:31 ParisRoubaix "Sam BEWLEY
我想将winsock2.lib 添加到我的程序中,但不希望将其包含到最终的可执行文件中。有什么方法可以让我动态加载与winsock2关联的dll吗?如果没有,是否有任何 dll(Windows 附带)
我尝试了一个基本程序来将数据从数据库表检索到java程序中。编译结束后,运行代码时出现异常。控制台中没有显示错误。显示异常消息 import java.sql.*; public class clas
我想用 C++ 创建一个跨平台安装程序。它可以是任何压缩类型,例如 zip 或 gzip,像普通安装程序一样嵌入程序本身。我不想在不同的平台、linux 和 windows 上创建很多更改。如何跨平台
每次尝试用鼠标输入两个顶点时,我都会崩溃。我最近改变了组织每个形状的方式,以确保新形状与旧形状重叠。 这个项目的想法是制作各种交互式 Canvas 。用户可以在直线、三角形和矩形之间进行选择,然后选择
我想在我的程序中显示以下文本。当我在 python 中粘贴以下文本时,它会将反斜杠解释为转义序列并弄乱我的 ascii 艺术..任何解决这个问题的想法极客。这是我的文本想出现在我的节目中 _ _
我正在尝试加载名为 Tut16_ReadText.txt 的文件,并使其运行程序以输出其重或轻。 我收到了粘贴在下面的错误。我无法抽出时间让这个程序运行。谁能解释一下我必须做什么才能使这个程序正常工作
我想使用命令行将列表作为参数传递,例如: $python example.py [1,2,3] [4,5,6] 我希望第一个列表 [1,2,3] 成为 first_list,[4,5,6] 成为 se
在分析 C# 应用程序时,我发现名为“ThePreStub”的系统 (?) 方法中有相当多的 CPU 使用率。这是什么? 最佳答案 参见:CLR Inside out - The Performanc
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
我正在用 Python 开发一个游戏,想知道如何给它自己的图标。我使用的是 Windows 计算机,没有安装 Python 的额外东西。哦,我也在使用 3.3 版,这甚至可能吗? P.S 我在 Sta
我正在使用 tkinter 使用 Python 开发一个项目,该项目将允许对 IP 地址进行地理定位。我有原始转换,我可以获取 IP 地址并知道城市、州、国家、经度、纬度等。我想知道是否有任何方法可以
我编写了一个程序,您可以在其中选择任意数字并将其与任意数字的幂相关联。代码运行正常,直到它到达某个部分,然后我必须输入一个字符以使其移动到代码的下一部分。这就是我的意思: #include int
我正在编写“HACKING Art Of Exploitation”一书练习 Convert2.c 第 61 页。 这是我的代码。下面是我的问题。 #include void usage(char
我是一名优秀的程序员,十分优秀!