私はAWS API Gatewayのラムダ認定を正常に実装しましたが、いくつかのカスタムプロパティをNode.jsエンドポイントに渡したいと思います。APIゲートウェイ認可者コンテキストをHTTP統合に渡す方法
マイ・オーソライザーからの私の出力は、以下に示すように、AWSで指定されたフォーマットに従います。私の場合は
{
"principalId": "yyyyyyyy",
"policyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Action": "execute-api:Invoke",
"Effect": "Allow|Deny",
"Resource": "arn:aws:execute-api:<regionId>:<accountId>:<appId>/<stage>/<httpVerb>/[<resource>/<httpVerb>/[...]]"
}
]
},
"context": {
"company_id": "123",
...
}
}
、context
は、私は私のノードのエンドポイントに沿って通過したいことを、company_id
のように、いくつかのパラメータが含まれています。
私はラムダエンドポイントを使用していた場合、私はこれをマッピングテンプレートで行われていることを理解し、このような何か:ラムダは次のように選択されている場合
{
"company_id": "$context.authorizer.company_id"
}
しかし、ボディマッピングテンプレートは、統合要求の下でのみ使用可能です統合タイプ。 HTTPが選択されていない場合
要するに、company_id
をLambda認可者からNode APIに渡すにはどうすればよいですか?
これらの値をHTTPリクエストヘッダーにドロップするとどうなりますか? –
@ Michael-sqlbotこれは私がやりたいことです。ヘッダー、URLまたは本文は本当に重要ではありません。何でも良いでしょう。問題はどうやってそれをするのだろうか? –
統合リクエストにヘッダを作成し、次に例を指定します。 'context.identity.whatever' *を先頭に' $ 'を付けずに*指定します。私はカスタムオーソライザを使用していませんが、これはコンテキストオブジェクト内の他のものにアクセスし、それらを原点に転送されるヘッダにドロップしています...例えば、 'context.stage'と' context.apiId 'と彼らは両方ともHTTPヘッダーとして期待どおりに転送します。それを試して? –