Ответ от AWS SQS Java SDK не соответствует Python SDK или CLIPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ответ от AWS SQS Java SDK не соответствует Python SDK или CLI

Сообщение Anonymous »

Мы используем Java для отправки/получения сообщений от SNS/кв. Когда мы публикуем сообщение, мы делаем это: < /p>

Код: Выделить всё

final var req = PublishRequest.builder()
.topicArn(topicArn)
.message(payload)
.subject(subject)
.build();
final var response = snsClient.publish(req);
Обратите внимание, что мы устанавливаем субъект здесь - это важно, поскольку мы используем его для логики привода на приемном конце. Когда мы получаем сообщения, мы разбираем JSON в объект и правильно заканчиваем субъектом . Тем не менее, теперь мы также используем Python SDK для получения сообщения, и в этом случае не существует атрибута «субъекта», отправленного обратно из вызова API: < /p>

Код: Выделить всё

queue_name = "..."
sqs = boto3.resource("sqs")
queue = sqs.get_queue_by_name(QueueName=queue_name)
messages = queue.receive_messages(
MaxNumberOfMessages=1,
WaitTimeSeconds=10,
AttributeNames=["All"],
MessageAttributeNames=["All"],
)

for message in messages:
print("Got message:")
print(f"Queue URL: {message.queue_url}")

if message.attributes != None:
print(f"Attributes:\n{json.dumps(message.attributes, indent=2)}")

if message.message_attributes != None:
print(f"Message Attributes:\n{json.dumps(message.message_attributes, indent=2)}")

print(f"Body:\n{json.dumps(json.loads(message.body), indent=2)}")
< /code>
Результаты: < /p>
Got message:
Queue URL: https://...
Attributes:
{
"SenderId": "...",
"ApproximateFirstReceiveTimestamp": "1737570929119",
"ApproximateReceiveCount": "5",
"SentTimestamp": "1737535740136"
}
Body:
{
...
}
Обратите внимание, что не существует атрибута «субъекта» на высшем уровне и https://boto3.amazonaws.com/v1/document ... vices/sqs/ queue /receation_messages.html вообще не упоминает «субъект». Обратите внимание, что я также пытался использовать клиент SQS (а не «ресурс») в Python. Как я могу заставить Python SDK включить «субъект»? Электронная почта, как отдельное свойство. < /p>
java aws sdk: 2.29.29 < /p>
python: 3.10.2 < /p>
< P> Python AWS SDK: 1.33.13


Подробнее здесь: https://stackoverflow.com/questions/793 ... sdk-or-cli
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»