我设想通过使用无服务器并在AWS的API Gateway上具有自定义身份验证系统来部署后端。
首先,由我构建的API Gateway定制授权者检查请求。如果请求有效,则授权者将请求查询添加到我的后端。这是我的方法:
# new! -- add additional key-value pairs associated with the authenticated principal
# these are made available by APIGW like so: $context.authorizer.<key>
# additional context is cached
context = {
'user_id': user_id # $context.authorizer.key -> value
}
如果使用无服务器部署,则无法将上下文映射到Integration Request中的查询字符串中,这是使用无服务器部署时的示例:
如果您使用的是HTTP集成类型,则为以下示例:
我已检查到无法从无服务器python flask应用程序中查看或检索到我的上下文。我已经使用它来检索所有请求,但是无法从授权者上下文中看到user_id:
print(request.values)
这是来自CloudWatch,它应该是user_id-> id的另一个键值:
有没有办法从我的lambda flaskless serverless函数中从Authorizer获取上下文?
其他重要信息!
我发现lambda代理集成设置将授权者上下文作为事件发送。 如何通过使用python flask无服务器部署来访问它?
谢谢