因此,根据AWS文档
不是在Amazon Lambda函数中使用Amazon资源名称(ARN) 事件源映射,可以使用别名ARN。这种方法意味着 您不需要在更新事件源映射时 推广新版本或回滚到以前的版本。
我有AWS Lambda函数pets
,并且创建了两个别名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函数的增长,这将成为维护的噩梦。有没有更简单的方法?
答案 0 :(得分: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阶段development
和production
4>在每个API阶段中,分别添加具有值lambdaAlias
和dev
的阶段变量prod
。阶段变量值必须与lambda函数的别名匹配
现在我们不必为每个API部署更改lambda别名