python - 从具有代理集成的 AWS lambda 函数访问授权者 - Python
问题描述
[源自AWS ApiGateway Lambda 代理访问授权者]
我在我的 ApiGateway 中使用 Lambda 代理和 Cognito 用户池授权器。使用 node.js Lambda 函数,可以访问event.requestContext.authorizer.claims
.
但是在 Python 中,没有这样的 object。探索event
对象和context
对象显示没有类似requestContext
or的东西authorizer
,只是一个identity
包含 Cognito Federated Identities 信息的对象:对我来说,它只是null
.
我还没有看到任何提到event.requestContext.authorizr.claims
Python AWS-Lambda 函数的内容,这会很痛苦
- 改用联合身份
- 在 API Gateway 中,将 Authorization 设置为
AWS_IAM
并打开Invoke with caller credential
- 删除自定义集成的代理集成或
- 用 node.js 而不是 python 编写 lambdas
您是否知道我是否遗漏了某些东西,是否没有由 AWS 实施,是否有简单的解决方法或其他任何东西?
非常感谢你的帮助 !
这是 python aws-lambda 函数中的上下文对象,以类似字典的形式:
"aws_request_id":"99XXXXf5-6XXe-1XX8-bXXf-5dXXXXXXXX50",
"function_name":"test_DynamoDB",
"function_version":"$LATEST",
"invoked_function_arn":"arn:aws:lambda:eu-west-3:4XXXXXXXXXX0:function:test_DynamoDB",
"log":"<bound method LambdaContext.log of <__main__.LambdaContext object at 0x7f07bcb21da0>>",
"log_group_name":"/aws/lambda/test_DynamoDB",
"log_stream_name":"2018/06/13/[$LATEST]76XXXXXXXXXXXXXXXXXXXXXXXXXXXXf0",
"memory_limit_in_mb":"128",
"identity":{
"cognito_identity_id":null,
"cognito_identity_pool_id":null
},
"client_context": None
更新
从https://stackoverflow.com/a/44039371/9936457看来,C# lambda 函数中似乎存在同样的问题,并且有一个解决方法,使用 System.IO.Streams。这个解决方案可以在 Python 中使用正确的语法吗?
解决方案
推荐阅读
- jquery - “str”对象没有属性“get”?
- python - 在 python 脚本文件中执行 python 终端命令
- linux - 无法在 RHEL8 中切换 TTY
- python - 在 Python 中手动终止无限循环时安全关闭文件
- python - 使用 python 运行烧瓶应用程序而不是烧瓶运行
- java - 我无法弄清楚为什么我的 while 循环循环了两次而不是一次
- python - 根据标签将列表映射到 DataFrame
- if-statement - 展开电源查询中所有相似列的值
- node.js - 根据频率创建音频文件
- python - Python / Django - 如何将字典中的值列表映射到 HTML 表?