带有API Gateway Authorizer的AWS Python Serverless

时间:2018-07-24 07:33:43

标签: python amazon-web-services flask aws-api-gateway serverless

我设想通过使用无服务器并在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中的查询字符串中,这是使用无服务器部署时的示例:

Intgration Request with serverless deployment

如果您使用的是HTTP集成类型,则为以下示例:

Integration Request with normal deployment

我已检查到无法从无服务器python flask应用程序中查看或检索到我的上下文。我已经使用它来检索所有请求,但是无法从授权者上下文中看到user_id:

print(request.values)

这是来自CloudWatch,它应该是user_id-> id的另一个键值:

enter image description here

有没有办法从我的lambda flaskless serverless函数中从Authorizer获取上下文?

其他重要信息!

我发现lambda代理集成设置将授权者上下文作为事件发送。 如何通过使用python flask无服务器部署来访问它?

enter image description here

谢谢

0 个答案:

没有答案