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

dig*_*oel 24 amazon-web-services aws-lambda aws-api-gateway

我在亚马逊的ApiGateway创建了一个资源.它指向Lambda函数.这是受到本机移动应用程序(android和ios)的影响,它已经在野外.

我现在想要修改Lambda函数,但我认为无法将我的ApiGateway资源更改为指向lambda的别名.这是我第一次使用这些技术,我发现在aws控制台中没有简单的机制来管理它.

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

Rya*_*yan 34

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

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

它的类型隐藏在页面的最底部,以"另外,您可以混合和匹配静态名称"

  • 请注意,将Lambda函数名称指定为阶段变量值时,必须手动配置Lambda函数的权限.另见http://docs.aws.amazon.com/apigateway/latest/developerguide/stage-variables.html (5认同)
  • 考虑到我使用 AWS::Serverless::Function 来创建 lambda ,如何使用 CloudFormation 实现此目的? (4认同)
  • 嗨,@ Ray,别忘了授予API方法权限,只需输入`yourlambda:DEV` ...,然后输入其余的envs,一个接一个地应用它们,最后您只需要应用`yourlambda:$ {stageVariables.lambdaAlias }` (3认同)

Jeh*_*Ahn 6

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


dav*_*ang 5

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