从不同的 API 端点调用相同的 Lambda 函数

Invoke same Lambda function from different API endpoint

我是无服务器架构设计的新手。基本上我想 read/update 数据 from/to mongodb 数据库。为此,我创建了 API 具有两个资源( list、update )的网关并创建了两个 lambda 方法( listFunction、updateFunction )。

有什么办法可以用单个 lambda 方法编写并根据 api 网关资源名称执行 list/update?

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

Install and configure MongoDB community edition

一旦您确认 Mongo 数据库实例已成功部署并且 运行,现在您可以编写一个执行 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 网关,您可以使用 API 网关调用此 Lambda 函数。

是的,您可以使用单一函数来处理所有操作。

在 api 网关中 event 你得到资源路径和 http 方法类型。

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

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