如何将AWS API网关阶段指向特定的lambda函数别名?

问题描述 投票:2回答:1

因此,根据AWS文档

您可以使用别名ARN,而不是在事件源映射中使用Amazon资源名称(ARN)作为Lambda函数。此方法意味着在升级新版本或回滚到以前的版本时,无需更新事件源映射。

我有AWS lambda函数pets,我创建了2个别名devprod指向不同版本的lambda函数。

然后在API网关中我在Integration Request中使用这个lambda函数。我有两个阶段的API,developmentproduction。我希望development API阶段指向dev Lambda别名ARN和production需要指向prod别名。

当我选择lambda函数作为Integration Type时,下拉列表显示我在创建lambda函数时先前给出的任何显示名称.enter image description here

我没有找到lambda函数的任何阶段特定配置。根据我对SO的研究,我必须按照这些步骤部署指向development别名的dev阶段

1>去Integration Request 2>选择Lambda函数并将其更改为pets:dev 3>部署到development阶段

通过在部署之前将Lambda函数更改为production,对pets:prod执行相同的步骤。

随着我们的lambda函数的增长,这将成为维护的噩梦。有没有更简单的方法呢?

amazon-web-services amazon-ec2 aws-lambda aws-api-gateway
1个回答
3
投票

我找到了 https://aws.amazon.com/blogs/compute/using-api-gateway-stage-variables-to-manage-lambda-functions/

以下是我遵循的步骤

1>创建lambda函数后,为lambda函数创建2个别名。 dev指向$latest版本和prod指向您要在产品中使用的特定版本

2>然后转到API网关控制台 - >集成请求 - > Lambda函数 - >并输入pets:${stageVariables.lambdaAlias},其中pets是我的函数名称,lambdaAlias是我们必须在每个API阶段添加的阶段变量

3>将API部署到新的API阶段developmentproduction

4>在每个API阶段,分别添加值lambdaAliasdev的阶段变量prod。 stage变量值必须与lambda函数的别名匹配

enter image description here

现在我们不必为每个API部署不断更改lambda别名

© www.soinside.com 2019 - 2024. All rights reserved.