🤧
【AWS】localstack で AWS SQS を local 操作する
はじめに
localstack で AWS SQS を local 操作できる方法を書いていこうかと
構築は、docker-composeでやってます。
docker-compose.yml, Dockerfile は以下を参考にさせて頂きました🙏
後、SQS にリクエストを飛ばすのに開発中やと何回も試すので、Postman で実行できる方法もメモしました!
curlコマンド や aws CLI コマンドを連打しなくていいので楽です!!
作成したリポジトリを clone して docker build コマンドを実行
現状作成しました リポジトリ: aws-localstack を cloen します。
-
作成された localstack のコンテナにアクセス
docker exec -it localstack_main bash -
queue を作成
$ awslocal sqs create-queue --queue-name test-queue { "QueueUrl": "http://localhost:4566/000000000000/test-queue" } -
queue message を送信
$ awslocal sqs send-message --queue-url http://localhost:4566/00000000000/test-queue --message-body test { "MD5OfMessageBody": "098f6bcd4621d373cade4e832627b4f6", "MessageId": "9000f162-54b9-4b66-af7f-c69c51db959b" } -
queue message の受信を確認
$ awslocal sqs receive-message --queue-url http://localhost:4566/00000000000/test-queue { "Messages": [ { "MessageId": "9000f162-54b9-4b66-af7f-c69c51db959b", "ReceiptHandle": "NjZjMjI4NDUtZjg5NC00ZmMxLTlhNTEtZGIzODQzYzE0ZTIyIGFybjphd3M6c3FzOmFwLW5vcnRoZWFzdC0xOjAwMDAwMDAwMDAwMDp0ZXN0LXF1ZXVlIDkwMDBmMTYyLTU0YjktNGI2Ni1hZjdmLWM2OWM1MWRiOTU5YiAxNjY1Mjg0Mjc1LjYyODk2NzU=", "MD5OfBody": "098f6bcd4621d373cade4e832627b4f6", "Body": "test" } ] }
Postman でやるときは
1. Postman AWS SQS から Postman DeskTop版をインポートする。
-
▶︎ Run in Postmanをクリック -
Postman desktop App to Importを選択 (アプリ入れてる前提)
2. Import された AWS SQS プロジェクトのqueue-urlを反映し、Bodyの中身を確認する。
POST: http://localhost:4566/test-queue の部分です! Body の使いかも参考になりました。

3. Pre-request Script にサンプルが含まれていることを確認し、Sendをクリックします。
ここも import したときに反映されてる内容で、そんな使い方があるんや!! って参考になりました。

4. queue-url を反映させて受信処理を行う
Send Message の内容が受信されたことが確認できます。

これから
localstack サービスをつかうと、AWS サービスをローカルで試すことでき、課金もある程度気にしなくて開発ができるので便利そうです!!
あとは、やりたいことに合わせて調べながら試せると良さそうです!
以上になります。ありがとうございました🙏
参考
Discussion