我正在尝试开发一个由来自 SQS 的事件触发的 AWS Lambda 函数。
我正在使用spring-cloud-function-adapter-aws(版本 1.0.0.RELEASE),特别是SpringBootRequestHandler。
但是,正在使用的 ObjectMapper 区分大小写,因此无法成功转换来自 SQS 的 Json。
SQS 发布了以下 Json,尤其是我遇到了问题的Records字段。
{
"Records": [
{
"body": "Hello from SQS!",
"receiptHandle": "MessageReceiptHandle",
"md5OfBody": "7b270e59b47ff90a553787216d55d91d",
"eventSourceARN": "arn:aws:sqs:eu-west-1:123456789012:MyQueue",
"eventSource": "aws:sqs",
"awsRegion": "eu-west-1",
"messageId": "19dd0b57-b21e-4ac1-bd88-01bbb068cb78",
"attributes": {
"ApproximateFirstReceiveTimestamp": "1523232000001",
"SenderId": "123456789012",
"ApproximateReceiveCount": "1",
"SentTimestamp": "1523232000000"
},
"messageAttributes": {}
}
]
}
我已经尝试过这个问题中的建议,但无济于事。在 Spring 中配置 ObjectMapper
在我的 POJO 中,我还添加了以下注释,但它在 Lambda 之外也不起作用。
@JsonProperty("Records")
private List<SqsRecord> Records;
任何帮助将非常感激。
我的 Lambda 处理程序定义为:
public class SqsEventHandler extends SpringBootRequestHandler<SqsEvent, String> {}
POJO 定义为:
public class SqsEvent {
@JsonProperty("Records")
private List<SqsRecord> records;
@Data
public class SqsRecord {
private String body;
private String receiptHandle;
private String md5OfBody;
private String eventSourceARN;
private String eventSource;
private String awsRegion;
private String messageId;
}
}
我希望 ObjectMapper 能够读入示例消息中的 Json,但“记录”字段为空。
侃侃尔雅
相关分类