我的lambda函数正在接收一个上下文。如何从Python AWS Lambda函数访问context.identity?
def lambda_handler(event, context):
logger.info(context.function_name)
logger.info(context.identity)
logger.info(context.cognito_identity_id)
logger.info(context.identity.cognito_identity_id)
return 'hello world'
日志接收到函数名,并记录内存地址为context.identity
。但context.cognito_identity_id
和context.identity.cognito_identity_pool_id
报告为None
。
我如何获得cognito_identity_id
填充?
从AWS API Gateway构建的类中的Xcode调试器我可以看到私有变量`_configuration._credentialsProvider._identityId设置正确。但是这个值并没有传递给我的AWS Lambda函数。
我无法找到如何获得通过。我读过这个page,我期望它被覆盖。
另外: 从lambda函数我登出dir(context.identity)
给['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', 'cognito_identity_id', 'cognito_identity_pool_id']
这表明cognito_identity_id
和cognito_identity_id
是实际存在的。
我认为AWS网关 - > AWS Lambda没有免费设置身份 - 我缺少一些配置 - 可能是映射模板。
你通过AWS移动SDK调用lambda函数? –
我正在使用API网关来调用Lambda函数。但它的名称应该没有区别。我只需要记录对象 – Carl
该文档位于您链接的页面上:http://docs.aws.amazon.com/lambda/latest/dg/python-context-object.html标识“有关Amazon Cognito身份提供者的信息当通过AWS Mobile SDK调用时,它可以为空。“ –