Я пытаюсь кэшировать политику IAM, возвращаемую лямбдой авторизатора, когда она впервые проверяет токен JWT. Я включил и установил от authorizerResultTtlInSeconds
до 3500
секунд в авторизаторе шлюза API. Тем не менее, я все еще вижу запрос, направляемый в лямбда-функцию Authorizer в течение времени кэширования.
Мой скрипт node.js выглядит следующим образом:
const jwt = require('jsonwebtoken');
const jwksClient = require('jwks-rsa');
const keyClient = jwksClient({
jwksUri: process.env.JWKS_URI
})
const allow = {
"principalId": "user",
"policyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Action": "execute-api:Invoke",
"Effect": "Allow",
"Resource": process.env.RESOURCE // RESOURCE = *
}
]
}
}
const unauthorized = {
"error": "Unauthorized",
}
//excluded verificationJWTOptions object and getSigningKey function for simplicity
function validateJWTToken(token, callback) {
jwt.verify(token, getSigningKey, verificationJWTOptions, (error) => {
if (error) {
callback(unauthorized)
} else {
callback(null, allow)
}
})
}
exports.handler = (event, context, callback) => {
const token = extractTokenFromHeader(event);
validateJWTToken(token, callback);
}
Не уверен, что я упускаю. Любая помощь приветствуется!
START RequestId
,END RequestId
иREPORT RequestId
(и никакой другой информации). - person neha   schedule 27.02.2020