是否可以在连接到 API 网关的 Lambda 上使用 AWS KPL

ygk

我正在尝试在 AWS 服务之上构建数据收集管道。总体架构如下;

总之,系统应该从 API 网关 (1) 获取事件(每个事件一个请求),并且数据应该写入 Kinesis (2)。

我期待每秒约 10 万个事件。我的问题与 Lambda 函数上的 KPL 使用有关。在第 2 步中,我计划使用 KPL 编写一个 Lambda 方法,以在 Kinesis 上以高吞吐量写入事件。但我不确定这是否可行,因为 API Gateway 分别为每个事件调用 lambda 函数。

在这种架构中使用 KPL 是否可能/合理,还是我应该使用 Kinesis Put API?

        1                              2                              3                             4
+----------------+             +----------------+             +----------------+            +----------------+
|                |             |                |             |                |            |                |
|                |             |                |             |                |            |                |
|  AWS API GW    +-----------> |  AWS Lambda    +-----------> |  AWS Kinesis   +----------> |  AWS Lambda    |
|                |             |  Function with |             |  Streams       |            |                |
|                |             |  KPL           |             |                |            |                |
|                |             |                |             |                |            |                |
+----------------+             +----------------+             +----------------+            +-----+-----+----+
                                                                                                  |     |
                                                                                                  |     |
                                                                                                  |     |
                                                                                                  |     |
                                                                                                  |     |
                                                                                5                 |     |              6
                                                                         +----------------+       |     |      +----------------+
                                                                         |                |       |     |      |                |
                                                                         |                |       |     |      |                |
                                                                         |  AWS S3        <-------+     +----> |  AWS Redshift  |
                                                                         |                |                    |                |
                                                                         |                |                    |                |
                                                                         |                |                    |                |
                                                                         +----------------+                    +----------------+

我也在考虑直接写入 S3 而不是从 api-gw 调用 lambda 函数。如果第一个架构不合理,这可能是一个解决方案,但在这种情况下,我会延迟将数据写入 kinesis

        1                                2                         3                              4                             5
+----------------+               +----------------+        +----------------+             +----------------+            +----------------+
|                |               |                |        |                |             |                |            |                |
|                |               |                |        |                |             |                |            |                |
|  AWS API GW    +----------->   |  AWS Lambda    +------> |  AWS Lambda    +-----------> |  AWS Kinesis   +----------> |  AWS Lambda    |
|                |               |  to write data |        |  Function with |             |  Streams       |            |                |
|                |               |  to S3         |        |  KPL           |             |                |            |                |
|                |               |                |        |                |             |                |            |                |
+----------------+               +----------------+        +----------------+             +----------------+            +-----+-----+----+
                                                                                                                              |     |
                                                                                                                              |     |
                                                                                                                              |     |
                                                                                                                              |     |
                                                                                                                              |     |
                                                                                                            6                 |     |              7
                                                                                                     +----------------+       |     |      +----------------+
                                                                                                     |                |       |     |      |                |
                                                                                                     |                |       |     |      |                |
詹斯·沃尔特

我不认为在这里使用 KPL 是正确的选择。KPL 的关键概念是,记录在客户端收集,然后作为批处理操作发送到 Kinesis。由于 Lambda 每次调用都是无状态的,因此很难存储用于聚合的记录(在将其发送到 Kinesis 之前)。

我认为您应该查看以下 AWS 文章,其中解释了如何将 API-Gateway 直接连接到 Kinesis。这样,您可以避免仅转发您的请求的额外 Lambda。

创建 API Gateway API 作为 Kinesis 代理

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过AWS Lambda和API网关使用RSS feed

来自分类Dev

AWS Lambda + API网关POST错误

来自分类Dev

通过AWS Lambda / API网关返回JSONP

来自分类Dev

AWS Lambda + API网关POST错误

来自分类Dev

从AWS API网关执行Lambda的脚本权限

来自分类Dev

Repl.it与AWS Lambda + API网关

来自分类Dev

AWS SQS + API网关+ Lambda + DB

来自分类Dev

AWS API 网关和 LAMBDA 函数

来自分类Dev

是否可以通过Amazon API网关异步启动长时间运行的AWS Lambda流程?

来自分类Dev

是否可以在没有网关API的情况下直接调用AWS Lambda?

来自分类Dev

AWS Lambda-在lambda函数中获取API网关路径

来自分类Dev

AWS Lambda,AWS API网关和保护REST端点

来自分类Dev

使用 API 网关、AWS LAMBDA 和 S3 从浏览器检索文件

来自分类Dev

通过 Lambda 和 API 网关从 AWS S3 下载图像——使用 fetch 类

来自分类Dev

使用Api网关和Lambda进行授权

来自分类Dev

在API网关终端节点之后本地测试AWS Lambda

来自分类Dev

AWS Lambda网关API给出错误消息

来自分类Dev

AWS Lambda HTTP API网关集成无法实现CORS

来自分类Dev

为什么AWS Lambda,API网关返回CORS错误

来自分类Dev

从AWS Lambda函数创建CloudFormation堆栈,并传递API网关参数

来自分类Dev

AWS-从Lambda名称获取API-网关apiID

来自分类Dev

如何使用AWS_PROXY模式通过API网关和CloudFront通过AWS Lambda返回二进制内容?

来自分类Dev

是否可以使用AWS Amplify的GraphQL API设置连接到本地Dynamo数据库?

来自分类Dev

是否有任何AWS服务可以使API网关等待,直到它从另一个AWS服务(除了Lambda)接收数据为止?

来自分类Dev

在API网关中的部署API上触发Lambda

来自分类Dev

AWS API网关ARN

来自分类Dev

AWS Api网关:

来自分类Dev

AWS API网关超时

来自分类Dev

lambda 的 AWS 网关映射路径

Related 相关文章

  1. 1

    通过AWS Lambda和API网关使用RSS feed

  2. 2

    AWS Lambda + API网关POST错误

  3. 3

    通过AWS Lambda / API网关返回JSONP

  4. 4

    AWS Lambda + API网关POST错误

  5. 5

    从AWS API网关执行Lambda的脚本权限

  6. 6

    Repl.it与AWS Lambda + API网关

  7. 7

    AWS SQS + API网关+ Lambda + DB

  8. 8

    AWS API 网关和 LAMBDA 函数

  9. 9

    是否可以通过Amazon API网关异步启动长时间运行的AWS Lambda流程?

  10. 10

    是否可以在没有网关API的情况下直接调用AWS Lambda?

  11. 11

    AWS Lambda-在lambda函数中获取API网关路径

  12. 12

    AWS Lambda,AWS API网关和保护REST端点

  13. 13

    使用 API 网关、AWS LAMBDA 和 S3 从浏览器检索文件

  14. 14

    通过 Lambda 和 API 网关从 AWS S3 下载图像——使用 fetch 类

  15. 15

    使用Api网关和Lambda进行授权

  16. 16

    在API网关终端节点之后本地测试AWS Lambda

  17. 17

    AWS Lambda网关API给出错误消息

  18. 18

    AWS Lambda HTTP API网关集成无法实现CORS

  19. 19

    为什么AWS Lambda,API网关返回CORS错误

  20. 20

    从AWS Lambda函数创建CloudFormation堆栈,并传递API网关参数

  21. 21

    AWS-从Lambda名称获取API-网关apiID

  22. 22

    如何使用AWS_PROXY模式通过API网关和CloudFront通过AWS Lambda返回二进制内容?

  23. 23

    是否可以使用AWS Amplify的GraphQL API设置连接到本地Dynamo数据库?

  24. 24

    是否有任何AWS服务可以使API网关等待,直到它从另一个AWS服务(除了Lambda)接收数据为止?

  25. 25

    在API网关中的部署API上触发Lambda

  26. 26

    AWS API网关ARN

  27. 27

    AWS Api网关:

  28. 28

    AWS API网关超时

  29. 29

    lambda 的 AWS 网关映射路径

热门标签

归档