从不同的 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 函数配置这两种方法。
我是无服务器架构设计的新手。基本上我想 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 函数配置这两种方法。