SQSのメッセージを別のSQSへ転送するCLIツール sqstransfer をRustで作りました
SQSのメッセージを別のSQSへ転送するCLIツールを作って、crates.ioに公開しました。
https://crates.io/crates/sqstransfer
GitHubでバイナリを公開してます。
使い方
こちらから自身の環境にあったバイナリをダウンロードいただくか、または、cargoでインストールできます。
$ cargo install sqstransfer
AWSの環境変数 (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION) を設定していれば、あとはコマンド1発で転送できます。
$ sqstransfer \ --source https://sqs.us-west-2.amazonaws.com/123456789012/your-sqs-dlq \ --destination https://sqs.us-west-2.amazonaws.com/123456789012/your-sqs
制約
依存しているrusoto 0.42.0の不具合で、メッセージごとに付与できる属性情報は転送できません。
rusotoにbugfix PRを送ってマージしていただいたので、0.43.0から解消されています。 (まだバージョンアップできてませんが...)
モチベーション
AWSでサービス運用しているとたびたび発生する "デッドレターキューから元のキューへ戻す" という作業をコマンド1発で行いたかったので作りました。
- このツール自体はデッドレターキュー以外にも使えます
他の言語と比較してCLIツールへの適用に適している言語だと思い、Rustを選択しました。
- Rustならバイナリパッケージを簡単に作れ、環境ごとにクロスコンパイルできる
- cargoがインストールされていれば、インストールもコマンド1発
ぜひ使ってみてください。