Авторизатор доступа из лямбда-функции AWS с интеграцией прокси - Python - PullRequest
0 голосов
/ 13 июня 2018

[Получено от AWS ApiGateway Lambda Proxy Access Authorizer ]

Я использую Lambda Proxy и Cognito User Pool Authorizer в моем ApiGateway.С помощью функций node.js Lambda можно получить доступ к авторизатору (в основном, получить идентификатор пользователя, адрес электронной почты и прочее) в event.requestContext.authorizer.claims.

Но в Python, нет такого объекта .Изучение объекта event и объекта context показывает, что нет ничего подобного requestContext или authorizer, просто объект identity, который содержит информацию Cognito Federated Identities: для меня это просто null.

Я не видел упоминаний о event.requestContext.authorizr.claims в функциях Python AWS-Lambda, и было бы больно

  1. использовать федеративные удостоверения вместо
  2. в API Gatewayустановите Авторизацию на AWS_IAM и включите Invoke with caller credential
  3. отбросьте интеграцию прокси для пользовательской интеграции или
  4. напишите лямбда-выражения с node.js вместо python

Есть ли у вас какие-либо идеи, если я что-то упустил, если это не реализовано в AWS, есть ли простой обходной путь или что-то еще?

Большое спасибо за вашу помощь!

Вот объект контекста в функции python aws-lambda в форме словаря:

"aws_request_id":"99XXXXf5-6XXe-1XX8-bXXf-5dXXXXXXXX50",
  "function_name":"test_DynamoDB",
  "function_version":"$LATEST",
  "invoked_function_arn":"arn:aws:lambda:eu-west-3:4XXXXXXXXXX0:function:test_DynamoDB",
  "log":"<bound method LambdaContext.log of <__main__.LambdaContext object at 0x7f07bcb21da0>>",
  "log_group_name":"/aws/lambda/test_DynamoDB",
  "log_stream_name":"2018/06/13/[$LATEST]76XXXXXXXXXXXXXXXXXXXXXXXXXXXXf0",
  "memory_limit_in_mb":"128",
  "identity":{  
     "cognito_identity_id":null,
     "cognito_identity_pool_id":null
  },
  "client_context": None

Обновление

С https://stackoverflow.com/a/44039371/9936457, похожета же проблема была в лямбда-функциях C #, и есть обходной путь дляэто, используя System.IO.Streams.Будет ли это решение работать в Python с правильным синтаксисом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...