我在 Amazon 的 Lambda 服务上上传了以下 Java 类:
public class DevicePutHandler implements RequestHandler<DeviceRequest, Device> {
private static final Logger log = Logger.getLogger(DevicePutHandler.class);
public Device handleRequest(DeviceRequest request, Context context) {
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.defaultClient();
DynamoDBMapper mapper = new DynamoDBMapper(client);
if (request == null) {
log.info("The request had a value of null.");
return null;
}
log.info("Retrieving device");
Device deviceRetrieved = mapper.load(Device.class, request.getDeviceId());
log.info("Updating device properties");
deviceRetrieved.setBuilding(request.getBuilding());
deviceRetrieved.setMotionPresent(request.getMotionPresent());
mapper.save(deviceRetrieved);
log.info("Updated device has been saved");
return deviceRetrieved;
}
}
Run Code Online (Sandbox Code Playgroud)
我还有一个执行角色集,可以让我完全控制 DynamoDB。我的权限应该完全没有问题,因为我以这种完全相同的方式对使用 Lambda 和 DynamoDB 的其他项目使用了完全相同的权限(唯一的区别是不同的请求类型)。 …