【问题标题】:Receive messages/events from SQS and map them to Dynamodb从 SQS 接收消息/事件并将它们映射到 Dynamodb
【发布时间】:2022-01-25 12:47:44
【问题描述】:

我正在尝试找出一种方法来读取我的 SQS 事件并使用 Java 将它们映射到 DynamoDB。我在 AWS 中有一个 SQS,它会收到一些包含一些信息的消息,例如{"id": "xxx", "state": "xxx"}。我想将这些事件映射到我的 DynamoDB 表中。 DynamoDB 包含 id 作为分区键。 根据我的研究,这可以通过从 sqs 读取消息并在 JAVA 中使用来自 AWS DynamoDB 的putItem 来实现。 有没有使用JAVA的简单方法。或者任何示例在这里都会有所帮助。

谢谢!

【问题讨论】:

  • 有大量在线文档和示例说明如何在 AWS Lambda 中将 Java 与 SQS 和 DynamoDB 一起使用。用这些来写一些代码。

标签: java amazon-web-services amazon-dynamodb amazon-sqs


【解决方案1】:

对于 AWS,有专门为此设计的 JAVA SDK 2.0:

从 SQS 队列接收消息的一般示例:

    ReceiveMessageRequest receiveMessageRequest = ReceiveMessageRequest.builder()
        .queueUrl(queueUrl)
        .maxNumberOfMessages(5)
        .build();
    List<Message> messages = sqsClient.receiveMessage(receiveMessageRequest).messages();

https://github.com/awsdocs/aws-doc-sdk-examples/blob/fb99a9b5453c61c13a032b9c225986c865ba4705/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L152


将项目放入 DynamoDB 的一般示例:

 HashMap<String,AttributeValue> itemValues = new HashMap<String,AttributeValue>();

// Add all content to the table
itemValues.put(key, AttributeValue.builder().s(keyVal).build());
itemValues.put(songTitle, AttributeValue.builder().s(songTitleVal).build());
itemValues.put(albumTitle, AttributeValue.builder().s(albumTitleValue).build());
itemValues.put(awards, AttributeValue.builder().s(awardVal).build());

PutItemRequest request = PutItemRequest.builder()
        .tableName(tableName)
        .item(itemValues)
        .build();

ddb.putItem(request);
System.out.println(tableName +" was successfully updated");

https://github.com/awsdocs/aws-doc-sdk-examples/blob/fb99a9b5453c61c13a032b9c225986c865ba4705/javav2/example_code/dynamodb/src/main/java/com/example/dynamodb/PutItem.java#L84

AWS 文档非常好,它的例子也是如此:

https://github.com/awsdocs/aws-doc-sdk-examples/tree/fb99a9b5453c61c13a032b9c225986c865ba4705/javav2

官方文档:https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/prog-services.html

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 2020-03-04
    相关资源
    最近更新 更多