使用 nodejs 添加边到使用 gremlin 的 aws neptune 时 Lambda 超时
Lambda timeout when adding an edge using nodejs to aws neptune using gremlin
我们正在尝试在 Lambda 和 aws neptune 中使用 nodejs 运行 在两个顶点之间添加一条边。
我们可以很容易地添加一个顶点,但是当我们尝试添加一条边时,我们的 Lambda 会超时。我们的超时设置为 20 秒。
这是代码。
async function updateDoc (db, dataTmp, now, id, callback, logData, errorData) {
try {
console.log('inside updateDoc function')
console.log(dataTmp)
var user1 = await g.V().hasLabel('user').has('userId', dataTmp.userId).valueMap().unfold().toList()
console.log('user1', user1)
var user2 = await g.V().hasLabel('user').has('userId', dataTmp.trustedUserId).valueMap().unfold().toList()
console.log('user2', user2)
const edgeAdded = await g.V().hasLabel('user').has('userId', dataTmp.userId).as('u').V().hasLabel('user').has('userId', dataTmp.trustedUserId).as('tu').addE('trust').from('u').to('tu').next()
console.log('edgeAdded making asynch', edgeAdded)
// dc.close()
return callback(null)
} catch (error) {
return callback(null)
}
}
这是 lambda 的输出
{8 项
"type":"AddTrustedUser"
"userId":"5ed1cd97ee7ac30008b86a8c"
"trustedUserId":"5ed1cd98ee7ac30008b86a8d"
"dupId":"r54sw17ND"
"time":"2020-05-30T03:06:02.632Z"
"initTime":"2020-05-30T03:06:02.632Z"
"lastTime":"2020-05-30T03:06:02.632Z"
"logsGroupName":"AddTrustedUser"
}
用户 1 [
地图{'firstName'=>['jaat']},
地图{ 'userId' => [ '5ed1cd97ee7ac30008b86a8c' ] }
]
用户 2 [
地图{'firstName'=>['maat']},
地图{ 'userId' => [ '5ed1cd98ee7ac30008b86a8d' ] }
]
报告持续时间:20020.15 毫秒计费持续时间:20000 毫秒内存大小:1024 MB 使用的最大内存:103 MB 初始化持续时间:745.55 毫秒 [+20021ms]
3 分钟前 cafbd19c-7b7a-4acb-b3fb-134bb51f054f 任务在 20.02 秒后超时 [+20021ms]
关于我们做错了什么的任何指示。
将 from() 更改为 from_() 解决了这个问题。
tinkerpop.apache.org/docs/current/reference/#from-step
我们正在尝试在 Lambda 和 aws neptune 中使用 nodejs 运行 在两个顶点之间添加一条边。 我们可以很容易地添加一个顶点,但是当我们尝试添加一条边时,我们的 Lambda 会超时。我们的超时设置为 20 秒。
这是代码。
async function updateDoc (db, dataTmp, now, id, callback, logData, errorData) {
try {
console.log('inside updateDoc function')
console.log(dataTmp)
var user1 = await g.V().hasLabel('user').has('userId', dataTmp.userId).valueMap().unfold().toList()
console.log('user1', user1)
var user2 = await g.V().hasLabel('user').has('userId', dataTmp.trustedUserId).valueMap().unfold().toList()
console.log('user2', user2)
const edgeAdded = await g.V().hasLabel('user').has('userId', dataTmp.userId).as('u').V().hasLabel('user').has('userId', dataTmp.trustedUserId).as('tu').addE('trust').from('u').to('tu').next()
console.log('edgeAdded making asynch', edgeAdded)
// dc.close()
return callback(null)
} catch (error) {
return callback(null)
}
}
这是 lambda 的输出
{8 项 "type":"AddTrustedUser"
"userId":"5ed1cd97ee7ac30008b86a8c"
"trustedUserId":"5ed1cd98ee7ac30008b86a8d"
"dupId":"r54sw17ND"
"time":"2020-05-30T03:06:02.632Z"
"initTime":"2020-05-30T03:06:02.632Z"
"lastTime":"2020-05-30T03:06:02.632Z"
"logsGroupName":"AddTrustedUser" }
用户 1 [
地图{'firstName'=>['jaat']},
地图{ 'userId' => [ '5ed1cd97ee7ac30008b86a8c' ] }
]
用户 2 [
地图{'firstName'=>['maat']},
地图{ 'userId' => [ '5ed1cd98ee7ac30008b86a8d' ] }
]
报告持续时间:20020.15 毫秒计费持续时间:20000 毫秒内存大小:1024 MB 使用的最大内存:103 MB 初始化持续时间:745.55 毫秒 [+20021ms] 3 分钟前 cafbd19c-7b7a-4acb-b3fb-134bb51f054f 任务在 20.02 秒后超时 [+20021ms]
关于我们做错了什么的任何指示。
将 from() 更改为 from_() 解决了这个问题。 tinkerpop.apache.org/docs/current/reference/#from-step