【问题标题】:Invoke same Lambda function from different API endpoint从不同的 API 端点调用相同的 Lambda 函数
【发布时间】:2021-06-04 04:25:07
【问题描述】:

我是无服务器架构设计的新手。基本上我想从/向 mongodb 数据库读取/更新数据。为此,我使用两个资源(list、update)创建了 API Gateway,并创建了两个 lambda 方法(listFunction、updateFunction)。

有什么方法可以编写单个 lambda 方法并根据 api 网关资源名称执行列表/更新?

【问题讨论】:

标签: amazon-web-services aws-lambda aws-api-gateway aws-serverless


【解决方案1】:

要创建一个可以在 MongoDB 上执行 CRUD 操作的 Lambda 函数,首先确保将 MongoDB 实例部署到 EC2 实例,如下所述:

Install and configure MongoDB community edition

验证 MongoDB 实例已成功部署并运行后,现在您可以编写一个执行 CRUD 操作的 Lambda 函数。我会使用 Lambda 运行时 Java API 编写 Lambda 函数,然后使用 Mongo Java API 与 MongoDB 集合进行交互。

例如,在您的 Lambda 函数中创建一个 MongoClient 实例。

    private String mongoUri = "mongodb://<ENTER EC2 IP Address>.amazonaws.com:27017" ;
       private MongoClient getConnection() {

       try {
        MongoClient mongoClient = new MongoClient(new MongoClientURI(mongoUri));
        return mongoClient;

    } catch (Exception e) {
        e.getStackTrace();
    }
    return null;
}

现在您可以在 Lambda 函数中执行 CRUD 操作。

如果您想使用 API Gateway,您可以使用 API Gateway 调用此 Lambda 函数。

【讨论】:

    【解决方案2】:

    是的,您可以使用单一功能来为您的所有操作提供服务。

    在 api Gateway event 中获取资源路径和 http 方法类型。

    因此,您可以让if else 块根据处理程序中的路径来处理请求。

    在您的 api 网关中使用新的 lambda 函数配置这两种方法。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      • 2020-08-21
      • 1970-01-01
      • 2019-12-02
      • 1970-01-01
      相关资源
      最近更新 更多