每个阶段更改我的 AWS API 网关自定义授权方
Change my AWS API Gateway Custom Authorizer per stage
我目前有一个 API 通过我们的 API 网关,它附加了多个自定义授权器 - LiveAuthorizer
和 TestAuthorizer
。
我想根据正在访问的阶段更改我的自定义授权方,就像阶段变量一样。如果我们在 stage Test 中,使用 TestAuthorizer
,如果在 live 中使用 LiveAuthorizer
.
根据我的研究和这个 似乎不可能,有什么想法吗?
PS - 我知道这可以在执行身份验证的 Lambda 函数中处理,我只是好奇是否有另一种方法(类似于阶段变量)。
您可以在单个授权者中使用阶段变量根据阶段指向不同的 Lambda 函数,但不能指向不同的授权者。
在很多情况下,指向不同的 Lambda 函数是可行的。授权方的其他设置(如 header 源或 TTL)不支持阶段变量,因此所有阶段都必须共享这些设置。
编辑:我应该解释一下,不允许这样做的一个关键原因是如果在运行时变量不存在,我们的阶段变量功能 as-is 没有回退。由于 运行 授权方至关重要,因此我们必须想出一种不同的机制,类似于具有 built-in 安全机制的阶段变量。
我目前有一个 API 通过我们的 API 网关,它附加了多个自定义授权器 - LiveAuthorizer
和 TestAuthorizer
。
我想根据正在访问的阶段更改我的自定义授权方,就像阶段变量一样。如果我们在 stage Test 中,使用 TestAuthorizer
,如果在 live 中使用 LiveAuthorizer
.
根据我的研究和这个
PS - 我知道这可以在执行身份验证的 Lambda 函数中处理,我只是好奇是否有另一种方法(类似于阶段变量)。
您可以在单个授权者中使用阶段变量根据阶段指向不同的 Lambda 函数,但不能指向不同的授权者。
在很多情况下,指向不同的 Lambda 函数是可行的。授权方的其他设置(如 header 源或 TTL)不支持阶段变量,因此所有阶段都必须共享这些设置。
编辑:我应该解释一下,不允许这样做的一个关键原因是如果在运行时变量不存在,我们的阶段变量功能 as-is 没有回退。由于 运行 授权方至关重要,因此我们必须想出一种不同的机制,类似于具有 built-in 安全机制的阶段变量。