在 API Gateway 中创建访问 lambda 函数的方法与在 lambda 函数中添加 API Gateway 触发器的区别

fin*_*tic 2 aws-lambda aws-api-gateway

我目前正在学习如何使用 API Gateway 公开我的 lambda 函数。我按照此处记录的说明创建了一个 API 来触发我的测试 lambda 函数。这是我所做的总结。

  1. 首先,我使用 hello world 模板创建了一个测试 lambda 函数,但没有添加触发器
  2. 然后我转到 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 地址,而这个有

在此处输入图片说明

所以,我的问题是,

  1. 创建 API 并为它添加与 lambda 的集成以及从 lambda 添加触发器与来自 API Gateway 的现有 API 之间有什么区别?

  2. lambda函数下暴露的https地址(从API网关添加触发器后)可以直接使用吗?

  3. 如果将触发器添加到 lambda 将起到相同的作用。那么我还需要创建一个阶段来部署我的 api 吗?

das*_*mug 5

  1. 创建 API 并为它添加与 lambda 的集成以及从 lambda 添加触发器与来自 API Gateway 的现有 API 之间有什么区别?

这是创建 API Gateway-Lambda 集成的两种不同方式。如果您以相同的方式配置它们,则没有区别。

  1. lambda函数下暴露的https地址(从API网关添加触发器后)可以直接使用吗?

是的,您可以直接使用它。

  1. 如果将触发器添加到 lambda 将起到相同的作用。那么我还需要创建一个阶段来部署我的 api 吗?

是的。URL 来自舞台,因此您至少需要一个。