我在Amazon的ApiGateway中创建了一个资源,它指向一个Lambda函数。 现在,一个已经上线的本地移动应用程序(Android和iOS)正在访问它。
现在我想修改Lambda函数,但我看不到任何改变我的ApiGateway资源指向lambda别名的方法。这是我第一次使用这些技术,而我在AWS控制台中没有找到简单的机制来管理这个问题。
如何修改我的ApiGateway资源以指向我的lambda别名,以便我可以编辑trunk而不影响现有客户端?
我在Amazon的ApiGateway中创建了一个资源,它指向一个Lambda函数。 现在,一个已经上线的本地移动应用程序(Android和iOS)正在访问它。
现在我想修改Lambda函数,但我看不到任何改变我的ApiGateway资源指向lambda别名的方法。这是我第一次使用这些技术,而我在AWS控制台中没有找到简单的机制来管理这个问题。
如何修改我的ApiGateway资源以指向我的lambda别名,以便我可以编辑trunk而不影响现有客户端?
在“集成类型” ->“Lambda函数”下,您需要添加对阶段变量的引用MyLambdaFuntionName:$ {stageVariables.lambdaAlias}
,然后根据每个阶段相应地在“阶段变量”选项卡中设置lambdaAlias
(如lambdaAlias = dev,lambdaAlias = prod等)。
此处有一个带有截图的示例:https://aws.amazon.com/blogs/compute/using-api-gateway-stage-variables-to-manage-lambda-functions/
这个示例有点隐藏在页面底部,从“或者,您可以混合和匹配静态名称”开始。
MyLambdaFunctionName
它可以工作,但是如果我使用 MyLambdaFuntionName:${stageVariables.lambdaAlias}
就会出现 500 错误。 - Rayyourlambda:DEV
... 和其余 envs,逐个应用它们,最后你只需运行yourlambda:${stageVariables.lambdaAlias}
。 - John Jang对于后来的谷歌用户,要小心添加正确别名的权限,例如yourfunc:prod而不仅仅是yourfunc。这意味着,如果您计划使用3个别名来调用Lambda函数,则必须添加其中的3个。
对于我的情况,我会直接添加Lambda函数的ARN来替换Lambda名称。这样做对我而言可行,无需添加{}符号。