go - Lambda可以调用另一个Lambda,然后在子Lambda完成之前退出吗?

标签 go aws-lambda

我已经编写了两个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/

相关文章:

amazon-web-services - 使用一个 cloudFormation 模板从 zip 文件创建一个 lambda 并创建一个 S3 存储桶

aws-lambda - 如何将 Step 函数的 Arn 传递给 CloudFormation 堆栈中的另一个函数?

go - 隐式类型转换常量与变量

go - Go 中的单向 channel 有什么意义?

go - 写入网络映射的驱动器时出现Fprintf错误

amazon-web-services - 为什么 AWS Lambda 无法正确将图像上传到 S3?

mysql - AWS Lambda - MySQL 缓存

go - Firestore 检索数据并转换为结构

go - 如何仅保留 slice 的最后20个元素

amazon-web-services - 从 NodeJS lambda 中的层请求文件