Aws-lambda-dotnet: Полезная нагрузка для Lambda из объекта APIGatewayProxyRequest (работает в узле)

Созданный на 18 мая 2017  ·  3Комментарии  ·  Источник: aws/aws-lambda-dotnet

У меня есть вопрос о том, что должно было быть чем-то действительно простым.

Нам нужно написать нашу Lambda в .Net Core (C#), которая использует ресурс шлюза API и пытается получить пользовательские переменные, созданные либо из пользовательского авторизатора, либо непосредственно из шаблона сопоставления тела, прикрепленного к ресурсу шлюза API (на запрос на интеграцию).

Проблема, с которой мы столкнулись, заключалась в том, что через node вы можете получить доступ к параметру «event», который будет содержать всю полезную нагрузку json, то есть вы можете получить свою новую пользовательскую переменную следующим образом:
event.requestContext.authorizer.customKey или event.requestContext.context.customKey .

Проблема в том, что нет способа получить эти переменные из кода C#, используя объект запроса [ APIGatewayProxyRequest ]. Я общался с некоторыми инженерами из AWS (у нас есть бизнес-план), которые подтвердили (после того, как 3 или 4 человека подключились), что нет очевидного или возможного способа получить всю эту полезную нагрузку от объекта запроса для опроса через C#. .

Это была проблема с нашим конкретным случаем, поскольку тогда мы не могли получить доступ к каким-либо пользовательским переменным, а это означало, что нам нужно изменить планы.

Я нахожу это действительно странным, как это может быть достижимо в узле, но не обслуживается в С#?

Вопрос о переполнении стека, который поможет с примером, можно найти здесь:
http://stackoverflow.com/questions/43990385/aws-lambda-c-sharp-accessing-custom-context

Можно ли это подтвердить?

@нормдж

feature-request

Самый полезный комментарий

Да, нам нужно расширить APIGatewayProxyRequest, чтобы получить доступ к пользовательскому авторизатору.

Обходной путь до тех пор заключается в том, чтобы ваша функция Lambda принимала System.IO.Stream вместо APIGatewayProxyRequest. Затем у вас есть доступ к исходному JSON, который вы можете разобрать самостоятельно. Вы можете получить необходимую информацию из этого JSON, а затем также десериализовать JSON в APIGatewayProxyRequest.

Все 3 Комментарий

Да, нам нужно расширить APIGatewayProxyRequest, чтобы получить доступ к пользовательскому авторизатору.

Обходной путь до тех пор заключается в том, чтобы ваша функция Lambda принимала System.IO.Stream вместо APIGatewayProxyRequest. Затем у вас есть доступ к исходному JSON, который вы можете разобрать самостоятельно. Вы можете получить необходимую информацию из этого JSON, а затем также десериализовать JSON в APIGatewayProxyRequest.

Закрытие заключается в том, что это дубликат https://github.com/aws/aws-lambda-dotnet/issues/98.

эта функция добавлена? если да, могу ли я получить ссылку на документацию по этому поводу?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги