【发布时间】:2019-05-29 09:03:04
【问题描述】:
因此根据 AWS 文档
而不是在 Lambda 函数中使用 Amazon 资源名称 (ARN) 事件源映射,您可以使用别名 ARN。这种方法意味着 你不需要更新你的事件源映射,当你 升级新版本或回滚到以前的版本。
我有 AWS lambda 函数 pets 并且我创建了 2 个别名 dev 和 prod 指向不同版本的 lambda 函数。
然后在 API Gateway 中,我在 Integration Request 中使用这个 lambda 函数。我有两个阶段的 API,development 和 production。我希望 development API 阶段指向 dev Lambda 别名 ARN,production 需要指向 prod 别名。
当我选择 lambda 函数作为 Integration Type 时,下拉列表会显示我之前在创建 lambda 函数时给出的任何显示名称..
我没有为 lambda 函数找到任何特定于阶段的配置。根据我对 SO 的研究,我必须按照以下步骤部署指向 dev 别名的 development 阶段
1> 转到Integration Request
2> 选择Lambda函数,改成pets:dev
3> 部署到development 阶段
在部署前将 Lambda 函数更改为 pets:prod,对 production 执行相同的步骤。
随着 lambda 函数的增长,这将是维护的噩梦。有没有更简单的方法?
【问题讨论】:
-
您是否在使用 Cloudformation 或 terraform 等 IaC 工具?如果是这样,我认为如果你有一个统一的命名约定,这不会是一个巨大的痛苦。
-
我正在使用 AWS 控制台。不确定你提到的工具,但我会调查一下
-
通常 terraform 是管理您自己的基础架构的更好选择。如果您的基础架构需要部署到与您帐户不同的 aws 帐户,那么 cloudformation 会更好。
-
IaC 是否允许您在 API 阶段和 Lambda 别名之间进行一对一的映射?
-
你看过serverless吗?
标签: amazon-web-services amazon-ec2 aws-lambda aws-api-gateway