更改我的AWS API网关自定义授权器,每个阶段

问题描述:

我目前有一个API通过我们的API网关,它有多个自定义授权器 - LiveAuthorizerTestAuthorizer更改我的AWS API网关自定义授权器,每个阶段

我想改变我的自定义授权者基于被访问的阶段,就像一个阶段变量。如果我们处于阶段测试阶段,请使用TestAuthorizer,如果在现场使用LiveAuthorizer

从我的研究和这个page这似乎不可能,有什么想法?

PS - 我知道这可以在执行身份验证的Lambda函数中处理,我只是好奇是否有其他方法(类似于舞台变量)。

您可以在单个授权人中使用阶段变量根据阶段指向不同的Lambda函数,但不能指向不同的授权人。

在很多情况下,指向不同的Lambda函数的作品。 Authorizer上的其他设置(如标题源或TTL)不支持阶段变量,因此这些必须由所有阶段共享。

编辑:我应该解释一下,不允许这样做的一个关键原因是,如果在运行时该变量不存在,我们的舞台变量功能as-is不具备后备功能。由于运行授权者至关重要,因此我们必须提出一种类似于具有内置安全机制的阶段变量的不同机制。

+0

您能否解释一下这个问题:“您可以在单个授权人中使用阶段变量来指向不同的Lambda函数” – Hexie

+0

您需要将授权人设置为类似于{stageVariables.authorizerName}的内容,并在舞台中设置阶段变量。如果您使用此配置,则需要手动配置您的Api网关以调用该Lambda函数。 – taskiner

+0

@taskiner请参阅我的最初问题中的网址,根据此页(不到一个月前):http://*.com/questions/41684728/is-it-possible-to-pass-a-stage无法完成的变量到a-custom-authorizer-in-aws-api-gatew? – Hexie