因此,根据AWS文档
您可以使用别名ARN,而不是在事件源映射中使用Amazon资源名称(ARN)作为Lambda函数。此方法意味着在升级新版本或回滚到以前的版本时,无需更新事件源映射。
我有AWS lambda函数pets
,我创建了2个别名dev
和prod
指向不同版本的lambda函数。
然后在API网关中我在Integration Request
中使用这个lambda函数。我有两个阶段的API,development
和production
。我希望development
API阶段指向dev
Lambda别名ARN和production
需要指向prod
别名。
当我选择lambda函数作为Integration Type
时,下拉列表显示我在创建lambda函数时先前给出的任何显示名称.
我没有找到lambda函数的任何阶段特定配置。根据我对SO的研究,我必须按照这些步骤部署指向development
别名的dev
阶段
1>去Integration Request
2>选择Lambda函数并将其更改为pets:dev
3>部署到development
阶段
通过在部署之前将Lambda函数更改为production
,对pets:prod
执行相同的步骤。
随着我们的lambda函数的增长,这将成为维护的噩梦。有没有更简单的方法呢?
我找到了 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阶段development
和production
4>在每个API阶段,分别添加值lambdaAlias
和dev
的阶段变量prod
。 stage变量值必须与lambda函数的别名匹配
现在我们不必为每个API部署不断更改lambda别名