【发布时间】:2021-11-17 08:38:55
【问题描述】:
我正在使用 Cloud Run 在 python 中构建一个烧瓶服务器,供聊天机器人调用。
有时如果用户想用聊天机器人做某事,机器人需要在做这些事情之前要求用户登录到第三方服务器。
我有两条路线:
- Route 1 是“/login”,它返回一个简单的 iframe,它将在 3rd 方服务器中打开一个登录页面,生成一个“session_id”,并将我已经获得的一些信息保存到一个名为“runtimes”的全局变量字典中以“session_id”为键,以便以后访问者成功登录时可以使用它。
- 路由 2 是“/callback/
”。用户成功登录其帐户后,第 3 方服务器将使用 url 参数中的令牌调用此路由。然后我将使用“session_id”从“runtimes”中读取保存的信息,然后再做一些事情。
它在我的本地机器上运行良好。但是在 Google Cloud Run 中,由于支持多实例,有时会在服务器调用“回调”时触发一个新的实例,因此无法获取“运行时”,因为它们在不同的实例中。
我知道我可以将运行时 dict 保存到数据库中来解决这个问题,但它看起来太矫枉过正了......只是看起来不对。
有什么简单的方法可以在实例之间共享“运行时”吗?
【问题讨论】: