Я пытаюсь получить атрибуты сообщений AWS SQS из каждого обрабатываемого сообщения.Я проверил, что атрибут есть и все написано правильно: Имя: RequestId Значение: thisistherequestid
Я получаю сообщения таким образом:
messages = sqs.receiveMessage(request.withQueueUrl(queueUrl).withAttributeNames("All")).getMessages()
Я также пробовал:
messages = sqs.receiveMessage(request.withQueueUrl(queueUrl).withAttributeNames("RequestId")).getMessages()
Я попробовал две вещи, но они каждый раз возвращаются к нулю.
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: