Move all SQS messages from one queue to another, with an ability to modify the message
This can be helpful when you want to reprocess all messages from a deadletter queue.
$ npm install -g move-sqs
$ move-sqs --help
Move all SQS messages from one queue to another, with an ability to modify the message
Usage
$ move-sqs <input>
Options
--source-queue-url, -s Source AWS SQS Queue URL
--destination-queue-url, -d Destination AWS SQS Queue URL
--region, -r AWS Region
--access-key-id, -k AWS Access Key ID
--secret-access-key, -S AWS Secret Access Key
--merge-json-message-with, -o (OPTIONAL) Merge the json message body with a given json string
$ move-sqs --sourceQueueUrl \"https://sqs.eu-west-1.amazonaws.com/123456789012/from-queue" --destinationQueueUrl "https://sqs.eu-west-1.amazonaws.com/123456789012/to-queue" --region "eu-west-1" --accessKeyId "YourAwsAccessKeyId" --secretAccessKey "YourAwsSecretKey"
$ move-sqs --sourceQueueUrl "https://sqs.eu-west-1.amazonaws.com/123456789012/from-queue" --destinationQueueUrl "https://sqs.eu-west-1.amazonaws.com/123456789012/to-queue" --region "eu-west-1" --accessKeyId "YourAwsAccessKeyId" --secretAccessKey "YourAwsSecretKey" --merge-json-message-with "{\"someAttribute\": \"weWantToChangeOrSet\"}"
The --merge-json-message-with
argument is optional.
You can use it to modify the message body. The tool will parse the message body as json parse your input as json. Then it will perform a merge of the two and send the result to the destination queue.