У меня есть AWS Python лямбда, которая запускается API-шлюзом. Вызовы API-шлюза авторизуются с помощью Cognito.
Я хочу получить пользовательский атрибут, определенный в Cognito для авторизованного пользователя.
В настоящее время в "requestContext" я получаю:
authorizer': {'claims': {'aud': '4m3ak7fsqva7kokbkfl2vev6420',
'auth_time': '156074111',
'cognito:username': 'fa15f3d8-220b-4c5c-b5a6-XXXXXXXXXX',
'email': 'email@address.com',
'email_verified': 'false',
'event_id': '12345-7326-4fef-95cd-ae06665169a7',
'sub': 'fd1666d8-260b-4c1c-a5b6-466d4b42bd77',
'token_use': 'id'}},
Это здорово, но пользователь является частью UserPool, для которого определен пользовательский атрибут:
Пользовательские атрибуты custom: customid
Как передать «customid» в лямбду через API Gateway / Cognito, в идеале, используя AWS SAM, учитывая то, как определяется лямбда.
template.yaml
ApiGatewayApi:
Type: AWS::Serverless::Api
Properties:
StageName: dev
Cors: "'*'"
Auth:
DefaultAuthorizer: CognitoAuthorizer
Authorizers:
CognitoAuthorizer:
UserPoolArn: !GetAtt CognitoUserPool.Arn
Я нашел похожий вопрос здесь: Получите данные из AWS Cognito, используя Boto3 , но изо всех сил пытаетесь добавить их в шаблон SAM