【发布时间】:2019-09-22 06:51:14
【问题描述】:
我的 lambda 函数正在接收上下文。
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'
日志接收function_name,并记录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 Gateway -> AWS Lambda 不会免费设置身份 - 我缺少一些配置 - 可能是映射模板。
【问题讨论】:
-
您是否通过 AWS 移动开发工具包调用 Lambda 函数?
-
我正在使用 API Gateway 调用 Lambda 函数。但它应该如何调用它应该没有区别。我只需要对象记录
-
文档在您链接的页面上:docs.aws.amazon.com/lambda/latest/dg/python-context-object.htmlidentity “通过 AWS 移动开发工具包调用时有关 Amazon Cognito 身份提供商的信息。它可以为空。”
-
我读了那页。在我的情况下,该值不为空。那么如何从我的 context.identity 对象中获取字段呢?
-
@mark b 你在写 Python lambda 函数吗?
标签: python amazon-web-services aws-lambda