本当に単純なものにすべきだったのかという質問があります。
APIGatewayリソースを使用している.NetCore(C#)でLambdaを作成する必要があり、カスタムオーソライザーから、またはAPI Gatewayのリソースに添付されたボディマッピングテンプレートから直接作成されたカスタム変数を取得しようとしました(統合リクエスト)。
私たちが遭遇した問題は、ノードを介して、jsonペイロード全体を含む「event」パラメーターにアクセスできることでした。つまり、次のように新しいカスタム変数を取得できます。
event.requestContext.authorizer.customKey
またはevent.requestContext.context.customKey
。
問題は、[ APIGatewayProxyRequest
]リクエストオブジェクトを使用して、C#コード内からこれらの変数を取得する方法がないことです。 AWSのエンジニア(ビジネスプランがあります)と話をしました。彼らは(3人または4人が関与した後)、C#を介して問い合わせのリクエストオブジェクトからこのペイロード全体を取得する明白なまたは可能な方法がないことを確認しました。
これは私たちの特定のケースの問題でした。その場合、カスタム変数にアクセスできなかったため、計画を変更する必要がありました。
ノード内で達成できるが、C#では対応できない方法は本当に奇妙だと思いますか?
例に役立つスタックオーバーフローの質問は、次の場所にあります。
http://stackoverflow.com/questions/43990385/aws-lambda-c-sharp-accessing-custom-context
これは確認できますか?
@normj
はい、カスタムオーソライザーにアクセスするには、APIGatewayProxyRequestを拡張する必要があります。
それまでの回避策は、Lambda関数にAPIGatewayProxyRequestではなくSystem.IO.Streamを取り込むことです。 次に、自分で解析できる元のJSONにアクセスできます。 そのJSONから必要な情報を取得し、JSONをAPIGatewayProxyRequestに逆シリアル化することもできます。
この機能は追加されましたか? はいの場合、その周りのいくつかのドキュメントへのリンクを取得できますか?
最も参考になるコメント
はい、カスタムオーソライザーにアクセスするには、APIGatewayProxyRequestを拡張する必要があります。
それまでの回避策は、Lambda関数にAPIGatewayProxyRequestではなくSystem.IO.Streamを取り込むことです。 次に、自分で解析できる元のJSONにアクセスできます。 そのJSONから必要な情報を取得し、JSONをAPIGatewayProxyRequestに逆シリアル化することもできます。