如何将 ApiGateway 指向特定的 Lambda 别名

How to point ApiGateway to a specific Lambda alias

我在 Amazon 的 ApiGateway 中创建了一个资源。它指向一个 Lambda 函数。这是由已经在野外的本机移动应用程序(android 和 ios)造成的。

我现在想修改 Lambda 函数,但我看不出有什么办法可以更改我的 ApiGateway 资源以指向 lambda 的别名。这是我第一次使用这些技术中的任何一种,我发现没有简单的机制可以在 aws 控制台中管理它。

如何修改我的 ApiGateway 资源以指向我的 lambda 别名,以便我可以在不影响现有客户端的情况下编辑主干?

在 Integration Type -> Lambda Function 下,您需要添加对阶段变量 MyLambdaFuntionName:${stageVariables.lambdaAlias} 的引用,然后为每个阶段在 Stage Variables 选项卡中相应地设置 lambdaAlias(lambdaAlias=dev, lambdaAlias=产品等)

此处有一个带屏幕截图的示例:https://aws.amazon.com/blogs/compute/using-api-gateway-stage-variables-to-manage-lambda-functions/

它有点隐藏在以 "Alternatively, you can mix and match static names"

开头的页面底部

对于后来的 googler,请注意使用正确的别名添加权限,例如 yourfunc:prod 而不仅仅是 yourfunc。这意味着如果您计划使用 3 个别名来调用 lambda 函数,则必须添加其中的 3 个。

对于我的情况,我会直接添加 lambda 函数的 arn 来替换 Lambda 名称。这对我有用,无需添加 {} 符号。

在 Api 网关控制台上,使用 ARN 而不是 lambda 函数名称。