即使将ttl设置为零,AWS APIGateway lambda授权方缓存策略也是如此

时间:2019-01-08 01:17:20

标签: node.js aws-lambda aws-api-gateway

我正在使用具有以下策略生成代码的APIGateway lambda Authorizer,但即使将授权者lambda的生存时间设置为零,似乎仍然出于某些原因而缓存了该策略。

  • 缓存行为是随机的。
  • 我将时间留为零是因为我希望为每个请求都调用授权者。

这是我的代码:

var generatePolicy = function(principalId, effect, resource) {
    var authResponse = {};

    authResponse.principalId = principalId;
    if (effect && resource) {
        var policyDocument = {};
        policyDocument.Version = '2012-10-17'; 
        policyDocument.Statement = [];
        var statementOne = {};
        statementOne.Action = 'execute-api:Invoke'; 
        statementOne.Effect = effect;
        statementOne.Resource = resource.replace(/:function:.+$/, ':function:*');
        policyDocument.Statement[0] = statementOne;
        authResponse.policyDocument = policyDocument;
    }

    authResponse.context = {
        "stringKey": "stringval",
        "numberKey": 123,
        "booleanKey": true
        };
        return authResponse;
    }
}

1 个答案:

答案 0 :(得分:1)

  • 尝试更改statementOne.Resource = '*';即可。
  • 对于有效策略,API网关会缓存返回的策略,并将其与传入令牌或身份源请求参数相关联。