如何将AWS API网关阶段指向特定的lambda函数别名?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将AWS API网关阶段指向特定的lambda函数别名?相关的知识,希望对你有一定的参考价值。
因此,根据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别名
以上是关于如何将AWS API网关阶段指向特定的lambda函数别名?的主要内容,如果未能解决你的问题,请参考以下文章
将特定 AWS API Gateway 阶段连接到 CloudFormation 模板中的特定 Lambda 别名
如何使用 Cloudformation 将 lambda 函数附加到现有 API 网关
带有 Cognito 的 AWS Lambda API 网关 - 如何使用 IdentityId 访问和更新 UserPool 属性?