AWS SQSキューでマップオブジェクトを渡すにはどうすればよいですか?AWS SQSでマップを渡す方法
私はいくつかのデータを持つマップオブジェクトを持っており、それを維持するために同じマップ をAWS SQSキューに渡したかったのです。どうすれば同じことができますか?
AWS SQSキューでマップオブジェクトを渡すにはどうすればよいですか?AWS SQSでマップを渡す方法
私はいくつかのデータを持つマップオブジェクトを持っており、それを維持するために同じマップ をAWS SQSキューに渡したかったのです。どうすれば同じことができますか?
マップを保存して、後でSQSからダイジェストできるようにしたいと思うので、シリアル化することをお勧めします。 SQSにマップを送信するだけでなく、マップを後でマップに戻して解析するのではなく、データをシリアル化する必要があります。これは安全性が高く、容易になるためです。
JSONおよびMSGpackは、シリアライズおよびデシリアライズで一般的です。
ここにいくつかの擬似コードです:
some_map = {name: 'tom', age: 31}
serialized_map = make_into_json_function(some_map)
sqs.send_msg(queue, credentials, serialized_map)
バックマップにJSONを有効にするには:ここで
message = sqs.get_msg(some_msg_id)
new_map = make_json_into_map_function(message.text)
print new_map
は私がやったことである(そしてそれは100%働いている):
setMessageAttributesを使用してマップの値をSQSの属性として送信しようとしましたが、SQSでは一度に最大10個の属性を送信できるため、私の要件に合致しませんでした(マップに10以上の値がありました)。
SQSはmessageBodyを使用してメッセージを送信するオプションも提供しています。そのため、マップをプレーンなJson文字列に変換してSQSに送信しました。
ありがとうございます!