我想知道在我的 Alexa Skill 中使用全局变量是否安全。这是我的设置:
* Python skill using flask-ask
* Deployed using Zappa as aws-lambda function
* Accessed over the AWS API gateway
* Is an endpoint for an Alexa Skill with multiple languages
因此,我必须在一开始就确定每种用户的语言。然后我必须在剩下的互动中为他提供这种语言的对话。我的想法是使用on_session_started
装饰器。像这样的东西:
@ask.on_session_started
def new_session():
global LANG
if x:
LANG = "EN"
else:
LANG = "DE"
这里有几个问题在起作用。因为一切都如此交织在一起,我真的不确定潜在的问题。特别是我的不确定性与这些方面有关:
- Lambda 函数在容器中运行。在连续调用时,要么使用同一个容器,要么创建一个新容器。
- 这对烧瓶问一般有什么影响?
- 这对包含多个问题 <-> 答案的用户会话有何影响?
- 由于我使用
on_session_started
装饰器,因此全局变量仅在会话开始时设置一次:- 这对 2. 有何影响?会不会是在第一个用户请求和第二个请求之间,Lambda 使用了一个新的容器并且 LANG 被重置了?或者在会话结束之前,同一个烧瓶(-ask)实例是否处于活动状态?