【问题标题】:How to properly connect AWS API gateway -> Lambda -> DAX -> DynamoDB?如何正确连接 AWS API 网关 -> Lambda -> DAX -> DynamoDB?
【发布时间】:2017-12-21 01:46:08
【问题描述】:

我使用 CloudFormation 模板让一切工作得非常好,该模板创建了一个 API 网关,代理集成到 Lambda 函数,进而操作各种 DynamoDB 表。

不过,最近我开始体验到 DynamoDB 的缺点,它是读/写工作者。所以,我想,我将启用 DynamoDB DAX 来加快其缓存速度。

我在设置 CloudFormation 模板以构建 DAX 集群时没有遇到任何问题。

但是当我尝试从 Lambda 函数连接到 DAX 时,我收到了诸如 NoRouteException: not able to resolve address 之类的错误。搜了一圈,原来DAX在VPC里面,Lambda函数当然不能访问。 Lambda 函数也必须在 VPC 中。

但是如果我将 Lambda 函数放在 VPC 中,那么 API Gateway 可能无法通过代理集成访问 Lambda 函数。

那么,如何在 VPC 内编排 API Gateway -> Lambda -> DAX?

常见的 API Gateway -> Lambda 模式无法轻松使用 DAX,这似乎很荒谬。 VPC 要求是一个真正的杀手,这实际上意味着 DAX 主要只对 EC2 实例有用,而不是 API -> Lambda。

有什么想法吗?

【问题讨论】:

    标签: amazon-dynamodb aws-lambda aws-api-gateway amazon-dynamodb-dax


    【解决方案1】:

    但是如果我将 Lambda 函数放在 VPC 中,那么 API Gateway 可能无法通过代理集成访问 Lambda 函数。

    这是不正确的。 API Gateway 通过使用 Lambda 服务 API 调用 Lambda 函数来访问它们,代理与否,VPC 与否。

    API Gateway 不直接连接到 Lambda 函数容器——因此容器放置(在 VPC 内部或外部)不会影响 API Gateway 实际调用函数的能力——它会影响函数可以访问,但不知道如何访问

    代理集成会修改有效负载的行为和处理,但不会修改 API Gateway 实际连接到 Lambda 服务以调用函数和接收响应的方式。

    【讨论】:

    • 谢谢,这很有帮助。不得不在 VPC(以及随之而来的 ENI 管理)中设置 Lambda 以使用 DAX 仍然令人沮丧。它为 AWS 建议的只是常规 DynamoDB 访问的“插入式”替代品增加了巨大的额外复杂性。
    猜你喜欢
    • 1970-01-01
    • 2016-10-25
    • 2018-07-10
    • 1970-01-01
    • 2019-05-02
    • 2019-06-07
    • 1970-01-01
    • 2018-07-24
    • 2019-05-10
    相关资源
    最近更新 更多