Aws lambda 在确认后lambda函数中访问Cognito自定义属性

Aws lambda 在确认后lambda函数中访问Cognito自定义属性,aws-lambda,amazon-cognito,Aws Lambda,Amazon Cognito,我有一个post-confirmation lambda函数,它将用户属性信息写入dynamoDB表。我已经通过如下操作成功地访问了“event”参数中的标准user attributes字段 event.request.userAttributes.sub 但是试着跑 event.request.userAttributes.role //where role is the name of my custom attribute 似乎不起作用。有人知道这句话的正确语法吗?我是否需要为自定义

我有一个post-confirmation lambda函数,它将用户属性信息写入dynamoDB表。我已经通过如下操作成功地访问了“event”参数中的标准user attributes字段

event.request.userAttributes.sub
但是试着跑

event.request.userAttributes.role //where role is the name of my custom attribute

似乎不起作用。有人知道这句话的正确语法吗?我是否需要为自定义属性设置任何特殊的读取权限?我在最初创建此用户池后很长一段时间创建了此自定义属性,如果这会改变情况的话。

所有自定义属性都以
custom:
前缀()作为前缀

因此(我假设您在这里使用的是JavaScript——如果您不能随意指定,我可以更改此示例),您需要使用:

event.request.userAttributes['custom:role']


您不需要设置任何特殊的读取权限-所有用户属性都将在
后确认中返回
lambda。

所有自定义属性都以
自定义:
前缀()作为前缀

因此(我假设您在这里使用的是JavaScript——如果您不能随意指定,我可以更改此示例),您需要使用:

event.request.userAttributes['custom:role']


您不需要设置任何特殊的读取权限-所有用户属性都将在
postconfimation
lambda中返回。

假设cognito用户池中没有字段。我们可以从确认后的lambda为该用户向cognito用户池添加一个吗?否-必须提前配置自定义属性。在这样做的时候,您还需要小心,因为它们不能被删除,并且限制为25。假设cognito用户池中没有一个字段。我们可以从确认后的lambda为该用户向cognito用户池添加一个吗?否-必须提前配置自定义属性。在这样做的时候,你也要小心,因为它们不能被删除,而且你只能删除25个。