2017-08-20 11 views
0

APIゲートウェイでカスタムオーソライザを設定しようとしています。AWS APIゲートウェイカスタム承認者。ラムダのprincipalIdにアクセスする方法

有効なトークンを持つリクエストを、APIメソッドで指定されたラムダ関数に転送することができます。私は、私の認可者が渡したプリンシパルIDにアクセスする方法を理解できません。

ログ見て、私は雲に次のように取得要求を実行する:

Authorizer result body before parsing: 
{ 
    "principalId": "16", 
    "policyDocument": { 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
     "Condition": {}, 
     "Action": "execute-api:Invoke", 
     "Resource": [ 
      "arn:aws:execute-api:eu-central-1:****:***/null/*/*" 
     ], 
     "Effect": "Allow" 
     }, 
     { 
     "Condition": {}, 
     "Action": "execute-api:Invoke", 
     "Resource": [], 
     "Effect": "Deny" 
     } 
    ] 
    } 
} 

それでは、どのように私は私のラムダ関数でprincipalIdにアクセスできますか?オブジェクトはラムダにも渡されますか?もしそうでなければ、どうすれば少なくともプリンシパルIDを渡すことができますか?

答えて

1

principalIdはラムダ実装に転送できます(デフォルトでは)。あなたのマッピングに応じて、principalIdはコンテキスト変数に現れます。

マッピングテンプレートのprincipalId値には、$ context.authorizer.principalId変数を使用してアクセスできます。この値は、バックエンドに値を渡す場合に便利です。詳細については、$ context変数へのアクセスを参照してください。

Use API Gateway Custom Authorizers

+0

感謝。私はマッピングが全くありませんでした。完全に今働いています。 – ppgcc74

関連する問題