Go语言 AWS Lambda使用SQS报告批次项目故障

y1aodyip  于 2023-04-18  发布在  Go
关注(0)|答案(1)|浏览(104)

Lambda响应是

{
  "errorMessage": "handler returns a single value, but it does not implement error",
  "errorType": "errorString"
}

参考aws文档
该示例显示,只需要返回没有错误的失败消息。
我已经在Lambda触发器中启用了Report batch item failure选项。
我用lambda写的golang代码是这样的

type SQSBatchResponse struct {
    BatchItemFailures []SQSMessage 
}

type SQSMessage struct {
    MessageId string
}

func Handler(_ context.Context, sqsEvent events.SQSEvent) (sqsResponse SQSBatchResponse) {
    // code
    return sqsResponse
}
gfttwv5a

gfttwv5a1#

看来,响应结构应该是这样的。
https://pkg.go.dev/github.com/aws/aws-lambda-go/events#SQSEventResponse

type SQSEventResponse struct {
    BatchItemFailures []SQSBatchItemFailure `json:"batchItemFailures"`
}

type SQSBatchItemFailure struct {
    ItemIdentifier string `json:"itemIdentifier"`
}

相关问题