因此,我试图在API Gateway中设置自定义授权者。
我可以得到它,以将具有有效 token 的请求转发到API方法中指定的lambda函数。我无法弄清楚如何访问授权者传递的principalId。
执行请求时,我会在Cloud监视日志中获得以下内容:
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"
}
]
}
}
那么,如何在lambda函数中访问principalId?该对象是否甚至传递给了lambda?如果不是,那么至少如何传递principalId?
最佳答案
可以(默认情况下)将principalId转发给Lambda实现。根据您的映射,principalId应该出现在上下文变量中。
Use API Gateway Custom Authorizers