【发布时间】:2020-11-07 23:29:48
【问题描述】:
我有一个用 python 编写的 Lambda 函数,它由具有代理集成的 API Gateway 和 Cognito 用户池授权方触发。我正在尝试访问 Cognito 为每个用户提供的“子”UUID,但我没有尝试任何工作。我几乎用尽了所有相关搜索结果的谷歌,但我发现没有任何东西似乎有效。它们要么返回 null,要么崩溃。我的功能(每个尝试的 UUID 访问行都被注释掉了)如下:
import json
def lambda_handler(event, context):
#UniqueUser = context.identity.cognito_identity_id
#UniqueUser = context.authorizer.claims.sub
#UniqueUser = event.requestContext.authorizer.claims.sub
#UniqueUser = event.request.userAttributes.sub
#UniqueUser = event.queryStringParameters.sub
try:
# Something that gets sub from cognito
except:
UniqueUser = "not valid code"
if not UniqueUser:
UniqueUser = "UniqueUser is null"
return {
'statusCode': 200,
'headers': {
'Access-Control-Allow-Origin': '*'
},
'body': json.dumps('Hello from Lambda ' + UniqueUser + "!")
};
有谁知道此行为的任何可能来源或此问题的解决方案?
【问题讨论】:
-
当我这样做时:
print(vars(context))我得到它作为它的一部分返回:'client_context': None, 'identity': <bootstrap.CognitoIdentity object at 0x7fd269d02a50>因此,客户端上下文为空,并且有一个我似乎无法访问的身份密钥。
标签: python aws-lambda aws-api-gateway amazon-cognito