Amazon Lex 的缓存问题

Caching issue for Amazon Lex

问题:当在 amazon lex 控制台中针对别名发布它时,更改不会立即反映在聊天机器人 iframe 中(我检查过聊天机器人别名指向正确的版本并使用相同的别名,只是它部署在 lex-web 中-ui).

说明: lex 聊天机器人使用 lex-web-ui 部署并作为 iframe 嵌入网站。 步骤:

  1. 我在 google chrome/cognito 或微软 edge/edge 私人 window 上打开了网站并测试了一个机器人并且它工作正常
  2. 我的机器人的意图之一有 5 个槽问 5 个问题。
  3. 现在有一项任务需要从该意图中删除一个特定问题。
  4. 所以我删除了指向那个特定问题的插槽,保存了意图,build 机器人并用相同的别名发布了它。还检查了设置,别名指向最新版本。

期望- 在 google chrome/incognito 或 edge/private window 中刷新应用程序时,已发布的更改应立即反映出来。

观察:-

  1. 刷新应用程序并打开聊天机器人后,我们找不到在 lex 控制台中发布的任何更改(它仍然询问 5 个问题,而原本应该只询问 4 个)。为了反映 iframe 中的这些变化,我需要清除缓存
  2. 但是当我们将聊天机器人作为一个独立的项目时,情况就不是这样了。一旦更改发布,在刷新独立聊天机器人后,这些更改就可见了,这意味着它会问 4 个问题而不是 5 个问题(无需清除缓存)

缓存失效是为了确保对表示层(web-ui)的任何更改都正确反映在客户端的浏览器中。 CloudFront 不缓存 Lex 本身,因此失效对 Lex 没有影响(只要您指向相同的机器人和别名组合。

您可以安全地发布您的 Lex 更改,而无需 运行 缓存失效。