【发布时间】:2018-01-20 01:26:18
【问题描述】:
我目前正在学习如何使用 API Gateway 公开我的 lambda 函数。我按照here 记录的说明创建了一个 API 来触发我的测试 lambda 函数。这是我所做的总结。
- 首先,我使用 hello world 模板创建了一个测试 lambda 函数但没有添加任何触发器。
- 然后我转到 API Gateway 控制台,使用 GET 方法添加了一个资源,该方法指定了 Lambda 函数的集成类型。我在那里输入了我的测试 lambda 函数名称。
好的,所以我在 API Gateway 控制台中测试了上面的解决方案。它工作正常,我只需要通过创建一个阶段来部署它就可以了。
但后来我注意到另一种使用 API Gateway 公开 lambda 的方式。也就是说,通过转到该 lambda 函数并向其添加 API 网关触发器。像下面这样:
它会要求输入我将使用的 API 的 API 名称。这个 API 与我在 API Gateway 控制台下创建的 API 有某种关联。
创建触发器后,测试 lambda 函数现在将有一个如下所示的触发器,并在其下公开一个 https URL。
然后,当我转到 API Gateway 控制台时,我注意到添加了一个新资源。
资源名称是我的测试 lambda 函数的名称,方法是 ANY,我不太明白这个的用途。
通过将上述内容与我之前创建的资源进行比较。上面那个没有 lambda 函数的 ARN 地址,而这个有
所以,我的问题是,
创建 API 并为其添加与 lambda 的集成与使用 API Gateway 中的现有 API 从 lambda 添加触发器有什么区别?
在lambda函数下暴露的https地址(在API网关添加触发器后)可以直接使用吗?
如果将触发器添加到 lambda 将起到相同的作用。那我还需要创建一个stage来部署我的api吗?
【问题讨论】:
标签: aws-lambda aws-api-gateway