我在亚马逊的ApiGateway中创建了一个资源。 它指向一个 Lambda 函数。 这正受到已经在野外的原生移动应用程序(android和ios)的攻击。
我现在想修改 Lambda 函数,但我认为无法将我的 ApiGateway 资源更改为指向 lambda 的别名。 这是我第一次使用这些技术,我认为没有简单的机制可以在 aws 控制台中管理它。
如何修改我的 ApiGateway 资源以指向我的 lambda 别名,以便我可以在不影响现有客户端的情况下编辑中继?
在集成类型 -> Lambda 函数下,您需要添加对阶段变量MyLambdaFuntionName:${stageVariables.lambdaAlias}
的引用,然后为每个阶段相应地设置阶段变量选项卡中的lambdaAlias
(lambdaAlias=dev、lambdaAlias=prod 等)
这里有一个带有屏幕截图的示例:https://aws.amazon.com/blogs/compute/using-api-gateway-stage-variables-to-manage-lambda-functions/
它隐藏在页面的最底部,以"或者,您可以混合和匹配静态名称"开头
对于后来的谷歌用户,请注意使用正确的别名添加权限,例如 yourfunc:prod 而不仅仅是您的。这意味着如果您打算使用 3 个别名来调用 lambda 函数,则必须添加其中的 3 个。
在 API 网关控制台上,使用 ARN 而不是 lambda 函数名称。
就我而言,我将直接添加 lambda 函数的 arn 来替换 Lambda 名称。这对我有用,而无需添加 {} 表示法。