Aws-lambda-dotnet: Charge utile pour Lambda, à partir de l'objet APIGatewayProxyRequest (fonctionne dans le nœud)

Créé le 18 mai 2017  ·  3Commentaires  ·  Source: aws/aws-lambda-dotnet

J'ai une question sur ce qui aurait dû être quelque chose de vraiment simple.

Nous avons besoin d'écrire notre Lambda dans .Net Core (C#) qui utilise une ressource API Gateway et essayait d'obtenir des variables personnalisées créées à partir de l'autorisateur personnalisé ou directement à partir du modèle de mappage corporel attaché à la ressource API Gateway (sur la demande d'intégration).

Le problème que nous avons rencontré était que, via le nœud, vous pouvez accéder au paramètre 'event' qui contiendrait l'intégralité de la charge utile json, ce qui signifie que vous pourriez obtenir votre nouvelle variable personnalisée comme suit :
event.requestContext.authorizer.customKey ou event.requestContext.context.customKey .

Le problème est qu'il n'y a aucun moyen d'obtenir ces variables à partir du code C#, en utilisant l'objet de requête [ APIGatewayProxyRequest ]. J'ai discuté avec des ingénieurs d'AWS (nous avons un plan d'affaires), qui ont confirmé (après 3 ou 4 personnes impliquées) qu'il n'y a aucun moyen évident ou possible d'obtenir toute cette charge utile de l'objet de requête pour interrogation, via C # .

C'était un problème avec notre cas particulier, car nous pouvions alors ne pas accéder aux variables personnalisées, ce qui signifiait que nous devions changer de plan.

Je trouve vraiment étrange comment cela peut être réalisable dans un nœud mais pas pris en charge en C #?

Une question Stack Overflow qui aiderait avec un exemple, peut être trouvée ici :
http://stackoverflow.com/questions/43990385/aws-lambda-c-sharp-accessing-custom-context

Cela peut-il être confirmé ?

@normj

feature-request

Commentaire le plus utile

Oui, nous devons étendre APIGatewayProxyRequest pour accéder à l'autorisateur personnalisé.

Une solution de contournement jusque-là consiste à faire en sorte que votre fonction Lambda prenne un System.IO.Stream au lieu d'APIGatewayProxyRequest. Ensuite, vous avez accès au JSON d'origine que vous pouvez analyser vous-même. Vous pouvez récupérer les informations dont vous avez besoin à partir de ce JSON, puis désérialiser JSON en APIGatewayProxyRequest également.

Tous les 3 commentaires

Oui, nous devons étendre APIGatewayProxyRequest pour accéder à l'autorisateur personnalisé.

Une solution de contournement jusque-là consiste à faire en sorte que votre fonction Lambda prenne un System.IO.Stream au lieu d'APIGatewayProxyRequest. Ensuite, vous avez accès au JSON d'origine que vous pouvez analyser vous-même. Vous pouvez récupérer les informations dont vous avez besoin à partir de ce JSON, puis désérialiser JSON en APIGatewayProxyRequest également.

La fermeture est c'est un doublon de https://github.com/aws/aws-lambda-dotnet/issues/98

cette fonctionnalité a-t-elle été ajoutée ? Si oui, pourrais-je obtenir un lien vers de la documentation à ce sujet ?

Cette page vous a été utile?
0 / 5 - 0 notes