/sqsmv

Primary LanguageGoMIT LicenseMIT

sqsmv

Move all messages from one SQS queue, to another.

This was originally a fork of scottjbarr/sqsmv with is no longer actively maintained.

Installation

Source

  1. Clone the repo
  2. go mod tidy
  3. go build -o /some/path/sqsmv main.go

Binaries

Binaries are not currently offered.

Configuration

The AWS_SECRET_ACCESS_KEY, AWS_ACCESS_KEY_ID, and ,AWS_REGION environment variables must be set.

Usage

Supply source and destination URL endpoints.

sqsmv -src https://region.queue.amazonaws.com/123/queue-a -dest https://region.queue.amazonaws.com/123/queue-b

To run jobs in parallel, use -clients parameter:

sqsmv -src https://region.queue.amazonaws.com/123/queue-a -dest https://region.queue.amazonaws.com/123/queue-b -clients 8

Seeing is believing :)

Create some SQS messages to play with using the AWS CLI.

for i in {0..24..1}; do
    aws sqs send-message \
        --queue-url https://ap-southeast-2.queue.amazonaws.com/123/wat-a
        --message-body "{\"id\": $i}"
done

License

The MIT License (MIT)

Copyright (c) 2016-2018 Scott Barr

Copyright (c) 2023+ Nate Meyer

See LICENSE.md