我已经编写了两个AWS lambda。一个lambda像这样调用另一个:
payload, err := json.Marshal(request)
if err != nil {
log.Printf("ERROR: could not marshal request [%v] into model.ChildLambdaRequest - %v\n", request, err)
return false
}
log.Printf("--- debug sending payload: %s", payload)
// Invoke Child
result, err := client.Invoke(&lambda.InvokeInput{
FunctionName: aws.String(lambdaName),
Payload: payload,
})
if err != nil {
log.Printf("ERROR: could not invoke Lambda function client [%v] - %v\n", lambdaName, err)
return false
}
子lambda像这样完成:
return model.EventResponse{Success: true}, nil
我知道这是在做两件事:1.)完成执行,并且2.)返回值。有什么办法可以将这两个 Action 分开,以便我可以在顶部返回一个值,但稍后再执行?
最佳答案
是的,您需要将InvocationType: "Event"
传递给Invoke
调用(已记录为here)。默认的调用类型是RequestResponse
,它等待被调用的Lambda的响应。
关于go - Lambda可以调用另一个Lambda,然后在子Lambda完成之前退出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60608516/