是否可以指示 AWS Custom Authorizers 根据阶段变量调用 AWS Lambdas?

Is it possible to instruct AWS Custom Authorizers to call AWS Lambdas based on Stage Variables?

我正在 API 网关上像这样映射 Lambda 集成:

${stageVariables.ENV_CHAR}-somelambda

所以我可以有 d-somelambdas-somelambda 等。环境的多个版本,全部同时进行。这很好用。

但是,我正在使用自定义授权者,我有d-authorizer-jwtd-authorizer-apikey

当我在DEV阶段部署API时,一切正常。但是当我部署到 PROD 阶段时,所有 lambda 调用都动态地正确指向 *p-lambdas*,自定义授权方除外,它仍然指向 "d" (DEV) 并调用开发后端以进行所需的验证(它缓存,但有时会检查数据库)。

请注意,我并不一定要像其他人所要求的那样传递阶段变量,我只想从集成请求提供的正确配置中调用正确的 Lambda。通过访问阶段变量作为解决此问题的最终方法,我需要改变我的方法并为所有环境设置一个 lambda,并根据阶段变量动态接触所需的后端……不太好。

感谢

已解决。它就像我描述的那样工作。有一些注意事项: a) 您需要事先授予对该 lambda 的访问权限 b) 由于 UI 故障,您无法测试授权方...它不要求 StageVar,因此您永远无法到达 lambda c) 您需要部署 API 以在特定阶段更新授权者

不知道为什么它在我的第一次尝试中不起作用。