我正在尝试从正在处理的每条消息中提取AWS SQS消息属性。我已经验证了属性是否存在,并且所有内容均拼写正确: 名称:RequestId 值:thisistherequestid
我这样收到消息:
messages = sqs.receiveMessage(request.withQueueUrl(queueUrl).withAttributeNames("All")).getMessages()
我也尝试过:
messages = sqs.receiveMessage(request.withQueueUrl(queueUrl).withAttributeNames("RequestId")).getMessages()
我已经尝试了两种方法,但是每次都返回null。
for (Message m : messages) {
Map<String, MessageAttributeValue> attributeValues = new HashMap<String, MessageAttributeValue>();
attributeValues = m.getMessageAttributes();
System.out.println("Attribute Values ===> " + attributeValues.get("RequestId").getStringValue());
我也尝试过:
for (Message m : messages) {
Map<String, String> attributeValues = new HashMap<String, String>();
attributeValues = m.getAttributes();
System.out.println("Attribute Values ===> " + attributeValues.get("RequestId"));
我不太确定这里出了什么问题。即使您只是这样做,属性也为空:
attributeValues = m.getMessageAttributes();
System.out.println("Attribute Values ===> " + attributeValues);
知道我可能做错了什么吗?
这是我在AWS控制台中看到的内容: